comparison svncommands.py @ 244:28d0ee605308

Move diff to svncommands.
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Wed, 08 Apr 2009 18:21:47 +0200
parents 06130689a2c8
children 074f27c68818
comparison
equal deleted inserted replaced
243:2027f851d60c 244:28d0ee605308
1 import os 1 import os
2 2
3 from mercurial import hg 3 from mercurial import hg
4 from mercurial import node 4 from mercurial import node
5 from mercurial import patch
5 from mercurial import util as hgutil 6 from mercurial import util as hgutil
6 7
7 from svn import core 8 from svn import core
8 from svn import delta 9 from svn import delta
9 10
183 util.swap_out_encoding(old_encoding) 184 util.swap_out_encoding(old_encoding)
184 return 0 185 return 0
185 push = util.register_subcommand('push')(push) 186 push = util.register_subcommand('push')(push)
186 # for git expats 187 # for git expats
187 dcommit = util.register_subcommand('dcommit')(push) 188 dcommit = util.register_subcommand('dcommit')(push)
189
190
191 def diff(ui, repo, hg_repo_path, **opts):
192 """show a diff of the most recent revision against its parent from svn
193 """
194 hge = hg_delta_editor.HgChangeReceiver(hg_repo_path,
195 ui_=ui)
196 svn_commit_hashes = dict(zip(hge.revmap.itervalues(),
197 hge.revmap.iterkeys()))
198 parent = repo.parents()[0]
199 o_r = util.outgoing_revisions(ui, repo, hge, svn_commit_hashes, parent.node())
200 if o_r:
201 parent = repo[o_r[-1]].parents()[0]
202 base_rev, _junk = svn_commit_hashes[parent.node()]
203 it = patch.diff(repo, parent.node(), None,
204 opts=patch.diffopts(ui, opts={'git': True,
205 'show_function': False,
206 'ignore_all_space': False,
207 'ignore_space_change': False,
208 'ignore_blank_lines': False,
209 'unified': True,
210 'text': False,
211 }))
212 ui.write(cmdutil.filterdiff(''.join(it), base_rev))
213 diff = util.register_subcommand('diff')(diff)