# HG changeset patch # User Manuel Jacob # Date 1594429823 -7200 # Node ID 0ecb3b11fcadf4849ee1f4fcc151e26e311b0773 # Parent d085fcb11c56d1070035a467a763d356b18c61d0 rebase: correctly check for empty commit in in-memory mode The new code has a small overhead in the empty commit case, as a `memctx` object is always created, but I don’t think it’s justified here to duplicate code to optimize a relatively unlikely code path. Differential Revision: https://phab.mercurial-scm.org/D8732 diff -r d085fcb11c56 -r 0ecb3b11fcad hgext/rebase.py --- a/hgext/rebase.py Sat Jul 11 02:13:19 2020 +0200 +++ b/hgext/rebase.py Sat Jul 11 03:10:23 2020 +0200 @@ -1427,12 +1427,6 @@ def commitmemorynode(repo, wctx, editor, extra, user, date, commitmsg): '''Commit the memory changes with parents p1 and p2. Return node of committed revision.''' - # FIXME: make empty commit check consistent with ``repo.commit`` - if wctx.nofilechanges() and not repo.ui.configbool( - b'ui', b'allowemptycommit' - ): - return None - # By convention, ``extra['branch']`` (set by extrafn) clobbers # ``branch`` (used when passing ``--keepbranches``). branch = None @@ -1447,6 +1441,8 @@ branch=branch, editor=editor, ) + if memctx.isempty() and not repo.ui.configbool(b'ui', b'allowemptycommit'): + return None commitres = repo.commitctx(memctx) wctx.clean() # Might be reused return commitres diff -r d085fcb11c56 -r 0ecb3b11fcad tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t Sat Jul 11 02:13:19 2020 +0200 +++ b/tests/test-rebase-inmemory.t Sat Jul 11 03:10:23 2020 +0200 @@ -949,14 +949,11 @@ |/ o 0: d20a80d4def3 'base' -FIXME: It's broken for inmemory merges. $ hg rebase -s 2 -d 3 rebasing 2:0194f1db184a "b" note: not rebasing 2:0194f1db184a "b", its destination already has all its changes rebasing 4:59c8292117b1 "merge" (tip) - note: not rebasing 4:59c8292117b1 "merge" (tip), its destination already has all its changes (true !) saved backup bundle to $TESTTMP/keep_merge/.hg/strip-backup/0194f1db184a-aee31d03-rebase.hg -#if false $ hg tglog o 3: 506e2454484b 'merge' |\ @@ -966,4 +963,3 @@ |/ o 0: d20a80d4def3 'base' -#endif