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.
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?
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.
WebDAV theoretically supports file versioning, but quality across implementations varies: https://datatracker.ietf.org/doc/html/rfc3253
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?
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.