timefs 0.1.0

Mount a Git repository as a read-only filesystem.
Documentation
.TH TIMEFS 1 "July 29, 2026" "timefs 0.1.0" "User Commands"
.SH NAME
timefs \- mount Git history as a read-only filesystem
.SH SYNOPSIS
.B timefs
.I [global-options]
.B mount
.I <repo> <mountpoint>
.RI [ options ]
.br
.B timefs
.I [global-options]
.B unmount
.I <mountpoint>
.SH DESCRIPTION
.B timefs
mounts a Git repository through FUSE and exposes Git trees as ordinary directories.
It is strictly read-only: every mutating operation returns
.BR EROFS .
.PP
The mounted namespace includes:
.TP
.B now/
The tree at the repository's current
.BR HEAD .
.TP
.B at/
An on-demand revision resolver supporting
.BR HEAD ,
.BR HEAD~n ,
.BR HEAD^ ,
branch names, tag names, and commit hashes.
.TP
.B commits/
Commit-addressed snapshots by full or abbreviated SHA.
.TP
.B refs/
Browsable heads, tags, and remotes.
.TP
.B history/<path>/
Per-commit versions of one file, ordered oldest to newest.
.SH GLOBAL OPTIONS
.TP
.B -v
Log at info level.
.TP
.B -vv
Log at debug level.
.SH MOUNT OPTIONS
.TP
.B -f, --foreground
Run in the foreground.
.TP
.B --allow-other
Allow users other than the mounter to access the filesystem.
Requires
.B user_allow_other
in
.IR /etc/fuse.conf .
.TP
.BI --submodules " <placeholder|recurse>"
Control how gitlinks are exposed.
.TP
.B --lfs
Serve locally available Git LFS object content instead of pointer files.
.TP
.B --ref-snapshot
Freeze branch, tag, and
.B HEAD
resolution at mount time.
.TP
.BI --cache-size " <MiB>"
Cap the in-memory Git object cache.
.TP
.BI --uid " <uid>"
Override the reported file owner UID.
.TP
.BI --gid " <gid>"
Override the reported file owner GID.
.SH EXAMPLES
.TP
Mount a repository in the foreground:
.B timefs mount ~/code/git /mnt/git -f
.TP
Browse an older tree:
.B cd /mnt/git/at/HEAD~40
.TP
Freeze refs at mount time:
.B timefs mount ~/code/linux /mnt/linux --ref-snapshot -f
.TP
Unmount:
.B timefs unmount /mnt/git
.SH FILES
.TP
.I docs/ARCHITECTURE.md
Layering and backend design notes.
.TP
.I docs/FUSE_MAPPING.md
The authoritative Git-to-FUSE mapping.
.TP
.I docs/LIMITATIONS.md
Current known limits and intentionally unsupported behavior.
.SH EXIT STATUS
.B 0
on success, non-zero on failure.
.SH SEE ALSO
.BR git (1),
.BR fusermount3 (1)