Julia Evans

Mounting git commits as folders with NFS

Follow
- The project, "git-commit-folders," provides a novel approach to visualizing Git commits by mounting them as folders. - FUSE, NFS, and WebDAV are the supported filesystems, with NFS being the primary focus due to WebDAV's lack of symlink support. - To keep implementations synchronized, a core FS interface was created, with adapters for NFS and WebDav. - The repository's large number of commits is managed by organizing them into folders by prefix and caching packed commit hashes. - Debugging involved analyzing NFS packets with Wireshark and handling errors like "not a directory" and "stale file handle." - Inode numbers were generated by hashing file paths to avoid loops. - The "branch_histories" directory currently shows only the latest 100 commits for each branch. - Submodules are currently ignored. - NFSv4 support is available but its advantages over NFSv3 are unclear. - The project aims to make understanding Git's internal structure more intuitive by representing commits as folders.
favicon
jvns.ca
jvns.ca
Create attached notes ...