doesn't the zfs diff command mostly cover it? You have snapshots, diffs, and clones which is basically equivalent to commits, diffs, and branches. You're missing commit logs and that's it, right?
If you introduce a new file onto multiple ZFS 'branches', there is no way to have it stored copy-on-write.
But copying a file from one 'branch' to another is the only way to emulate a cherrypick or merge.
So after a while of active use with many branches, you're going to have a lot of redundant copies of files all over. You're no longer making proper use of snapshots, and it becomes less efficient than having a working directory and a directory full of commits that hard link to each other.
But copying a file from one 'branch' to another is the only way to emulate a cherrypick or merge.
So after a while of active use with many branches, you're going to have a lot of redundant copies of files all over. You're no longer making proper use of snapshots, and it becomes less efficient than having a working directory and a directory full of commits that hard link to each other.