Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
PhoenixFS - a versioning filesystem inspired by Git (github.com/artagnon)
10 points by GeneralMaximus on March 22, 2011 | hide | past | favorite | 2 comments


Can you please give some examples where this would be useful, and how it can be used?

Does it mean you can just 'mount' a git repository, instead of working with commands? Or is git just used as an incremental backup system?


Any normal directory can be mounted with the PhoenixFS filesystem driver. It essentially traps all the normal filesystem calls like readdir, opendir, read, and release to transparently keep revision history for every file. Since all the calls are finally passed through to the underlying filesystem, the end-user needs to do nothing extra to use it. The final result is that a `.git` directory is created on the underlying filesystem with all this information.

Motivation and target audience: End users who don't want to bother with versioning their files, but still want transparent backups of everything they edit. Flashbake is a project that takes a stab at solving this issue, but every solution that doesn't work at the filesystem level will have to rely on "polling for changes", which is rather inelegant.

How PhoenixFS works: No, it doesn't use Git at all. This is because it aims to be much faster than Git at the cost of advanced functionality. It has an in-memory B+ tree that's updated everytime the directory tree changes. It's a true content tracker like Git: the tree only references SHA1 hashes. There are three pieces of information in the `.git` directory from which the entire filesystem can be rebuilt: the B+ tree persisted in a file, a packfile containing deltified historical content, and a packfile index for looking up a certain SHA1 in the packfile.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: