The Filesystem Interface to Git

by Reilly Grant
Faculty Advisor: Jonathan M. Smith


Figfs (the Filesystem Interface to Git FileSystem) provides a new way for developers to interact with their version control repository. The repository is presented as a filesystem which allows multiple versions and branches of the project code to be viewed simultaneously and without the need to reconfigure the user's workspace. It is also a more natural interface as existing tools can be used without being made aware of the versioning system in place. Presenting branches and history in this fashion will increase developer productivity and encourage the use of branches for managing feature development.

This project targets Git, a distributed version control system, and expands on the work of gitfs (the Git FileSystem), which only provides read-only access to the project repository. Figfs allows the instant creation of new writable workspaces without the need to create any new files on the local filesystem. The goal of this project is to make figfs the preferred environment for all development tasks.

Additional Documents:


v0.1.0: First official release, very beta-level code. source linux-amd64

Getting the Source:

The project is a work in progress. The current source can be obtained from version control with the following command:

git clone git://

The following packages are required to build and run figfs:

In addition, OMakefiles are used to build the project. They have been tested with at least version of the omake tool.

Code is licensed under the GPLv2. The project is for my Senior Design requirement at the University of Pennsylvania's School of Engineering and Applied Science.