Mercurial > hg
diff hgext/rebase.py @ 45090:0ecb3b11fcad
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
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Sat, 11 Jul 2020 03:10:23 +0200 |
parents | 83f75f1efdcc |
children | 1efbfa9b36a7 |
line wrap: on
line diff
--- 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