Mercurial > hg
changeset 31380:65d93d712777
rebase: allow rebasing children of wd to wd if a new branch has been set (BC)
The named branch of the leaf changeset can be changed by updating to it,
setting the branch, and amending.
But previously, there was no good way to *just* change the branch of several
linear changes. If rebasing changes with another parent to '.', it would pick
up a pending branch change up. But when rebasing changes that have the same
parent, it would fail with 'nothing to rebase', even when the branch name was
set differently.
To fix this, allow rebasing to same parent when a branch has been set.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 12 Mar 2017 16:44:01 -0700 |
parents | b6a6df38a802 |
children | 7359157b9e46 |
files | hgext/rebase.py tests/test-rebase-named-branches.t |
diffstat | 2 files changed, 25 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/rebase.py Sun Mar 12 16:41:46 2017 -0700 +++ b/hgext/rebase.py Sun Mar 12 16:44:01 2017 -0700 @@ -1224,7 +1224,12 @@ if commonbase == root: raise error.Abort(_('source is ancestor of destination')) if commonbase == dest: - samebranch = root.branch() == dest.branch() + wctx = repo[None] + if dest == wctx.p1(): + # when rebasing to '.', it will use the current wd branch name + samebranch = root.branch() == wctx.branch() + else: + samebranch = root.branch() == dest.branch() if not collapse and samebranch and root in dest.children(): repo.ui.debug('source is a child of destination\n') return None
--- a/tests/test-rebase-named-branches.t Sun Mar 12 16:41:46 2017 -0700 +++ b/tests/test-rebase-named-branches.t Sun Mar 12 16:44:01 2017 -0700 @@ -387,4 +387,23 @@ o 0: '0' + $ hg up -cr 1 + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg branch x + marked working directory as branch x + $ hg rebase -r 3:: -d . + rebasing 3:76abc1c6f8c7 "b1" + rebasing 4:8427af5d86f2 "c2 closed" (tip) + note: rebase of 4:8427af5d86f2 created no changes to commit + saved backup bundle to $TESTTMP/case2/.hg/strip-backup/76abc1c6f8c7-cd698d13-backup.hg (glob) + $ hg tglog + o 3: 'b1' x + | + | o 2: 'c1' c + | | + @ | 1: 'b2' b + |/ + o 0: '0' + + $ cd ..