comparison utility_commands.py @ 150:58ae90a65f41

push: Improved the rebasing logic for push so that it doesn't break with keeping branch names during rebase.
author Augie Fackler <durin42@gmail.com>
date Mon, 22 Dec 2008 21:21:11 -0600
parents 04800fda7af5
children 1fde85a10f9e
comparison
equal deleted inserted replaced
149:04800fda7af5 150:58ae90a65f41
76 ui.status('Working copy seems to have no parent svn revision.\n') 76 ui.status('Working copy seems to have no parent svn revision.\n')
77 return 0 77 return 0
78 78
79 79
80 @util.register_subcommand('rebase') 80 @util.register_subcommand('rebase')
81 def rebase_commits(ui, repo, hg_repo_path, **opts): 81 def rebase_commits(ui, repo, hg_repo_path, extrafn=None, **opts):
82 """Rebases current unpushed revisions onto Subversion head 82 """Rebases current unpushed revisions onto Subversion head
83 83
84 This moves a line of development from making its own head to the top of 84 This moves a line of development from making its own head to the top of
85 Subversion development, linearizing the changes. In order to make sure you 85 Subversion development, linearizing the changes. In order to make sure you
86 rebase on top of the current top of Subversion work, you should probably run 86 rebase on top of the current top of Subversion work, you should probably run
87 'hg svn pull' before running this. 87 'hg svn pull' before running this.
88 """ 88 """
89 def extrafn(ctx, extra): 89 if extrafn is None:
90 """defined here so we can add things easily. 90 def extrafn2(ctx, extra):
91 """ 91 """defined here so we can add things easily.
92 extra['branch'] = ctx.branch() 92 """
93 extra['branch'] = ctx.branch()
94 extrafn = extrafn2
93 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path, 95 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
94 ui_=ui) 96 ui_=ui)
95 svn_commit_hashes = dict(zip(hge.revmap.itervalues(), 97 svn_commit_hashes = dict(zip(hge.revmap.itervalues(),
96 hge.revmap.iterkeys())) 98 hge.revmap.iterkeys()))
97 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes) 99 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes)