--- a/hgext/rebase.py Tue Sep 18 22:58:12 2012 +0200
+++ b/hgext/rebase.py Tue Sep 18 23:13:31 2012 +0200
@@ -15,7 +15,7 @@
'''
from mercurial import hg, util, repair, merge, cmdutil, commands, bookmarks
-from mercurial import extensions, patch, scmutil, phases
+from mercurial import extensions, patch, scmutil, phases, obsolete
from mercurial.commands import templateopts
from mercurial.node import nullrev
from mercurial.lock import release
@@ -658,14 +658,22 @@
def clearrebased(ui, repo, state):
"""dispose of rebased revision at the end of the rebase"""
- rebased = [rev for rev in state if state[rev] != nullmerge]
- if rebased:
- if set(repo.changelog.descendants([min(rebased)])) - set(state):
- ui.warn(_("warning: new changesets detected "
- "on source branch, not stripping\n"))
- else:
- # backup the old csets by default
- repair.strip(ui, repo, repo[min(rebased)].node(), "all")
+ if obsolete._enabled:
+ markers = []
+ for rev, newrev in sorted(state.items()):
+ if newrev >= 0:
+ markers.append((repo[rev], (repo[newrev],)))
+ if markers:
+ obsolete.createmarkers(repo, markers)
+ else:
+ rebased = [rev for rev in state if state[rev] != nullmerge]
+ if rebased:
+ if set(repo.changelog.descendants([min(rebased)])) - set(state):
+ ui.warn(_("warning: new changesets detected "
+ "on source branch, not stripping\n"))
+ else:
+ # backup the old csets by default
+ repair.strip(ui, repo, repo[min(rebased)].node(), "all")
def pullrebase(orig, ui, repo, *args, **opts):