Mercurial > hg > check_whitespace
annotate check_whitespace.py @ 11:ff07accd0692
Don't use print; complain when used as program instead of python hook.
author | Sjoerd Mullender <sjoerd@acm.org> |
---|---|
date | Fri, 20 Mar 2015 15:26:10 +0100 (2015-03-20) |
parents | bd1ca3d502d6 |
children | 915cf73f6afa |
rev | line source |
---|---|
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
2 # |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
3 # Mercurial hook to check for inappropriate whitespace. Currently it |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
4 # only checks Python files. |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
5 # |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
6 # This script is based on the code in the Mercurial book |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
7 # <http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html#id403945> |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
8 |
3
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
9 '''hook to refuse commits that introduce some bad inputs. |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
10 Inputs that are refused are conflict markers (rows of < or > |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
11 characters), and tabs and trailing white space in Python sources. |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
12 |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
13 Usage: in your ~/.hgrc file add: |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
14 [hooks] |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
15 pretxncommit.whitespace = python:/path/to/check_whitespace.py:hook |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
16 pretxnchangegroup.whitespace = python:/path/to/check_whitespace.py:hook |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
17 ''' |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
18 |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
19 import re |
9
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
20 import os |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
21 |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
22 binary_suffixes = ( |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
23 '.bam', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
24 '.bmp', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
25 '.bz2', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
26 '.chm', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
27 '.cpl', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
28 '.dia', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
29 '.dll', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
30 '.gz', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
31 '.ico', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
32 '.pdf', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
33 '.png', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
34 '.rtf', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
35 '.zip', |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
36 ) |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
37 |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
38 def trailing_whitespace(difflines): |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
39 linenum = 0 |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
40 header = False |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
41 filename = '' |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
42 fnre = re.compile(r'(?:---|\+\+\+) (?P<filename>[^\t\r\n]+)') |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
43 lnre = re.compile(r'@@ -\d+,\d+ \+(?P<lineno>\d+),') |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
44 wsre = re.compile(r'\+.*[ \t]$') |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
45 tbre = re.compile(r'\+.*\t') |
2
adc4e99b4a4a
Added test for conflict markers.
Sjoerd Mullender <sjoerd@acm.org>
parents:
0
diff
changeset
|
46 resre = re.compile(r'\+(<<<<<<<|>>>>>>>)') |
6
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
47 adding = False |
7
2ac85cc1e11b
Symlinks may have no newline at the end.
Sjoerd Mullender <sjoerd@acm.org>
parents:
6
diff
changeset
|
48 islink = False # symlinks can have no newline at end |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
49 |
5
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
50 for chunk in difflines: |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
51 for line in chunk.split('\n'): |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
52 if header: |
7
2ac85cc1e11b
Symlinks may have no newline at the end.
Sjoerd Mullender <sjoerd@acm.org>
parents:
6
diff
changeset
|
53 if line.startswith('new file mode'): |
2ac85cc1e11b
Symlinks may have no newline at the end.
Sjoerd Mullender <sjoerd@acm.org>
parents:
6
diff
changeset
|
54 islink = '120000' in line |
5
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
55 # remember the name of the file that this diff affects |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
56 m = fnre.match(line) |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
57 if m is not None and m.group('filename') != '/dev/null': |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
58 filename = m.group('filename').split('/', 1)[-1] |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
59 if line.startswith('+++ '): |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
60 header = False |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
61 continue |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
62 if line.startswith('diff '): |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
63 header = True |
6
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
64 adding = False |
7
2ac85cc1e11b
Symlinks may have no newline at the end.
Sjoerd Mullender <sjoerd@acm.org>
parents:
6
diff
changeset
|
65 islink = False |
5
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
66 continue |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
67 # hunk header - save the line number |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
68 m = lnre.match(line) |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
69 if m is not None: |
5
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
70 linenum = int(m.group('lineno')) |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
71 continue |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
72 if header or not filename: |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
73 continue |
6
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
74 if line[:1] == '+': |
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
75 adding = True |
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
76 elif line[:1] in (' ', '-'): |
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
77 adding = False |
8
42b21d1a4e84
Accept no newline at end of file for vertoo.data.
Sjoerd Mullender <sjoerd@acm.org>
parents:
7
diff
changeset
|
78 elif adding \ |
42b21d1a4e84
Accept no newline at end of file for vertoo.data.
Sjoerd Mullender <sjoerd@acm.org>
parents:
7
diff
changeset
|
79 and not islink \ |
42b21d1a4e84
Accept no newline at end of file for vertoo.data.
Sjoerd Mullender <sjoerd@acm.org>
parents:
7
diff
changeset
|
80 and line.startswith(r'\ No newline at end of file') \ |
9
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
81 and not filename.endswith('vertoo.data') \ |
1ba95b6130d4
Allow binary files to not end in newline.
Sjoerd Mullender <sjoerd@acm.org>
parents:
8
diff
changeset
|
82 and not os.path.splitext(filename)[1] in binary_suffixes: |
6
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
83 adding = False |
95e8189b5fb4
Check for newline at end of file.
Sjoerd Mullender <sjoerd@acm.org>
parents:
5
diff
changeset
|
84 yield filename, linenum, 'no newline at end of file' |
5
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
85 # hunk body - check for an added line with bad whitespace |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
86 if filename[-3:] == '.py' or filename[-5:] == '.py.in': |
5
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
87 m = tbre.match(line) |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
88 if m is not None: |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
89 yield filename, linenum, 'TABs' |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
90 # trailing whitespace, for now only in Python source |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
91 m = wsre.match(line) |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
92 if m is not None: |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
93 if filename[-3:] == '.py' or filename[-5:] == '.py.in': |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
94 yield filename, linenum, 'trailing whitespace' |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
95 # conflict markers |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
96 m = resre.match(line) |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
97 if m is not None: |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
98 yield filename, linenum, 'conflict marker' |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
99 if line and line[0] in ' +': |
32c51a111990
Fix checking for errors in merge changeset.
Sjoerd Mullender <sjoerd@acm.org>
parents:
4
diff
changeset
|
100 linenum += 1 |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
101 |
10
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
102 def hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
103 import os, sys, subprocess |
10
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
104 if hooktype not in ['pretxnchangegroup', 'pretxncommit']: |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
105 ui.write('Hook should be pretxncommit/pretxnchangegroup not "%s".' % hooktype) |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
106 return 1 |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
107 added = False |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
108 branches = {} |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
109 for rev in xrange(repo[node], len(repo)): |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
110 branch = repo[rev].branch() |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
111 if not branches.has_key(branch): |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
112 # first time we see this branch, remember parents to diff against |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
113 branches[branch] = repo[rev].parents() |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
114 desc = 0 |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
115 for d in repo[rev].descendants(): |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
116 break |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
117 else: |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
118 # no descendants for this revision, check diff with saved parents |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
119 for p in branches[branch]: |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
120 for filename, linenum, msg in trailing_whitespace(repo[rev].diff(p)): |
11
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
121 ui.write('%s, line %d: %s added\n' % (filename, linenum, msg)) |
10
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
122 added = True |
0
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
123 if added: |
ae8465e44eec
Script to check for inappropriate whitespace.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff
changeset
|
124 # save the commit message so we don't need to retype it |
10
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
125 if source != 'serve': |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
126 cmtsv = os.path.join('.hg','commit.save') |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
127 subprocess.call(['hg', 'tip', '--template', '{desc}'], |
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
128 stdout=open(cmtsv, 'w')) |
11
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
129 ui.write('commit message saved to %s\n' % cmtsv) |
10
bd1ca3d502d6
Do not check intermediate changesets for errors, only final result.
Sjoerd Mullender <sjoerd@acm.org>
parents:
9
diff
changeset
|
130 return 1 |
3
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
131 |
561cb4f73b83
Turn into proper hook function (with backward compatibility).
Sjoerd Mullender <sjoerd@acm.org>
parents:
2
diff
changeset
|
132 if __name__ == '__main__': |
11
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
133 import sys |
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
134 sys.stderr.write('call this hook using the Python interface.\n' |
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
135 'In your .hgrc file you shoud have:\n' |
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
136 'pretxncommit.whitespace = python:<path-to-check_whitespace-directory>/check_whitespace.py:hook\n') |
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
137 |
ff07accd0692
Don't use print; complain when used as program instead of python hook.
Sjoerd Mullender <sjoerd@acm.org>
parents:
10
diff
changeset
|
138 sys.exit(1) |