# HG changeset patch # User Matt Mackall # Date 1318706364 18000 # Node ID 2889d4574726546fefd0c22a5cfd0c23bd311a6c # Parent 84d4a4ce45fd2dba5533a97f0b846a65f745219c rebase: simplify check for orphaned descendants diff -r 84d4a4ce45fd -r 2889d4574726 hgext/rebase.py --- a/hgext/rebase.py Sat Oct 15 14:19:07 2011 -0500 +++ b/hgext/rebase.py Sat Oct 15 14:19:24 2011 -0500 @@ -198,6 +198,15 @@ if not rebaseset: repo.ui.debug('base is ancestor of destination') result = None + elif not keepf and list(repo.set('first(children(%ld) - %ld)', + rebaseset, rebaseset)): + raise util.Abort( + _("can't remove original changesets with" + " unrebased descendants"), + hint=_('use --keep to keep original changesets')) + else: + result = buildstate(repo, dest, rebaseset, detachf) + if not result: # Empty state built, nothing to rebase ui.status(_('nothing to rebase\n'))