Mercurial > public > mercurial-scm > hg-stable
diff hgext/rebase.py @ 45123:1efbfa9b36a7
rebase: consider rewrite.empty-successor configuration
This adds support for the recently added rewrite.empty-successor configuration.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Mon, 01 Jun 2020 08:38:42 +0200 |
parents | 0ecb3b11fcad |
children | dc5e5577af39 |
line wrap: on
line diff
--- a/hgext/rebase.py Sun Jul 12 06:06:06 2020 +0200 +++ b/hgext/rebase.py Mon Jun 01 08:38:42 2020 +0200 @@ -206,6 +206,9 @@ self.backupf = ui.configbool(b'rewrite', b'backup-bundle') self.keepf = opts.get(b'keep', False) self.keepbranchesf = opts.get(b'keepbranches', False) + self.skipemptysuccessorf = rewriteutil.skip_empty_successor( + repo.ui, b'rebase' + ) self.obsoletenotrebased = {} self.obsoletewithoutsuccessorindestination = set() self.inmemory = inmemory @@ -530,7 +533,10 @@ for c in self.extrafns: c(ctx, extra) destphase = max(ctx.phase(), phases.draft) - overrides = {(b'phases', b'new-commit'): destphase} + overrides = { + (b'phases', b'new-commit'): destphase, + (b'ui', b'allowemptycommit'): not self.skipemptysuccessorf, + } with repo.ui.configoverride(overrides, b'rebase'): if self.inmemory: newnode = commitmemorynode( @@ -650,6 +656,14 @@ if newnode is not None: self.state[rev] = repo[newnode].rev() ui.debug(b'rebased as %s\n' % short(newnode)) + if repo[newnode].isempty(): + ui.warn( + _( + b'note: created empty successor for %s, its ' + b'destination already has all its changes\n' + ) + % desc + ) else: if not self.collapsef: ui.warn(