##// END OF EJS Templates
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets...
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets We introduce a test-check-commit-hg.t file that will happily run the check-commit file on all draft changeset under the working directory. This should help newcomers to catch up with the rules. (And will helps old timer from time to time).

File last commit:

r12387:4f8067c9 default
r22067:14306a68 default
Show More
diffhelpers.py
60 lines | 1.5 KiB | text/x-python | PythonLexer
Martin Geisler
pure Python implementation of diffhelpers.c
r7702 # diffhelpers.py - pure Python implementation of diffhelpers.c
#
# Copyright 2009 Matt Mackall <mpm@selenic.com> and others
#
Martin Geisler
updated license to be explicit about GPL version 2
r8225 # This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
Martin Geisler
pure Python implementation of diffhelpers.c
r7702
def addlines(fp, hunk, lena, lenb, a, b):
while True:
todoa = lena - len(a)
todob = lenb - len(b)
num = max(todoa, todob)
if num == 0:
break
for i in xrange(num):
s = fp.readline()
c = s[0]
if s == "\\ No newline at end of file\n":
fix_newline(hunk, a, b)
continue
if c == "\n":
# Some patches may be missing the control char
# on empty lines. Supply a leading space.
s = " \n"
hunk.append(s)
if c == "+":
b.append(s[1:])
elif c == "-":
a.append(s)
else:
b.append(s[1:])
a.append(s)
return 0
def fix_newline(hunk, a, b):
l = hunk[-1]
Benoit Boissinot
fix test-mq-eol under --pure (mimic diffhelper.c behaviour)...
r10551 # tolerate CRLF in last line
if l.endswith('\r\n'):
hline = l[:-2]
else:
hline = l[:-1]
c = hline[0]
Martin Geisler
pure Python implementation of diffhelpers.c
r7702
Brodie Rao
cleanup: use x in (a, b) instead of x == a or x == b
r12387 if c in " +":
Benoit Boissinot
fix test-mq-eol under --pure (mimic diffhelper.c behaviour)...
r10551 b[-1] = hline[1:]
Brodie Rao
cleanup: use x in (a, b) instead of x == a or x == b
r12387 if c in " -":
Martin Geisler
pure Python implementation of diffhelpers.c
r7702 a[-1] = hline
hunk[-1] = hline
return 0
def testhunk(a, b, bstart):
alen = len(a)
blen = len(b)
if alen > blen - bstart:
return -1
for i in xrange(alen):
if a[i][1:] != b[i + bstart]:
return -1
return 0