Mercurial > public > mercurial-scm > hg
diff tests/test-rebase-emptycommit.t @ 34354:2f427b57bf90 stable 4.3.3
rebase: move bookmarks with --keep (issue5682)
This is a regression caused by 3b7cb3d17137. We have documented the behavior
in rebase help:
Rebase will destroy original commits unless you use "--keep". It will
also move your bookmarks (even if you do).
So let's restore the old behavior.
It is done by changing `scmutil.cleanupnodes` to accept more information so
a node could have different "movement destination" from "successors". It
also helps simplifying the callsite as a side effect - the special bookmark
movement logic in rebase is removed.
Differential Revision: https://phab.mercurial-scm.org/D727
author | Jun Wu <quark@fb.com> |
---|---|
date | Mon, 18 Sep 2017 10:54:00 -0700 |
parents | 52f82e7d6a7e |
children | f61f5af5ed31 |
line wrap: on
line diff
--- a/tests/test-rebase-emptycommit.t Wed Sep 20 09:32:26 2017 -0700 +++ b/tests/test-rebase-emptycommit.t Mon Sep 18 10:54:00 2017 -0700 @@ -47,7 +47,7 @@ |/ o 0 A -With --keep, bookmark should not move +With --keep, bookmark should move $ hg rebase -r 3+4 -d E --keep rebasing 3:e7b3f00ed42e "D" (BOOK-D) @@ -55,15 +55,15 @@ rebasing 4:69a34c08022a "E" (BOOK-E) note: rebase of 4:69a34c08022a created no changes to commit $ hg log -G -T '{rev} {desc} {bookmarks}' - o 7 E + o 7 E BOOK-D BOOK-E | o 6 D | | o 5 F BOOK-F | | - | o 4 E BOOK-E + | o 4 E | | - | o 3 D BOOK-D + | o 3 D | | | o 2 C BOOK-C | | @@ -71,6 +71,11 @@ |/ o 0 A +Move D and E back for the next test + + $ hg bookmark BOOK-D -fqir 3 + $ hg bookmark BOOK-E -fqir 4 + Bookmark is usually an indication of a head. For changes that are introduced by an ancestor of bookmark B, after moving B to B-NEW, the changes are ideally still introduced by an ancestor of changeset on B-NEW. In the below case,