HACKER Q&A
📣 mikewarot

Branching File Systems?


I'm aware of VAX/VMS's versioned files, which was super useful back in the 1980s. Hello;1, Hello;2, etc.

We've got GIT, and other version control systems, but this idea came up last night during Lex Fridman's podcast with the team from Cursor.[1]

Has anyone experimented with branching file systems?

[1] https://lexfridman.com/cursor-team-transcript#chapter13_branching_file_systems


  👤 cvdub Accepted Answer ✓
Btrfs snapshots are the closest thing I can think of. It doesn’t have the concept of branches specifically, but you can take snapshots of the entire file system and view specific files from those snapshots without having to roll back the whole system.

Manual saving files with different version names is the easiest solution that would probably work for most use cases. That’s what I do for music production. Every time I start a session I save my project with a new minor version, e.g. Epic Banger v0.4, in case I need to revisit older versions. I wish there was a way to include change log messages though.


👤 evanjrowley
WebDAV theoretically supports file versioning, but quality across implementations varies: https://datatracker.ietf.org/doc/html/rfc3253

👤 Someone
I think “writable snapshot” is (close to) what you’re after. I think they always encode the ‘branch name’ in the file path, but if you don’t do that, how would you refer to them?

👤 nullindividual
NTFS has Volume Shadow Copies. It’s a bit different since they’re scheduled snaps.

SharePoint closely mirrors NTFS behavior which does do versioning on every change.