diff: allow ".." syntax for specifying references
This commit is contained in:
parent
d71715961d
commit
e2ccd9c7cb
16
jsvn
16
jsvn
@ -709,6 +709,22 @@ def lockable(argv, svn, out):
|
|||||||
return RET_OK
|
return RET_OK
|
||||||
|
|
||||||
def diff(argv, svn, out):
|
def diff(argv, svn, out):
|
||||||
|
for i, v in enumerate(argv):
|
||||||
|
m = re.match('(.*)(\.\.\.?)(.*)$', v)
|
||||||
|
if m is not None:
|
||||||
|
ref1, operator, ref2 = m.group(1, 2, 3)
|
||||||
|
url1, path1 = resolve_reference(svn, ref1)
|
||||||
|
if url1 == '':
|
||||||
|
sys.stderr.write('Could not resolve reference "%s"\n' % ref1)
|
||||||
|
return RET_ERR
|
||||||
|
url2, path2 = resolve_reference(svn, ref2)
|
||||||
|
if url2 == '':
|
||||||
|
sys.stderr.write('Could not resolve reference "%s"\n' % ref2)
|
||||||
|
return RET_ERR
|
||||||
|
if operator == '..':
|
||||||
|
# show the direct difference between the two refs
|
||||||
|
argv = argv[:i] + [url1, url2] + argv[i + 1:]
|
||||||
|
break
|
||||||
pout = Popen([svn] + argv, stdout=PIPE).stdout
|
pout = Popen([svn] + argv, stdout=PIPE).stdout
|
||||||
for line in iter(pout.readline, ''):
|
for line in iter(pout.readline, ''):
|
||||||
colordiff(out, line)
|
colordiff(out, line)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user