Mercurial > public > mercurial-scm > hg-stable
diff hgext/rebase.py @ 18164:bacf55bd8f90
rebase: allow non-head rebase-set when obsolete is enabled
Obsolescence markers can represent this situation just fine. Rebased
revisions are marked as precursors of the ones create by
rebase. Unrebased descendants becomes "unstable".
If obsolescence is not enabled we keep the current behavior of
aborting. This new behavior only applies when obsolete is
enabled and is subject to future discussion and changes.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Mon, 31 Dec 2012 17:45:52 -0600 |
parents | 9c76da468a19 |
children | 9454e40e047b |
line wrap: on
line diff
--- a/hgext/rebase.py Mon Dec 31 17:44:18 2012 -0600 +++ b/hgext/rebase.py Mon Dec 31 17:45:52 2012 -0600 @@ -194,8 +194,9 @@ if not rebaseset: repo.ui.debug('base is ancestor of destination\n') result = None - elif not keepf and repo.revs('first(children(%ld) - %ld)-hidden()', - rebaseset, rebaseset): + elif (not (keepf or obsolete._enabled) + and repo.revs('first(children(%ld) - %ld)-hidden()', + rebaseset, rebaseset)): raise util.Abort( _("can't remove original changesets with" " unrebased descendants"),