Implement faster branching
ArneBachmann opened this issue · comments
Will be fun to implement.
We can speed branching by having an optional parent = (originiating_branch, up_to_revision)
in BranchInfo
(incompatible change).
Branching would be instantaneously, but deleting a branch that others depend on will require copying all parent revisions into all of them before removing the branch.
Could be useful nevertheless.
The new branch would have the parent
flag set to the originating branch/revision, plus a differential commit of not using --last
. The first revision would be the one after the originating revision, leaving out r0..rn-1.
When operaint on the new branch, the computePaths has to recursively find the original changeset, but since all info is in Metadata.branches, this can be done in memory quickly.