Local repositories
Single repos, bare repos, and whole directories of repos, read through the git CLI.
The local backend reads repositories by shelling out to your git. Nothing
is parsed out of .git by hand, so every repository your git can read,
gitview can serve: worktrees, bare repos, mirrors, partial clones,
alternates, whatever.
A single repository
gitview ~/src/yourproject
gitview # default target is "."
Like git itself, gitview finds the repository from anywhere inside it:
running gitview in repo/sub/dir serves the whole repo. Bare repositories
work too:
gitview ~/mirrors/linux.git
The repository appears at /local/{name}, named after its directory.
A directory of repositories
gitview ~/src
If the target is not itself a repository, gitview scans its immediate
children (one level, hidden directories skipped) and serves every repository
it finds, with an index page at / listing them all. A ~/src with forty
clones becomes a browsable forge in one command.
The scan happens once at startup; clone something new into the directory and restart to pick it up.
What you get
Everything. The local backend is the only one with the full repository on disk, so every feature works: blame, per-path history, the last-commit column, archives, reblame-at-parent, all of it. It is also fast; pages render in tens of milliseconds on real repositories.
Live repositories
gitview reads the repository as it is at request time. Commit, fetch, or switch branches and the next page load sees the new state; no restarts, no cache to bust. The one startup-time decision is the repo list in multi-repo mode.