diff -r a391d0710f22 -r 1efbfa9b36a7 hgext/rebase.py --- 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(