Mercurial > public > mercurial-scm > hg
diff hgext/rebase.py @ 15742:65df60a3f96b
phases: prevent rebase to rebase immutable changeset.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Tue, 27 Dec 2011 00:11:22 +0100 |
parents | 8edd9f2c7b57 |
children | 12309c09d19a |
line wrap: on
line diff
--- a/hgext/rebase.py Mon Dec 26 13:48:31 2011 +0100 +++ b/hgext/rebase.py Tue Dec 27 00:11:22 2011 +0100 @@ -193,6 +193,11 @@ rebaseset = repo.revs('(children(ancestor(%r, %d)) & ::%r)::', base, dest, base) + if rebaseset: + root = min(rebaseset) + else: + root = None + if not rebaseset: repo.ui.debug('base is ancestor of destination') result = None @@ -202,6 +207,10 @@ _("can't remove original changesets with" " unrebased descendants"), hint=_('use --keep to keep original changesets')) + elif not keepf and not repo[root].mutable(): + raise util.Abort(_("Can't rebase immutable changeset %s") + % repo[root], + hint=_('see hg help phases for details')) else: result = buildstate(repo, dest, rebaseset, detachf)