Comments
Patch
@@ -47,6 +47,17 @@ testedwith = 'internal'
def _nothingtorebase():
return 1
+def _savegraft(ctx, extra):
+ s = ctx.extra().get('source', None)
+ if s is not None:
+ extra['source'] = s
+ s = ctx.extra().get('intermediate-source', None)
+ if s is not None:
+ extra['intermediate-source'] = s
+
+def _savebranch(ctx, extra):
+ extra['branch'] = ctx.branch()
+
def _makeextrafn(copiers):
"""make an extrafn out of the given copy-functions.
@@ -208,7 +219,7 @@ def rebase(ui, repo, **opts):
collapsemsg = cmdutil.logmessage(ui, opts)
date = opts.get('date', None)
e = opts.get('extrafn') # internal, used by e.g. hgsubversion
- extrafns = []
+ extrafns = [_savegraft]
if e:
extrafns = [e]
keepf = opts.get('keep', False)
@@ -398,6 +409,10 @@ def rebase(ui, repo, **opts):
ui.status(_('reopening closed branch head %s\n') % dest)
if keepbranchesf:
+ # insert _savebranch at the start of extrafns so if
+ # there's a user-provided extrafn it can clobber branch if
+ # desired
+ extrafns.insert(0, _savebranch)
if collapsef:
branches = set()
for rev in state: