Mercurial > hg-stable
changeset 45085:07b3166e94ca
commit: check branch change on to-be-committed changeset
This makes a difference when a branch name is passed via the `extra` argument,
which will be used as the branch name for the created changeset. The empty
commit check should use that branch name instead of whatever was set on the
working directory.
Besides fixing the bug for which a test case was extended, it enables to remove
a workaround in the rebase extension, which will be done in a follow-up patch
(D8725).
Differential Revision: https://phab.mercurial-scm.org/D8724
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Fri, 10 Jul 2020 00:44:18 +0200 |
parents | 3a6ec080b521 |
children | a0192a03216d |
files | mercurial/localrepo.py tests/test-rebase-emptycommit.t |
diffstat | 2 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Mon Jul 13 13:06:12 2020 -0400 +++ b/mercurial/localrepo.py Fri Jul 10 00:44:18 2020 +0200 @@ -2996,7 +2996,7 @@ # internal config: ui.allowemptycommit allowemptycommit = ( - wctx.branch() != wctx.p1().branch() + cctx.branch() != cctx.p1().branch() or extra.get(b'close') or merge or cctx.files()
--- a/tests/test-rebase-emptycommit.t Mon Jul 13 13:06:12 2020 -0400 +++ b/tests/test-rebase-emptycommit.t Fri Jul 10 00:44:18 2020 +0200 @@ -129,7 +129,16 @@ > B > EOS - $ hg rebase -r '(A::)-(B::)-A' -d H +Previously, there was a bug where the empty commit check compared the parent +branch name with the wdir branch name instead of the actual branch name (which +should stay unchanged if --keepbranches is passed), and erroneously assumed +that an otherwise empty changeset should be created because of the incorrectly +assumed branch name change. + + $ hg update H -q + $ hg branch foo -q + + $ hg rebase -r '(A::)-(B::)-A' -d H --keepbranches rebasing 2:dc0947a82db8 "C" (BOOK-C) note: not rebasing 2:dc0947a82db8 "C" (BOOK-C), its destination already has all its changes rebasing 3:b18e25de2cf5 "D" (BOOK-D) @@ -137,6 +146,7 @@ rebasing 4:86a1f6686812 "E" (BOOK-E E) note: not rebasing 4:86a1f6686812 "E" (BOOK-E E), its destination already has all its changes saved backup bundle to $TESTTMP/merge1/.hg/strip-backup/b18e25de2cf5-1fd0a4ba-rebase.hg + $ hg update null -q $ hg log -G -T '{rev} {desc} {bookmarks}' o 4 H BOOK-C BOOK-D BOOK-E