##// END OF EJS Templates
rebase: filter out descendants of divergence-causing commits earlier...
rebase: filter out descendants of divergence-causing commits earlier `hg rebase` treats obsolete commits differently depending what has happened to the commit: 1) Obsolete commit without non-obsolete successors: Skipped, and a note is printed ("it has no successor"). 2) Obsolete commit with a successor in the destination (ancestor of it): Skipped, and a note is printed ("already in destination"). 3) Obsolete commit with a successor in the rebase set: The commit and its descendants are skipped, and a note is printed ("not rebasing <commit> and its descendants as this would cause divergence"), unless `allowdivergence` config set. 4) Obsolete commit with a successor elsewhere: Error ("this rebase will cause divergences"), unless `allowdivergence` config set. Before this patch, we did all those checks up front, except for (3), which was checked later. The later check consisted of two parts: 1) filtering out of descendants, and 2) conditionally printing message if the `allowdivergence` config was not set. This patch makes it so we do the filtering early. A consequence of filtering out divergence-causing commits earlier is that we rebase commits in slightly different order, which has some impact on tests. Differential Revision: https://phab.mercurial-scm.org/D10249
Martin von Zweigbergk -
r47590:535de0e3 default
Show More
Name Size Modified Last Commit Author
/ mercurial / helptext / internals
__init__.py Loading ...
bid-merge.txt Loading ...
bundle2.txt Loading ...
bundles.txt Loading ...
cbor.txt Loading ...
censor.txt Loading ...
changegroups.txt Loading ...
config.txt Loading ...
extensions.txt Loading ...
linelog.txt Loading ...
mergestate.txt Loading ...
requirements.txt Loading ...
revlogs.txt Loading ...
wireprotocol.txt Loading ...
wireprotocolrpc.txt Loading ...
wireprotocolv2.txt Loading ...