comparison cmdutil.py @ 244:28d0ee605308

Move diff to svncommands.
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Wed, 08 Apr 2009 18:21:47 +0200
parents 2027f851d60c
children 9ba31af57e4b
comparison
equal deleted inserted replaced
243:2027f851d60c 244:28d0ee605308
1 #!/usr/bin/python
2 import re
1 3
2 from mercurial import util as hgutil 4 from mercurial import util as hgutil
3 5
4 from svn import core 6 from svn import core
5 7
6 import svnwrap 8 import svnwrap
7 import svnexternals 9 import svnexternals
10
11
12 b_re = re.compile(r'^\+\+\+ b\/([^\n]*)', re.MULTILINE)
13 a_re = re.compile(r'^--- a\/([^\n]*)', re.MULTILINE)
14 devnull_re = re.compile(r'^([-+]{3}) /dev/null', re.MULTILINE)
15 header_re = re.compile(r'^diff --git .* b\/(.*)', re.MULTILINE)
16 newfile_devnull_re = re.compile(r'^--- /dev/null\n\+\+\+ b/([^\n]*)',
17 re.MULTILINE)
8 18
9 19
10 class NoFilesException(Exception): 20 class NoFilesException(Exception):
11 """Exception raised when you try and commit without files. 21 """Exception raised when you try and commit without files.
12 """ 22 """
23
24
25 def filterdiff(diff, base_revision):
26 diff = newfile_devnull_re.sub(r'--- \1\t(revision 0)' '\n'
27 r'+++ \1\t(working copy)',
28 diff)
29 diff = a_re.sub(r'--- \1'+ ('\t(revision %d)' % base_revision), diff)
30 diff = b_re.sub(r'+++ \1' + '\t(working copy)', diff)
31 diff = devnull_re.sub(r'\1 /dev/null' '\t(working copy)', diff)
32
33 diff = header_re.sub(r'Index: \1' + '\n' + ('=' * 67), diff)
34 return diff
13 35
14 36
15 def replay_convert_rev(hg_editor, svn, r): 37 def replay_convert_rev(hg_editor, svn, r):
16 hg_editor.set_current_rev(r) 38 hg_editor.set_current_rev(r)
17 svn.get_replay(r.revnum, hg_editor) 39 svn.get_replay(r.revnum, hg_editor)