diff --git a/hgext/rebase.py b/hgext/rebase.py index b6a6df38a80229ca8d8dad868bcb2d23c34fc5c8_aGdleHQvcmViYXNlLnB5..65d93d7127777c184f7af0c9aeb4530f93f14094_aGdleHQvcmViYXNlLnB5 100644 --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -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 diff --git a/tests/test-rebase-named-branches.t b/tests/test-rebase-named-branches.t index b6a6df38a80229ca8d8dad868bcb2d23c34fc5c8_dGVzdHMvdGVzdC1yZWJhc2UtbmFtZWQtYnJhbmNoZXMudA==..65d93d7127777c184f7af0c9aeb4530f93f14094_dGVzdHMvdGVzdC1yZWJhc2UtbmFtZWQtYnJhbmNoZXMudA== 100644 --- a/tests/test-rebase-named-branches.t +++ b/tests/test-rebase-named-branches.t @@ -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 ..