diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -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 --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t +++ b/tests/test-rebase-inmemory.t @@ -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