-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make purges into merges #51
Comments
As well as merging up into the parent we should probably consider reversing the direction of the merges done by |
Commit d0cd738, which resolved issue #49, is loosely related to the issue discussed here. It attempts to mitigate the graph going hectic by removing ladders in a slightly different way. |
The best way to address this would be to check all of the child streams that are not timelocked for whether they are the same as this stream at the next promote into this stream and create an octopus merge point with all the child streams that diff the same as additional parents... This would make sure that we eventually collect all children that have been purged of changes. |
Solving this would also solve issue #60. |
A
purge
,keep
ordefunct
transaction (on a stream) that clears the entire contents of the stream effectively performs agit rebase
action. However, this is not entirely true since Accurev never loses history so the fact that a change was undone remains on the stream's (branch's) history. Hence, it would probably be the best case workaround to make aMergeIntoParent()
function that checks if a stream (which isn't timelocked) matches the contents of its parent after a transaction (be it apromote
,purge
,defunct
or otherwise) and if it does we will create a new commit on the parent stream (making sure to update all the children but not snapshots as well) that merges this stream into the parent.This way we can avoid long ladder chains and squash an effectively empty stream to its parent stream.
The text was updated successfully, but these errors were encountered: