##// END OF EJS Templates
shrink-revlog: make check-code happier...
Greg Ward -
r16306:d76b9abd default
parent child Browse files
Show More
@@ -1,290 +1,294 b''
1 """reorder a revlog (the manifest by default) to save space
1 """reorder a revlog (the manifest by default) to save space
2
2
3 Specifically, this topologically sorts the revisions in the revlog so that
3 Specifically, this topologically sorts the revisions in the revlog so that
4 revisions on the same branch are adjacent as much as possible. This is a
4 revisions on the same branch are adjacent as much as possible. This is a
5 workaround for the fact that Mercurial computes deltas relative to the
5 workaround for the fact that Mercurial computes deltas relative to the
6 previous revision rather than relative to a parent revision.
6 previous revision rather than relative to a parent revision.
7
7
8 This is *not* safe to run on a changelog.
8 This is *not* safe to run on a changelog.
9 """
9 """
10
10
11 # Originally written by Benoit Boissinot <benoit.boissinot at ens-lyon.org>
11 # Originally written by Benoit Boissinot <benoit.boissinot at ens-lyon.org>
12 # as a patch to rewrite-log. Cleaned up, refactored, documented, and
12 # as a patch to rewrite-log. Cleaned up, refactored, documented, and
13 # renamed by Greg Ward <greg at gerg.ca>.
13 # renamed by Greg Ward <greg at gerg.ca>.
14
14
15 # XXX would be nice to have a way to verify the repository after shrinking,
15 # XXX would be nice to have a way to verify the repository after shrinking,
16 # e.g. by comparing "before" and "after" states of random changesets
16 # e.g. by comparing "before" and "after" states of random changesets
17 # (maybe: export before, shrink, export after, diff).
17 # (maybe: export before, shrink, export after, diff).
18
18
19 import os, errno
19 import os, errno
20 from mercurial import revlog, transaction, node, util, scmutil
20 from mercurial import revlog, transaction, node, util, scmutil
21 from mercurial import changegroup
21 from mercurial import changegroup
22 from mercurial.i18n import _
22 from mercurial.i18n import _
23
23
24
24
25 def postorder(start, edges):
25 def postorder(start, edges):
26 result = []
26 result = []
27 visit = list(start)
27 visit = list(start)
28 finished = set()
28 finished = set()
29
29
30 while visit:
30 while visit:
31 cur = visit[-1]
31 cur = visit[-1]
32 for p in edges[cur]:
32 for p in edges[cur]:
33 # defend against node.nullrev because it's occasionally
33 # defend against node.nullrev because it's occasionally
34 # possible for a node to have parents (null, something)
34 # possible for a node to have parents (null, something)
35 # rather than (something, null)
35 # rather than (something, null)
36 if p not in finished and p != node.nullrev:
36 if p not in finished and p != node.nullrev:
37 visit.append(p)
37 visit.append(p)
38 break
38 break
39 else:
39 else:
40 result.append(cur)
40 result.append(cur)
41 finished.add(cur)
41 finished.add(cur)
42 visit.pop()
42 visit.pop()
43
43
44 return result
44 return result
45
45
46 def toposort_reversepostorder(ui, rl):
46 def toposort_reversepostorder(ui, rl):
47 # postorder of the reverse directed graph
47 # postorder of the reverse directed graph
48
48
49 # map rev to list of parent revs (p2 first)
49 # map rev to list of parent revs (p2 first)
50 parents = {}
50 parents = {}
51 heads = set()
51 heads = set()
52 ui.status(_('reading revs\n'))
52 ui.status(_('reading revs\n'))
53 try:
53 try:
54 for rev in rl:
54 for rev in rl:
55 ui.progress(_('reading'), rev, total=len(rl))
55 ui.progress(_('reading'), rev, total=len(rl))
56 (p1, p2) = rl.parentrevs(rev)
56 (p1, p2) = rl.parentrevs(rev)
57 if p1 == p2 == node.nullrev:
57 if p1 == p2 == node.nullrev:
58 parents[rev] = () # root node
58 parents[rev] = () # root node
59 elif p1 == p2 or p2 == node.nullrev:
59 elif p1 == p2 or p2 == node.nullrev:
60 parents[rev] = (p1,) # normal node
60 parents[rev] = (p1,) # normal node
61 else:
61 else:
62 parents[rev] = (p2, p1) # merge node
62 parents[rev] = (p2, p1) # merge node
63 heads.add(rev)
63 heads.add(rev)
64 for p in parents[rev]:
64 for p in parents[rev]:
65 heads.discard(p)
65 heads.discard(p)
66 finally:
66 finally:
67 ui.progress(_('reading'), None)
67 ui.progress(_('reading'), None)
68
68
69 heads = list(heads)
69 heads = list(heads)
70 heads.sort(reverse=True)
70 heads.sort(reverse=True)
71
71
72 ui.status(_('sorting revs\n'))
72 ui.status(_('sorting revs\n'))
73 return postorder(heads, parents)
73 return postorder(heads, parents)
74
74
75 def toposort_postorderreverse(ui, rl):
75 def toposort_postorderreverse(ui, rl):
76 # reverse-postorder of the reverse directed graph
76 # reverse-postorder of the reverse directed graph
77
77
78 children = {}
78 children = {}
79 roots = set()
79 roots = set()
80 ui.status(_('reading revs\n'))
80 ui.status(_('reading revs\n'))
81 try:
81 try:
82 for rev in rl:
82 for rev in rl:
83 ui.progress(_('reading'), rev, total=len(rl))
83 ui.progress(_('reading'), rev, total=len(rl))
84 (p1, p2) = rl.parentrevs(rev)
84 (p1, p2) = rl.parentrevs(rev)
85 if p1 == p2 == node.nullrev:
85 if p1 == p2 == node.nullrev:
86 roots.add(rev)
86 roots.add(rev)
87 children[rev] = []
87 children[rev] = []
88 if p1 != node.nullrev:
88 if p1 != node.nullrev:
89 children[p1].append(rev)
89 children[p1].append(rev)
90 if p2 != node.nullrev:
90 if p2 != node.nullrev:
91 children[p2].append(rev)
91 children[p2].append(rev)
92 finally:
92 finally:
93 ui.progress(_('reading'), None)
93 ui.progress(_('reading'), None)
94
94
95 roots = list(roots)
95 roots = list(roots)
96 roots.sort()
96 roots.sort()
97
97
98 ui.status(_('sorting revs\n'))
98 ui.status(_('sorting revs\n'))
99 result = postorder(roots, children)
99 result = postorder(roots, children)
100 result.reverse()
100 result.reverse()
101 return result
101 return result
102
102
103 def writerevs(ui, r1, r2, order, tr):
103 def writerevs(ui, r1, r2, order, tr):
104
104
105 ui.status(_('writing revs\n'))
105 ui.status(_('writing revs\n'))
106
106
107
107
108 order = [r1.node(r) for r in order]
108 order = [r1.node(r) for r in order]
109
109
110 # this is a bit ugly, but it works
110 # this is a bit ugly, but it works
111 count = [0]
111 count = [0]
112 def lookup(revl, x):
112 def lookup(revl, x):
113 count[0] += 1
113 count[0] += 1
114 ui.progress(_('writing'), count[0], total=len(order))
114 ui.progress(_('writing'), count[0], total=len(order))
115 return "%020d" % revl.linkrev(revl.rev(x))
115 return "%020d" % revl.linkrev(revl.rev(x))
116
116
117 unlookup = lambda x: int(x, 10)
117 unlookup = lambda x: int(x, 10)
118
118
119 try:
119 try:
120 bundler = changegroup.bundle10(lookup)
120 bundler = changegroup.bundle10(lookup)
121 group = util.chunkbuffer(r1.group(order, bundler))
121 group = util.chunkbuffer(r1.group(order, bundler))
122 group = changegroup.unbundle10(group, "UN")
122 group = changegroup.unbundle10(group, "UN")
123 r2.addgroup(group, unlookup, tr)
123 r2.addgroup(group, unlookup, tr)
124 finally:
124 finally:
125 ui.progress(_('writing'), None)
125 ui.progress(_('writing'), None)
126
126
127 def report(ui, r1, r2):
127 def report(ui, r1, r2):
128 def getsize(r):
128 def getsize(r):
129 s = 0
129 s = 0
130 for fn in (r.indexfile, r.datafile):
130 for fn in (r.indexfile, r.datafile):
131 try:
131 try:
132 s += os.stat(fn).st_size
132 s += os.stat(fn).st_size
133 except OSError, inst:
133 except OSError, inst:
134 if inst.errno != errno.ENOENT:
134 if inst.errno != errno.ENOENT:
135 raise
135 raise
136 return s
136 return s
137
137
138 oldsize = float(getsize(r1))
138 oldsize = float(getsize(r1))
139 newsize = float(getsize(r2))
139 newsize = float(getsize(r2))
140
140
141 # argh: have to pass an int to %d, because a float >= 2^32
141 # argh: have to pass an int to %d, because a float >= 2^32
142 # blows up under Python 2.5 or earlier
142 # blows up under Python 2.5 or earlier
143 ui.write(_('old file size: %12d bytes (%6.1f MiB)\n')
143 ui.write(_('old file size: %12d bytes (%6.1f MiB)\n')
144 % (int(oldsize), oldsize / 1024 / 1024))
144 % (int(oldsize), oldsize / 1024 / 1024))
145 ui.write(_('new file size: %12d bytes (%6.1f MiB)\n')
145 ui.write(_('new file size: %12d bytes (%6.1f MiB)\n')
146 % (int(newsize), newsize / 1024 / 1024))
146 % (int(newsize), newsize / 1024 / 1024))
147
147
148 shrink_percent = (oldsize - newsize) / oldsize * 100
148 shrink_percent = (oldsize - newsize) / oldsize * 100
149 shrink_factor = oldsize / newsize
149 shrink_factor = oldsize / newsize
150 ui.write(_('shrinkage: %.1f%% (%.1fx)\n')
150 ui.write(_('shrinkage: %.1f%% (%.1fx)\n')
151 % (shrink_percent, shrink_factor))
151 % (shrink_percent, shrink_factor))
152
152
153 def shrink(ui, repo, **opts):
153 def shrink(ui, repo, **opts):
154 """shrink a revlog by reordering revisions
154 """shrink a revlog by reordering revisions
155
155
156 Rewrites all the entries in some revlog of the current repository
156 Rewrites all the entries in some revlog of the current repository
157 (by default, the manifest log) to save space.
157 (by default, the manifest log) to save space.
158
158
159 Different sort algorithms have different performance
159 Different sort algorithms have different performance
160 characteristics. Use ``--sort`` to select a sort algorithm so you
160 characteristics. Use ``--sort`` to select a sort algorithm so you
161 can determine which works best for your data.
161 can determine which works best for your data.
162 """
162 """
163
163
164 if not repo.local():
164 if not repo.local():
165 raise util.Abort(_('not a local repository: %s') % repo.root)
165 raise util.Abort(_('not a local repository: %s') % repo.root)
166
166
167 fn = opts.get('revlog')
167 fn = opts.get('revlog')
168 if not fn:
168 if not fn:
169 indexfn = repo.sjoin('00manifest.i')
169 indexfn = repo.sjoin('00manifest.i')
170 else:
170 else:
171 if not fn.endswith('.i'):
171 if not fn.endswith('.i'):
172 raise util.Abort(_('--revlog option must specify the revlog index '
172 raise util.Abort(_('--revlog option must specify the revlog index '
173 'file (*.i), not %s') % opts.get('revlog'))
173 'file (*.i), not %s') % opts.get('revlog'))
174
174
175 indexfn = os.path.realpath(fn)
175 indexfn = os.path.realpath(fn)
176 store = repo.sjoin('')
176 store = repo.sjoin('')
177 if not indexfn.startswith(store):
177 if not indexfn.startswith(store):
178 raise util.Abort(_('--revlog option must specify a revlog in %s, '
178 raise util.Abort(_('--revlog option must specify a revlog in %s, '
179 'not %s') % (store, indexfn))
179 'not %s') % (store, indexfn))
180
180
181 sortname = opts['sort']
181 sortname = opts['sort']
182 try:
182 try:
183 toposort = globals()['toposort_' + sortname]
183 toposort = globals()['toposort_' + sortname]
184 except KeyError:
184 except KeyError:
185 raise util.Abort(_('no such toposort algorithm: %s') % sortname)
185 raise util.Abort(_('no such toposort algorithm: %s') % sortname)
186
186
187 if not os.path.exists(indexfn):
187 if not os.path.exists(indexfn):
188 raise util.Abort(_('no such file: %s') % indexfn)
188 raise util.Abort(_('no such file: %s') % indexfn)
189 if '00changelog' in indexfn:
189 if '00changelog' in indexfn:
190 raise util.Abort(_('shrinking the changelog '
190 raise util.Abort(_('shrinking the changelog '
191 'will corrupt your repository'))
191 'will corrupt your repository'))
192
192
193 ui.write(_('shrinking %s\n') % indexfn)
193 ui.write(_('shrinking %s\n') % indexfn)
194 tmpindexfn = util.mktempcopy(indexfn, emptyok=True)
194 tmpindexfn = util.mktempcopy(indexfn, emptyok=True)
195
195
196 r1 = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), indexfn)
196 r1 = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), indexfn)
197 r2 = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), tmpindexfn)
197 r2 = revlog.revlog(scmutil.opener(os.getcwd(), audit=False), tmpindexfn)
198
198
199 datafn, tmpdatafn = r1.datafile, r2.datafile
199 datafn, tmpdatafn = r1.datafile, r2.datafile
200
200
201 oldindexfn = indexfn + '.old'
201 oldindexfn = indexfn + '.old'
202 olddatafn = datafn + '.old'
202 olddatafn = datafn + '.old'
203 if os.path.exists(oldindexfn) or os.path.exists(olddatafn):
203 if os.path.exists(oldindexfn) or os.path.exists(olddatafn):
204 raise util.Abort(_('one or both of\n'
204 raise util.Abort(_('one or both of\n'
205 ' %s\n'
205 ' %s\n'
206 ' %s\n'
206 ' %s\n'
207 'exists from a previous run; please clean up '
207 'exists from a previous run; please clean up '
208 'before running again') % (oldindexfn, olddatafn))
208 'before running again') % (oldindexfn, olddatafn))
209
209
210 # Don't use repo.transaction(), because then things get hairy with
210 # Don't use repo.transaction(), because then things get hairy with
211 # paths: some need to be relative to .hg, and some need to be
211 # paths: some need to be relative to .hg, and some need to be
212 # absolute. Doing it this way keeps things simple: everything is an
212 # absolute. Doing it this way keeps things simple: everything is an
213 # absolute path.
213 # absolute path.
214 lock = repo.lock(wait=False)
214 lock = repo.lock(wait=False)
215 tr = transaction.transaction(ui.warn,
215 tr = transaction.transaction(ui.warn,
216 open,
216 open,
217 repo.sjoin('journal'))
217 repo.sjoin('journal'))
218
218
219 def ignoremissing(func):
219 def ignoremissing(func):
220 def f(*args, **kw):
220 def f(*args, **kw):
221 try:
221 try:
222 return func(*args, **kw)
222 return func(*args, **kw)
223 except OSError, inst:
223 except OSError, inst:
224 if inst.errno != errno.ENOENT:
224 if inst.errno != errno.ENOENT:
225 raise
225 raise
226 return f
226 return f
227
227
228 try:
228 try:
229 try:
229 try:
230 order = toposort(ui, r1)
230 order = toposort(ui, r1)
231
231
232 suboptimal = 0
232 suboptimal = 0
233 for i in xrange(1, len(order)):
233 for i in xrange(1, len(order)):
234 parents = [p for p in r1.parentrevs(order[i])
234 parents = [p for p in r1.parentrevs(order[i])
235 if p != node.nullrev]
235 if p != node.nullrev]
236 if parents and order[i - 1] not in parents:
236 if parents and order[i - 1] not in parents:
237 suboptimal += 1
237 suboptimal += 1
238 ui.note(_('%d suboptimal nodes\n') % suboptimal)
238 ui.note(_('%d suboptimal nodes\n') % suboptimal)
239
239
240 writerevs(ui, r1, r2, order, tr)
240 writerevs(ui, r1, r2, order, tr)
241 report(ui, r1, r2)
241 report(ui, r1, r2)
242 tr.close()
242 tr.close()
243 except:
243 except:
244 # Abort transaction first, so we truncate the files before
244 # Abort transaction first, so we truncate the files before
245 # deleting them.
245 # deleting them.
246 tr.abort()
246 tr.abort()
247 for fn in (tmpindexfn, tmpdatafn):
247 for fn in (tmpindexfn, tmpdatafn):
248 ignoremissing(os.unlink)(fn)
248 ignoremissing(os.unlink)(fn)
249 raise
249 raise
250 if not opts.get('dry_run'):
250 if not opts.get('dry_run'):
251 # racy, both files cannot be renamed atomically
251 # racy, both files cannot be renamed atomically
252 # copy files
252 # copy files
253 util.oslink(indexfn, oldindexfn)
253 util.oslink(indexfn, oldindexfn)
254 ignoremissing(util.oslink)(datafn, olddatafn)
254 ignoremissing(util.oslink)(datafn, olddatafn)
255
255
256 # rename
256 # rename
257 util.rename(tmpindexfn, indexfn)
257 util.rename(tmpindexfn, indexfn)
258 try:
258 try:
259 os.chmod(tmpdatafn, os.stat(datafn).st_mode)
259 os.chmod(tmpdatafn, os.stat(datafn).st_mode)
260 util.rename(tmpdatafn, datafn)
260 util.rename(tmpdatafn, datafn)
261 except OSError, inst:
261 except OSError, inst:
262 if inst.errno != errno.ENOENT:
262 if inst.errno != errno.ENOENT:
263 raise
263 raise
264 ignoremissing(os.unlink)(datafn)
264 ignoremissing(os.unlink)(datafn)
265 else:
265 else:
266 for fn in (tmpindexfn, tmpdatafn):
266 for fn in (tmpindexfn, tmpdatafn):
267 ignoremissing(os.unlink)(fn)
267 ignoremissing(os.unlink)(fn)
268 finally:
268 finally:
269 lock.release()
269 lock.release()
270
270
271 if not opts.get('dry_run'):
271 if not opts.get('dry_run'):
272 ui.write(_('note: old revlog saved in:\n'
272 ui.write(
273 ' %s\n'
273 _('note: old revlog saved in:\n'
274 ' %s\n'
274 ' %s\n'
275 '(You can delete those files when you are satisfied that your\n'
275 ' %s\n'
276 'repository is still sane. '
276 '(You can delete those files when you are satisfied that your\n'
277 'Running \'hg verify\' is strongly recommended.)\n')
277 'repository is still sane. '
278 % (oldindexfn, olddatafn))
278 'Running \'hg verify\' is strongly recommended.)\n')
279 % (oldindexfn, olddatafn))
279
280
280 cmdtable = {
281 cmdtable = {
281 'shrink': (shrink,
282 'shrink': (shrink,
282 [('', 'revlog', '', _('index (.i) file of the revlog to shrink')),
283 [('', 'revlog', '',
283 ('n', 'dry-run', None, _('do not shrink, simulate only')),
284 _('the revlog to shrink (.i)')),
284 ('', 'sort', 'reversepostorder', 'name of sort algorithm to use'),
285 ('n', 'dry-run', None,
286 _('do not shrink, simulate only')),
287 ('', 'sort', 'reversepostorder',
288 _('name of sort algorithm to use')),
285 ],
289 ],
286 _('hg shrink [--revlog PATH]'))
290 _('hg shrink [--revlog PATH]'))
287 }
291 }
288
292
289 if __name__ == "__main__":
293 if __name__ == "__main__":
290 print "shrink-revlog.py is now an extension (see hg help extensions)"
294 print "shrink-revlog.py is now an extension (see hg help extensions)"
@@ -1,650 +1,641 b''
1 $ check_code="$TESTDIR"/../contrib/check-code.py
1 $ check_code="$TESTDIR"/../contrib/check-code.py
2 $ cd "$TESTDIR"/..
2 $ cd "$TESTDIR"/..
3 $ if ! hg identify -q > /dev/null; then
3 $ if ! hg identify -q > /dev/null; then
4 > echo "skipped: not a Mercurial working dir" >&2
4 > echo "skipped: not a Mercurial working dir" >&2
5 > exit 80
5 > exit 80
6 > fi
6 > fi
7 $ hg manifest | xargs "$check_code" || echo 'FAILURE IS NOT AN OPTION!!!'
7 $ hg manifest | xargs "$check_code" || echo 'FAILURE IS NOT AN OPTION!!!'
8
8
9 $ hg manifest | xargs "$check_code" --warnings --nolineno --per-file=0 || true
9 $ hg manifest | xargs "$check_code" --warnings --nolineno --per-file=0 || true
10 contrib/check-code.py:0:
10 contrib/check-code.py:0:
11 > # (r'^\s+[^_ \n][^_. \n]+_[^_\n]+\s*=', "don't use underbars in identifiers"),
11 > # (r'^\s+[^_ \n][^_. \n]+_[^_\n]+\s*=', "don't use underbars in identifiers"),
12 warning: line over 80 characters
12 warning: line over 80 characters
13 contrib/perf.py:0:
13 contrib/perf.py:0:
14 > except:
14 > except:
15 warning: naked except clause
15 warning: naked except clause
16 contrib/perf.py:0:
16 contrib/perf.py:0:
17 > #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, False))))
17 > #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, False))))
18 warning: line over 80 characters
18 warning: line over 80 characters
19 contrib/perf.py:0:
19 contrib/perf.py:0:
20 > except:
20 > except:
21 warning: naked except clause
21 warning: naked except clause
22 contrib/setup3k.py:0:
22 contrib/setup3k.py:0:
23 > except:
23 > except:
24 warning: naked except clause
24 warning: naked except clause
25 contrib/setup3k.py:0:
25 contrib/setup3k.py:0:
26 > except:
26 > except:
27 warning: naked except clause
27 warning: naked except clause
28 contrib/setup3k.py:0:
28 contrib/setup3k.py:0:
29 > except:
29 > except:
30 warning: naked except clause
30 warning: naked except clause
31 warning: naked except clause
31 warning: naked except clause
32 warning: naked except clause
32 warning: naked except clause
33 contrib/shrink-revlog.py:0:
33 contrib/shrink-revlog.py:0:
34 > '(You can delete those files when you are satisfied that your\n'
35 warning: line over 80 characters
36 contrib/shrink-revlog.py:0:
37 > ('', 'sort', 'reversepostorder', 'name of sort algorithm to use'),
38 warning: line over 80 characters
39 contrib/shrink-revlog.py:0:
40 > [('', 'revlog', '', _('index (.i) file of the revlog to shrink')),
41 warning: line over 80 characters
42 contrib/shrink-revlog.py:0:
43 > except:
34 > except:
44 warning: naked except clause
35 warning: naked except clause
45 doc/gendoc.py:0:
36 doc/gendoc.py:0:
46 > "together with Mercurial. Help for other extensions is available "
37 > "together with Mercurial. Help for other extensions is available "
47 warning: line over 80 characters
38 warning: line over 80 characters
48 hgext/bugzilla.py:0:
39 hgext/bugzilla.py:0:
49 > raise util.Abort(_('cannot find bugzilla user id for %s or %s') %
40 > raise util.Abort(_('cannot find bugzilla user id for %s or %s') %
50 warning: line over 80 characters
41 warning: line over 80 characters
51 hgext/bugzilla.py:0:
42 hgext/bugzilla.py:0:
52 > bzdir = self.ui.config('bugzilla', 'bzdir', '/var/www/html/bugzilla')
43 > bzdir = self.ui.config('bugzilla', 'bzdir', '/var/www/html/bugzilla')
53 warning: line over 80 characters
44 warning: line over 80 characters
54 hgext/convert/__init__.py:0:
45 hgext/convert/__init__.py:0:
55 > ('', 'ancestors', '', _('show current changeset in ancestor branches')),
46 > ('', 'ancestors', '', _('show current changeset in ancestor branches')),
56 warning: line over 80 characters
47 warning: line over 80 characters
57 hgext/convert/bzr.py:0:
48 hgext/convert/bzr.py:0:
58 > except:
49 > except:
59 warning: naked except clause
50 warning: naked except clause
60 hgext/convert/common.py:0:
51 hgext/convert/common.py:0:
61 > except:
52 > except:
62 warning: naked except clause
53 warning: naked except clause
63 hgext/convert/common.py:0:
54 hgext/convert/common.py:0:
64 > except:
55 > except:
65 warning: naked except clause
56 warning: naked except clause
66 warning: naked except clause
57 warning: naked except clause
67 hgext/convert/convcmd.py:0:
58 hgext/convert/convcmd.py:0:
68 > except:
59 > except:
69 warning: naked except clause
60 warning: naked except clause
70 hgext/convert/cvs.py:0:
61 hgext/convert/cvs.py:0:
71 > # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z
62 > # /1 :pserver:user@example.com:2401/cvsroot/foo Ah<Z
72 warning: line over 80 characters
63 warning: line over 80 characters
73 hgext/convert/cvsps.py:0:
64 hgext/convert/cvsps.py:0:
74 > assert len(branches) == 1, 'unknown branch: %s' % e.mergepoint
65 > assert len(branches) == 1, 'unknown branch: %s' % e.mergepoint
75 warning: line over 80 characters
66 warning: line over 80 characters
76 hgext/convert/cvsps.py:0:
67 hgext/convert/cvsps.py:0:
77 > ui.write('Ancestors: %s\n' % (','.join(r)))
68 > ui.write('Ancestors: %s\n' % (','.join(r)))
78 warning: unwrapped ui message
69 warning: unwrapped ui message
79 hgext/convert/cvsps.py:0:
70 hgext/convert/cvsps.py:0:
80 > ui.write('Parent: %d\n' % cs.parents[0].id)
71 > ui.write('Parent: %d\n' % cs.parents[0].id)
81 warning: unwrapped ui message
72 warning: unwrapped ui message
82 hgext/convert/cvsps.py:0:
73 hgext/convert/cvsps.py:0:
83 > ui.write('Parents: %s\n' %
74 > ui.write('Parents: %s\n' %
84 warning: unwrapped ui message
75 warning: unwrapped ui message
85 hgext/convert/cvsps.py:0:
76 hgext/convert/cvsps.py:0:
86 > except:
77 > except:
87 warning: naked except clause
78 warning: naked except clause
88 hgext/convert/cvsps.py:0:
79 hgext/convert/cvsps.py:0:
89 > ui.write('Branchpoints: %s \n' % ', '.join(branchpoints))
80 > ui.write('Branchpoints: %s \n' % ', '.join(branchpoints))
90 warning: unwrapped ui message
81 warning: unwrapped ui message
91 hgext/convert/cvsps.py:0:
82 hgext/convert/cvsps.py:0:
92 > ui.write('Author: %s\n' % cs.author)
83 > ui.write('Author: %s\n' % cs.author)
93 warning: unwrapped ui message
84 warning: unwrapped ui message
94 hgext/convert/cvsps.py:0:
85 hgext/convert/cvsps.py:0:
95 > ui.write('Branch: %s\n' % (cs.branch or 'HEAD'))
86 > ui.write('Branch: %s\n' % (cs.branch or 'HEAD'))
96 warning: unwrapped ui message
87 warning: unwrapped ui message
97 hgext/convert/cvsps.py:0:
88 hgext/convert/cvsps.py:0:
98 > ui.write('Date: %s\n' % util.datestr(cs.date,
89 > ui.write('Date: %s\n' % util.datestr(cs.date,
99 warning: unwrapped ui message
90 warning: unwrapped ui message
100 hgext/convert/cvsps.py:0:
91 hgext/convert/cvsps.py:0:
101 > ui.write('Log:\n')
92 > ui.write('Log:\n')
102 warning: unwrapped ui message
93 warning: unwrapped ui message
103 hgext/convert/cvsps.py:0:
94 hgext/convert/cvsps.py:0:
104 > ui.write('Members: \n')
95 > ui.write('Members: \n')
105 warning: unwrapped ui message
96 warning: unwrapped ui message
106 hgext/convert/cvsps.py:0:
97 hgext/convert/cvsps.py:0:
107 > ui.write('PatchSet %d \n' % cs.id)
98 > ui.write('PatchSet %d \n' % cs.id)
108 warning: unwrapped ui message
99 warning: unwrapped ui message
109 hgext/convert/cvsps.py:0:
100 hgext/convert/cvsps.py:0:
110 > ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags) > 1],
101 > ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags) > 1],
111 warning: unwrapped ui message
102 warning: unwrapped ui message
112 hgext/convert/git.py:0:
103 hgext/convert/git.py:0:
113 > except:
104 > except:
114 warning: naked except clause
105 warning: naked except clause
115 hgext/convert/git.py:0:
106 hgext/convert/git.py:0:
116 > fh = self.gitopen('git diff-tree --name-only --root -r %s "%s^%s" --'
107 > fh = self.gitopen('git diff-tree --name-only --root -r %s "%s^%s" --'
117 warning: line over 80 characters
108 warning: line over 80 characters
118 hgext/convert/hg.py:0:
109 hgext/convert/hg.py:0:
119 > # detect missing revlogs and abort on errors or populate self.ignored
110 > # detect missing revlogs and abort on errors or populate self.ignored
120 warning: line over 80 characters
111 warning: line over 80 characters
121 hgext/convert/hg.py:0:
112 hgext/convert/hg.py:0:
122 > except:
113 > except:
123 warning: naked except clause
114 warning: naked except clause
124 warning: naked except clause
115 warning: naked except clause
125 hgext/convert/hg.py:0:
116 hgext/convert/hg.py:0:
126 > except:
117 > except:
127 warning: naked except clause
118 warning: naked except clause
128 hgext/convert/monotone.py:0:
119 hgext/convert/monotone.py:0:
129 > except:
120 > except:
130 warning: naked except clause
121 warning: naked except clause
131 hgext/convert/monotone.py:0:
122 hgext/convert/monotone.py:0:
132 > except:
123 > except:
133 warning: naked except clause
124 warning: naked except clause
134 hgext/convert/subversion.py:0:
125 hgext/convert/subversion.py:0:
135 > raise util.Abort(_('svn: branch has no revision %s') % to_revnum)
126 > raise util.Abort(_('svn: branch has no revision %s') % to_revnum)
136 warning: line over 80 characters
127 warning: line over 80 characters
137 hgext/convert/subversion.py:0:
128 hgext/convert/subversion.py:0:
138 > except:
129 > except:
139 warning: naked except clause
130 warning: naked except clause
140 hgext/convert/subversion.py:0:
131 hgext/convert/subversion.py:0:
141 > args = [self.baseurl, relpaths, start, end, limit, discover_changed_paths,
132 > args = [self.baseurl, relpaths, start, end, limit, discover_changed_paths,
142 warning: line over 80 characters
133 warning: line over 80 characters
143 hgext/convert/subversion.py:0:
134 hgext/convert/subversion.py:0:
144 > self.trunkname = self.ui.config('convert', 'svn.trunk', 'trunk').strip('/')
135 > self.trunkname = self.ui.config('convert', 'svn.trunk', 'trunk').strip('/')
145 warning: line over 80 characters
136 warning: line over 80 characters
146 hgext/convert/subversion.py:0:
137 hgext/convert/subversion.py:0:
147 > except:
138 > except:
148 warning: naked except clause
139 warning: naked except clause
149 hgext/convert/subversion.py:0:
140 hgext/convert/subversion.py:0:
150 > def get_log_child(fp, url, paths, start, end, limit=0, discover_changed_paths=True,
141 > def get_log_child(fp, url, paths, start, end, limit=0, discover_changed_paths=True,
151 warning: line over 80 characters
142 warning: line over 80 characters
152 hgext/eol.py:0:
143 hgext/eol.py:0:
153 > if ui.configbool('eol', 'fix-trailing-newline', False) and s and s[-1] != '\n':
144 > if ui.configbool('eol', 'fix-trailing-newline', False) and s and s[-1] != '\n':
154 warning: line over 80 characters
145 warning: line over 80 characters
155 warning: line over 80 characters
146 warning: line over 80 characters
156 hgext/gpg.py:0:
147 hgext/gpg.py:0:
157 > except:
148 > except:
158 warning: naked except clause
149 warning: naked except clause
159 hgext/hgcia.py:0:
150 hgext/hgcia.py:0:
160 > except:
151 > except:
161 warning: naked except clause
152 warning: naked except clause
162 hgext/hgk.py:0:
153 hgext/hgk.py:0:
163 > ui.write("%s%s\n" % (prefix, description.replace('\n', nlprefix).strip()))
154 > ui.write("%s%s\n" % (prefix, description.replace('\n', nlprefix).strip()))
164 warning: line over 80 characters
155 warning: line over 80 characters
165 hgext/hgk.py:0:
156 hgext/hgk.py:0:
166 > ui.write("parent %s\n" % p)
157 > ui.write("parent %s\n" % p)
167 warning: unwrapped ui message
158 warning: unwrapped ui message
168 hgext/hgk.py:0:
159 hgext/hgk.py:0:
169 > ui.write('k=%s\nv=%s\n' % (name, value))
160 > ui.write('k=%s\nv=%s\n' % (name, value))
170 warning: unwrapped ui message
161 warning: unwrapped ui message
171 hgext/hgk.py:0:
162 hgext/hgk.py:0:
172 > ui.write("author %s %s %s\n" % (ctx.user(), int(date[0]), date[1]))
163 > ui.write("author %s %s %s\n" % (ctx.user(), int(date[0]), date[1]))
173 warning: unwrapped ui message
164 warning: unwrapped ui message
174 hgext/hgk.py:0:
165 hgext/hgk.py:0:
175 > ui.write("branch %s\n\n" % ctx.branch())
166 > ui.write("branch %s\n\n" % ctx.branch())
176 warning: unwrapped ui message
167 warning: unwrapped ui message
177 hgext/hgk.py:0:
168 hgext/hgk.py:0:
178 > ui.write("committer %s %s %s\n" % (committer, int(date[0]), date[1]))
169 > ui.write("committer %s %s %s\n" % (committer, int(date[0]), date[1]))
179 warning: unwrapped ui message
170 warning: unwrapped ui message
180 hgext/hgk.py:0:
171 hgext/hgk.py:0:
181 > ui.write("revision %d\n" % ctx.rev())
172 > ui.write("revision %d\n" % ctx.rev())
182 warning: unwrapped ui message
173 warning: unwrapped ui message
183 hgext/hgk.py:0:
174 hgext/hgk.py:0:
184 > ui.write("tree %s\n" % short(ctx.changeset()[0])) # use ctx.node() instead ??
175 > ui.write("tree %s\n" % short(ctx.changeset()[0])) # use ctx.node() instead ??
185 warning: line over 80 characters
176 warning: line over 80 characters
186 warning: unwrapped ui message
177 warning: unwrapped ui message
187 hgext/highlight/__init__.py:0:
178 hgext/highlight/__init__.py:0:
188 > extensions.wrapfunction(webcommands, '_filerevision', filerevision_highlight)
179 > extensions.wrapfunction(webcommands, '_filerevision', filerevision_highlight)
189 warning: line over 80 characters
180 warning: line over 80 characters
190 hgext/highlight/__init__.py:0:
181 hgext/highlight/__init__.py:0:
191 > return ['/* pygments_style = %s */\n\n' % pg_style, fmter.get_style_defs('')]
182 > return ['/* pygments_style = %s */\n\n' % pg_style, fmter.get_style_defs('')]
192 warning: line over 80 characters
183 warning: line over 80 characters
193 hgext/inotify/__init__.py:0:
184 hgext/inotify/__init__.py:0:
194 > if self._inotifyon and not ignored and not subrepos and not self._dirty:
185 > if self._inotifyon and not ignored and not subrepos and not self._dirty:
195 warning: line over 80 characters
186 warning: line over 80 characters
196 hgext/inotify/server.py:0:
187 hgext/inotify/server.py:0:
197 > except:
188 > except:
198 warning: naked except clause
189 warning: naked except clause
199 hgext/inotify/server.py:0:
190 hgext/inotify/server.py:0:
200 > except:
191 > except:
201 warning: naked except clause
192 warning: naked except clause
202 hgext/keyword.py:0:
193 hgext/keyword.py:0:
203 > ui.note("hg ci -m '%s'\n" % msg)
194 > ui.note("hg ci -m '%s'\n" % msg)
204 warning: unwrapped ui message
195 warning: unwrapped ui message
205 hgext/mq.py:0:
196 hgext/mq.py:0:
206 > raise util.Abort(_("cannot push --exact with applied patches"))
197 > raise util.Abort(_("cannot push --exact with applied patches"))
207 warning: line over 80 characters
198 warning: line over 80 characters
208 hgext/mq.py:0:
199 hgext/mq.py:0:
209 > raise util.Abort(_("cannot use --exact and --move together"))
200 > raise util.Abort(_("cannot use --exact and --move together"))
210 warning: line over 80 characters
201 warning: line over 80 characters
211 hgext/mq.py:0:
202 hgext/mq.py:0:
212 > self.ui.warn(_('Tag %s overrides mq patch of the same name\n')
203 > self.ui.warn(_('Tag %s overrides mq patch of the same name\n')
213 warning: line over 80 characters
204 warning: line over 80 characters
214 hgext/mq.py:0:
205 hgext/mq.py:0:
215 > except:
206 > except:
216 warning: naked except clause
207 warning: naked except clause
217 warning: naked except clause
208 warning: naked except clause
218 hgext/mq.py:0:
209 hgext/mq.py:0:
219 > except:
210 > except:
220 warning: naked except clause
211 warning: naked except clause
221 warning: naked except clause
212 warning: naked except clause
222 warning: naked except clause
213 warning: naked except clause
223 warning: naked except clause
214 warning: naked except clause
224 hgext/mq.py:0:
215 hgext/mq.py:0:
225 > raise util.Abort(_('cannot mix -l/--list with options or arguments'))
216 > raise util.Abort(_('cannot mix -l/--list with options or arguments'))
226 warning: line over 80 characters
217 warning: line over 80 characters
227 hgext/mq.py:0:
218 hgext/mq.py:0:
228 > raise util.Abort(_('qfold cannot fold already applied patch %s') % p)
219 > raise util.Abort(_('qfold cannot fold already applied patch %s') % p)
229 warning: line over 80 characters
220 warning: line over 80 characters
230 hgext/mq.py:0:
221 hgext/mq.py:0:
231 > ('', 'move', None, _('reorder patch series and apply only the patch'))],
222 > ('', 'move', None, _('reorder patch series and apply only the patch'))],
232 warning: line over 80 characters
223 warning: line over 80 characters
233 hgext/mq.py:0:
224 hgext/mq.py:0:
234 > ('U', 'noupdate', None, _('do not update the new working directories')),
225 > ('U', 'noupdate', None, _('do not update the new working directories')),
235 warning: line over 80 characters
226 warning: line over 80 characters
236 hgext/mq.py:0:
227 hgext/mq.py:0:
237 > ('e', 'exact', None, _('apply the target patch to its recorded parent')),
228 > ('e', 'exact', None, _('apply the target patch to its recorded parent')),
238 warning: line over 80 characters
229 warning: line over 80 characters
239 hgext/mq.py:0:
230 hgext/mq.py:0:
240 > except:
231 > except:
241 warning: naked except clause
232 warning: naked except clause
242 hgext/mq.py:0:
233 hgext/mq.py:0:
243 > ui.write("mq: %s\n" % ', '.join(m))
234 > ui.write("mq: %s\n" % ', '.join(m))
244 warning: unwrapped ui message
235 warning: unwrapped ui message
245 hgext/mq.py:0:
236 hgext/mq.py:0:
246 > repo.mq.qseries(repo, missing=opts.get('missing'), summary=opts.get('summary'))
237 > repo.mq.qseries(repo, missing=opts.get('missing'), summary=opts.get('summary'))
247 warning: line over 80 characters
238 warning: line over 80 characters
248 hgext/notify.py:0:
239 hgext/notify.py:0:
249 > ui.note(_('notify: suppressing notification for merge %d:%s\n') %
240 > ui.note(_('notify: suppressing notification for merge %d:%s\n') %
250 warning: line over 80 characters
241 warning: line over 80 characters
251 hgext/patchbomb.py:0:
242 hgext/patchbomb.py:0:
252 > binnode, seqno=idx, total=total)
243 > binnode, seqno=idx, total=total)
253 warning: line over 80 characters
244 warning: line over 80 characters
254 hgext/patchbomb.py:0:
245 hgext/patchbomb.py:0:
255 > except:
246 > except:
256 warning: naked except clause
247 warning: naked except clause
257 hgext/patchbomb.py:0:
248 hgext/patchbomb.py:0:
258 > ui.write('Subject: %s\n' % subj)
249 > ui.write('Subject: %s\n' % subj)
259 warning: unwrapped ui message
250 warning: unwrapped ui message
260 hgext/patchbomb.py:0:
251 hgext/patchbomb.py:0:
261 > p = mail.mimetextpatch('\n'.join(patchlines), 'x-patch', opts.get('test'))
252 > p = mail.mimetextpatch('\n'.join(patchlines), 'x-patch', opts.get('test'))
262 warning: line over 80 characters
253 warning: line over 80 characters
263 hgext/patchbomb.py:0:
254 hgext/patchbomb.py:0:
264 > ui.write('From: %s\n' % sender)
255 > ui.write('From: %s\n' % sender)
265 warning: unwrapped ui message
256 warning: unwrapped ui message
266 hgext/record.py:0:
257 hgext/record.py:0:
267 > ignoreblanklines=opts.get('ignore_blank_lines'))
258 > ignoreblanklines=opts.get('ignore_blank_lines'))
268 warning: line over 80 characters
259 warning: line over 80 characters
269 hgext/record.py:0:
260 hgext/record.py:0:
270 > ignorewsamount=opts.get('ignore_space_change'),
261 > ignorewsamount=opts.get('ignore_space_change'),
271 warning: line over 80 characters
262 warning: line over 80 characters
272 hgext/zeroconf/__init__.py:0:
263 hgext/zeroconf/__init__.py:0:
273 > publish(name, desc, path, util.getport(u.config("web", "port", 8000)))
264 > publish(name, desc, path, util.getport(u.config("web", "port", 8000)))
274 warning: line over 80 characters
265 warning: line over 80 characters
275 hgext/zeroconf/__init__.py:0:
266 hgext/zeroconf/__init__.py:0:
276 > except:
267 > except:
277 warning: naked except clause
268 warning: naked except clause
278 warning: naked except clause
269 warning: naked except clause
279 mercurial/bundlerepo.py:0:
270 mercurial/bundlerepo.py:0:
280 > is a bundlerepo for the obtained bundle when the original "other" is remote.
271 > is a bundlerepo for the obtained bundle when the original "other" is remote.
281 warning: line over 80 characters
272 warning: line over 80 characters
282 mercurial/bundlerepo.py:0:
273 mercurial/bundlerepo.py:0:
283 > "local" is a local repo from which to obtain the actual incoming changesets; it
274 > "local" is a local repo from which to obtain the actual incoming changesets; it
284 warning: line over 80 characters
275 warning: line over 80 characters
285 mercurial/bundlerepo.py:0:
276 mercurial/bundlerepo.py:0:
286 > tmp = discovery.findcommonincoming(repo, other, heads=onlyheads, force=force)
277 > tmp = discovery.findcommonincoming(repo, other, heads=onlyheads, force=force)
287 warning: line over 80 characters
278 warning: line over 80 characters
288 mercurial/commands.py:0:
279 mercurial/commands.py:0:
289 > " size " + basehdr + " link p1 p2 nodeid\n")
280 > " size " + basehdr + " link p1 p2 nodeid\n")
290 warning: line over 80 characters
281 warning: line over 80 characters
291 mercurial/commands.py:0:
282 mercurial/commands.py:0:
292 > raise util.Abort('cannot use localheads with old style discovery')
283 > raise util.Abort('cannot use localheads with old style discovery')
293 warning: line over 80 characters
284 warning: line over 80 characters
294 mercurial/commands.py:0:
285 mercurial/commands.py:0:
295 > ui.note('branch %s\n' % data)
286 > ui.note('branch %s\n' % data)
296 warning: unwrapped ui message
287 warning: unwrapped ui message
297 mercurial/commands.py:0:
288 mercurial/commands.py:0:
298 > ui.note('node %s\n' % str(data))
289 > ui.note('node %s\n' % str(data))
299 warning: unwrapped ui message
290 warning: unwrapped ui message
300 mercurial/commands.py:0:
291 mercurial/commands.py:0:
301 > ui.note('tag %s\n' % name)
292 > ui.note('tag %s\n' % name)
302 warning: unwrapped ui message
293 warning: unwrapped ui message
303 mercurial/commands.py:0:
294 mercurial/commands.py:0:
304 > ui.write("unpruned common: %s\n" % " ".join([short(n)
295 > ui.write("unpruned common: %s\n" % " ".join([short(n)
305 warning: unwrapped ui message
296 warning: unwrapped ui message
306 mercurial/commands.py:0:
297 mercurial/commands.py:0:
307 > yield 'n', (r, list(set(p for p in cl.parentrevs(r) if p != -1)))
298 > yield 'n', (r, list(set(p for p in cl.parentrevs(r) if p != -1)))
308 warning: line over 80 characters
299 warning: line over 80 characters
309 mercurial/commands.py:0:
300 mercurial/commands.py:0:
310 > yield 'n', (r, list(set(p for p in rlog.parentrevs(r) if p != -1)))
301 > yield 'n', (r, list(set(p for p in rlog.parentrevs(r) if p != -1)))
311 warning: line over 80 characters
302 warning: line over 80 characters
312 mercurial/commands.py:0:
303 mercurial/commands.py:0:
313 > except:
304 > except:
314 warning: naked except clause
305 warning: naked except clause
315 mercurial/commands.py:0:
306 mercurial/commands.py:0:
316 > ui.status(_("(run 'hg heads .' to see heads, 'hg merge' to merge)\n"))
307 > ui.status(_("(run 'hg heads .' to see heads, 'hg merge' to merge)\n"))
317 warning: line over 80 characters
308 warning: line over 80 characters
318 mercurial/commands.py:0:
309 mercurial/commands.py:0:
319 > ui.write("format: id, p1, p2, cset, delta base, len(delta)\n")
310 > ui.write("format: id, p1, p2, cset, delta base, len(delta)\n")
320 warning: unwrapped ui message
311 warning: unwrapped ui message
321 mercurial/commands.py:0:
312 mercurial/commands.py:0:
322 > ui.write("local is subset\n")
313 > ui.write("local is subset\n")
323 warning: unwrapped ui message
314 warning: unwrapped ui message
324 mercurial/commands.py:0:
315 mercurial/commands.py:0:
325 > ui.write("remote is subset\n")
316 > ui.write("remote is subset\n")
326 warning: unwrapped ui message
317 warning: unwrapped ui message
327 mercurial/commands.py:0:
318 mercurial/commands.py:0:
328 > ui.write(' other : ' + fmt2 % pcfmt(numoprev, numprev))
319 > ui.write(' other : ' + fmt2 % pcfmt(numoprev, numprev))
329 warning: line over 80 characters
320 warning: line over 80 characters
330 mercurial/commands.py:0:
321 mercurial/commands.py:0:
331 > ui.write(' where prev = p1 : ' + fmt2 % pcfmt(nump1prev, numprev))
322 > ui.write(' where prev = p1 : ' + fmt2 % pcfmt(nump1prev, numprev))
332 warning: line over 80 characters
323 warning: line over 80 characters
333 mercurial/commands.py:0:
324 mercurial/commands.py:0:
334 > ui.write(' where prev = p2 : ' + fmt2 % pcfmt(nump2prev, numprev))
325 > ui.write(' where prev = p2 : ' + fmt2 % pcfmt(nump2prev, numprev))
335 warning: line over 80 characters
326 warning: line over 80 characters
336 mercurial/commands.py:0:
327 mercurial/commands.py:0:
337 > ui.write('deltas against other : ' + fmt % pcfmt(numother, numdeltas))
328 > ui.write('deltas against other : ' + fmt % pcfmt(numother, numdeltas))
338 warning: line over 80 characters
329 warning: line over 80 characters
339 warning: unwrapped ui message
330 warning: unwrapped ui message
340 mercurial/commands.py:0:
331 mercurial/commands.py:0:
341 > ui.write('deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas))
332 > ui.write('deltas against p1 : ' + fmt % pcfmt(nump1, numdeltas))
342 warning: unwrapped ui message
333 warning: unwrapped ui message
343 mercurial/commands.py:0:
334 mercurial/commands.py:0:
344 > ui.write('deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas))
335 > ui.write('deltas against p2 : ' + fmt % pcfmt(nump2, numdeltas))
345 warning: unwrapped ui message
336 warning: unwrapped ui message
346 mercurial/commands.py:0:
337 mercurial/commands.py:0:
347 > cmd, ext, mod = extensions.disabledcmd(ui, name, ui.config('ui', 'strict'))
338 > cmd, ext, mod = extensions.disabledcmd(ui, name, ui.config('ui', 'strict'))
348 warning: line over 80 characters
339 warning: line over 80 characters
349 mercurial/commands.py:0:
340 mercurial/commands.py:0:
350 > except:
341 > except:
351 warning: naked except clause
342 warning: naked except clause
352 mercurial/commands.py:0:
343 mercurial/commands.py:0:
353 > revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
344 > revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
354 warning: line over 80 characters
345 warning: line over 80 characters
355 mercurial/commands.py:0:
346 mercurial/commands.py:0:
356 > ui.write("common heads: %s\n" % " ".join([short(n) for n in common]))
347 > ui.write("common heads: %s\n" % " ".join([short(n) for n in common]))
357 warning: unwrapped ui message
348 warning: unwrapped ui message
358 mercurial/commands.py:0:
349 mercurial/commands.py:0:
359 > ui.write("match: %s\n" % m(d[0]))
350 > ui.write("match: %s\n" % m(d[0]))
360 warning: unwrapped ui message
351 warning: unwrapped ui message
361 mercurial/commands.py:0:
352 mercurial/commands.py:0:
362 > ui.write('deltas against prev : ' + fmt % pcfmt(numprev, numdeltas))
353 > ui.write('deltas against prev : ' + fmt % pcfmt(numprev, numdeltas))
363 warning: unwrapped ui message
354 warning: unwrapped ui message
364 mercurial/commands.py:0:
355 mercurial/commands.py:0:
365 > ui.write('path %s\n' % k)
356 > ui.write('path %s\n' % k)
366 warning: unwrapped ui message
357 warning: unwrapped ui message
367 mercurial/commands.py:0:
358 mercurial/commands.py:0:
368 > ui.write('uncompressed data size (min/max/avg) : %d / %d / %d\n'
359 > ui.write('uncompressed data size (min/max/avg) : %d / %d / %d\n'
369 warning: unwrapped ui message
360 warning: unwrapped ui message
370 mercurial/commands.py:0:
361 mercurial/commands.py:0:
371 > Every ID must be a full-length hex node id string. Returns a list of 0s and 1s
362 > Every ID must be a full-length hex node id string. Returns a list of 0s and 1s
372 warning: line over 80 characters
363 warning: line over 80 characters
373 mercurial/commands.py:0:
364 mercurial/commands.py:0:
374 > remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl), opts.get('branch'))
365 > remoteurl, branches = hg.parseurl(ui.expandpath(remoteurl), opts.get('branch'))
375 warning: line over 80 characters
366 warning: line over 80 characters
376 mercurial/commands.py:0:
367 mercurial/commands.py:0:
377 > ui.write("digraph G {\n")
368 > ui.write("digraph G {\n")
378 warning: unwrapped ui message
369 warning: unwrapped ui message
379 mercurial/commands.py:0:
370 mercurial/commands.py:0:
380 > ui.write("internal: %s %s\n" % d)
371 > ui.write("internal: %s %s\n" % d)
381 warning: unwrapped ui message
372 warning: unwrapped ui message
382 mercurial/commands.py:0:
373 mercurial/commands.py:0:
383 > ui.write("standard: %s\n" % util.datestr(d))
374 > ui.write("standard: %s\n" % util.datestr(d))
384 warning: unwrapped ui message
375 warning: unwrapped ui message
385 mercurial/commands.py:0:
376 mercurial/commands.py:0:
386 > ui.write('avg chain length : ' + fmt % avgchainlen)
377 > ui.write('avg chain length : ' + fmt % avgchainlen)
387 warning: unwrapped ui message
378 warning: unwrapped ui message
388 mercurial/commands.py:0:
379 mercurial/commands.py:0:
389 > ui.write('case-sensitive: %s\n' % (util.checkcase('.debugfsinfo')
380 > ui.write('case-sensitive: %s\n' % (util.checkcase('.debugfsinfo')
390 warning: unwrapped ui message
381 warning: unwrapped ui message
391 mercurial/commands.py:0:
382 mercurial/commands.py:0:
392 > ui.write('compression ratio : ' + fmt % compratio)
383 > ui.write('compression ratio : ' + fmt % compratio)
393 warning: unwrapped ui message
384 warning: unwrapped ui message
394 mercurial/commands.py:0:
385 mercurial/commands.py:0:
395 > ui.write('delta size (min/max/avg) : %d / %d / %d\n'
386 > ui.write('delta size (min/max/avg) : %d / %d / %d\n'
396 warning: unwrapped ui message
387 warning: unwrapped ui message
397 mercurial/commands.py:0:
388 mercurial/commands.py:0:
398 > ui.write('exec: %s\n' % (util.checkexec(path) and 'yes' or 'no'))
389 > ui.write('exec: %s\n' % (util.checkexec(path) and 'yes' or 'no'))
399 warning: unwrapped ui message
390 warning: unwrapped ui message
400 mercurial/commands.py:0:
391 mercurial/commands.py:0:
401 > ui.write('flags : %s\n' % ', '.join(flags))
392 > ui.write('flags : %s\n' % ', '.join(flags))
402 warning: unwrapped ui message
393 warning: unwrapped ui message
403 mercurial/commands.py:0:
394 mercurial/commands.py:0:
404 > ui.write('format : %d\n' % format)
395 > ui.write('format : %d\n' % format)
405 warning: unwrapped ui message
396 warning: unwrapped ui message
406 mercurial/commands.py:0:
397 mercurial/commands.py:0:
407 > ui.write('full revision size (min/max/avg) : %d / %d / %d\n'
398 > ui.write('full revision size (min/max/avg) : %d / %d / %d\n'
408 warning: unwrapped ui message
399 warning: unwrapped ui message
409 mercurial/commands.py:0:
400 mercurial/commands.py:0:
410 > ui.write('revision size : ' + fmt2 % totalsize)
401 > ui.write('revision size : ' + fmt2 % totalsize)
411 warning: unwrapped ui message
402 warning: unwrapped ui message
412 mercurial/commands.py:0:
403 mercurial/commands.py:0:
413 > ui.write('revisions : ' + fmt2 % numrevs)
404 > ui.write('revisions : ' + fmt2 % numrevs)
414 warning: unwrapped ui message
405 warning: unwrapped ui message
415 warning: unwrapped ui message
406 warning: unwrapped ui message
416 mercurial/commands.py:0:
407 mercurial/commands.py:0:
417 > ui.write('symlink: %s\n' % (util.checklink(path) and 'yes' or 'no'))
408 > ui.write('symlink: %s\n' % (util.checklink(path) and 'yes' or 'no'))
418 warning: unwrapped ui message
409 warning: unwrapped ui message
419 mercurial/commandserver.py:0:
410 mercurial/commandserver.py:0:
420 > # the ui here is really the repo ui so take its baseui so we don't end up
411 > # the ui here is really the repo ui so take its baseui so we don't end up
421 warning: line over 80 characters
412 warning: line over 80 characters
422 mercurial/context.py:0:
413 mercurial/context.py:0:
423 > return self._manifestdelta[path], self._manifestdelta.flags(path)
414 > return self._manifestdelta[path], self._manifestdelta.flags(path)
424 warning: line over 80 characters
415 warning: line over 80 characters
425 mercurial/dagparser.py:0:
416 mercurial/dagparser.py:0:
426 > raise util.Abort(_("invalid character in dag description: %s...") % s)
417 > raise util.Abort(_("invalid character in dag description: %s...") % s)
427 warning: line over 80 characters
418 warning: line over 80 characters
428 mercurial/dagparser.py:0:
419 mercurial/dagparser.py:0:
429 > >>> dagtext([('n', (0, [-1])), ('C', 'my command line'), ('n', (1, [0]))])
420 > >>> dagtext([('n', (0, [-1])), ('C', 'my command line'), ('n', (1, [0]))])
430 warning: line over 80 characters
421 warning: line over 80 characters
431 mercurial/dirstate.py:0:
422 mercurial/dirstate.py:0:
432 > if not st is None and not getkind(st.st_mode) in (regkind, lnkkind):
423 > if not st is None and not getkind(st.st_mode) in (regkind, lnkkind):
433 warning: line over 80 characters
424 warning: line over 80 characters
434 mercurial/discovery.py:0:
425 mercurial/discovery.py:0:
435 > If onlyheads is given, only nodes ancestral to nodes in onlyheads (inclusive)
426 > If onlyheads is given, only nodes ancestral to nodes in onlyheads (inclusive)
436 warning: line over 80 characters
427 warning: line over 80 characters
437 mercurial/discovery.py:0:
428 mercurial/discovery.py:0:
438 > def findcommonoutgoing(repo, other, onlyheads=None, force=False, commoninc=None):
429 > def findcommonoutgoing(repo, other, onlyheads=None, force=False, commoninc=None):
439 warning: line over 80 characters
430 warning: line over 80 characters
440 mercurial/dispatch.py:0:
431 mercurial/dispatch.py:0:
441 > " (.hg not found)") % os.getcwd())
432 > " (.hg not found)") % os.getcwd())
442 warning: line over 80 characters
433 warning: line over 80 characters
443 mercurial/dispatch.py:0:
434 mercurial/dispatch.py:0:
444 > aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict"))
435 > aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict"))
445 warning: line over 80 characters
436 warning: line over 80 characters
446 mercurial/dispatch.py:0:
437 mercurial/dispatch.py:0:
447 > except:
438 > except:
448 warning: naked except clause
439 warning: naked except clause
449 mercurial/dispatch.py:0:
440 mercurial/dispatch.py:0:
450 > return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {})
441 > return lambda: runcommand(lui, None, cmd, args[:1], ui, options, d, [], {})
451 warning: line over 80 characters
442 warning: line over 80 characters
452 mercurial/dispatch.py:0:
443 mercurial/dispatch.py:0:
453 > def __init__(self, args, ui=None, repo=None, fin=None, fout=None, ferr=None):
444 > def __init__(self, args, ui=None, repo=None, fin=None, fout=None, ferr=None):
454 warning: line over 80 characters
445 warning: line over 80 characters
455 mercurial/dispatch.py:0:
446 mercurial/dispatch.py:0:
456 > except:
447 > except:
457 warning: naked except clause
448 warning: naked except clause
458 mercurial/hg.py:0:
449 mercurial/hg.py:0:
459 > except:
450 > except:
460 warning: naked except clause
451 warning: naked except clause
461 mercurial/hgweb/hgweb_mod.py:0:
452 mercurial/hgweb/hgweb_mod.py:0:
462 > self.maxshortchanges = int(self.config("web", "maxshortchanges", 60))
453 > self.maxshortchanges = int(self.config("web", "maxshortchanges", 60))
463 warning: line over 80 characters
454 warning: line over 80 characters
464 mercurial/keepalive.py:0:
455 mercurial/keepalive.py:0:
465 > except:
456 > except:
466 warning: naked except clause
457 warning: naked except clause
467 mercurial/keepalive.py:0:
458 mercurial/keepalive.py:0:
468 > except:
459 > except:
469 warning: naked except clause
460 warning: naked except clause
470 mercurial/localrepo.py:0:
461 mercurial/localrepo.py:0:
471 > # we return an integer indicating remote head count change
462 > # we return an integer indicating remote head count change
472 warning: line over 80 characters
463 warning: line over 80 characters
473 mercurial/localrepo.py:0:
464 mercurial/localrepo.py:0:
474 > raise util.Abort(_("empty or missing revlog for %s") % fname)
465 > raise util.Abort(_("empty or missing revlog for %s") % fname)
475 warning: line over 80 characters
466 warning: line over 80 characters
476 warning: line over 80 characters
467 warning: line over 80 characters
477 mercurial/localrepo.py:0:
468 mercurial/localrepo.py:0:
478 > if self._tagscache.tagtypes and name in self._tagscache.tagtypes:
469 > if self._tagscache.tagtypes and name in self._tagscache.tagtypes:
479 warning: line over 80 characters
470 warning: line over 80 characters
480 mercurial/localrepo.py:0:
471 mercurial/localrepo.py:0:
481 > self.hook("precommit", throw=True, parent1=hookp1, parent2=hookp2)
472 > self.hook("precommit", throw=True, parent1=hookp1, parent2=hookp2)
482 warning: line over 80 characters
473 warning: line over 80 characters
483 mercurial/localrepo.py:0:
474 mercurial/localrepo.py:0:
484 > # new requirements = old non-format requirements + new format-related
475 > # new requirements = old non-format requirements + new format-related
485 warning: line over 80 characters
476 warning: line over 80 characters
486 mercurial/localrepo.py:0:
477 mercurial/localrepo.py:0:
487 > except:
478 > except:
488 warning: naked except clause
479 warning: naked except clause
489 mercurial/localrepo.py:0:
480 mercurial/localrepo.py:0:
490 > """return status of files between two nodes or node and working directory
481 > """return status of files between two nodes or node and working directory
491 warning: line over 80 characters
482 warning: line over 80 characters
492 mercurial/localrepo.py:0:
483 mercurial/localrepo.py:0:
493 > '''Returns a tagscache object that contains various tags related caches.'''
484 > '''Returns a tagscache object that contains various tags related caches.'''
494 warning: line over 80 characters
485 warning: line over 80 characters
495 mercurial/manifest.py:0:
486 mercurial/manifest.py:0:
496 > return "".join(struct.pack(">lll", start, end, len(content)) + content
487 > return "".join(struct.pack(">lll", start, end, len(content)) + content
497 warning: line over 80 characters
488 warning: line over 80 characters
498 mercurial/merge.py:0:
489 mercurial/merge.py:0:
499 > subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), overwrite)
490 > subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), overwrite)
500 warning: line over 80 characters
491 warning: line over 80 characters
501 mercurial/patch.py:0:
492 mercurial/patch.py:0:
502 > modified, added, removed, copy, getfilectx, opts, losedata, prefix)
493 > modified, added, removed, copy, getfilectx, opts, losedata, prefix)
503 warning: line over 80 characters
494 warning: line over 80 characters
504 mercurial/patch.py:0:
495 mercurial/patch.py:0:
505 > diffhelpers.addlines(lr, self.hunk, self.lena, self.lenb, self.a, self.b)
496 > diffhelpers.addlines(lr, self.hunk, self.lena, self.lenb, self.a, self.b)
506 warning: line over 80 characters
497 warning: line over 80 characters
507 mercurial/patch.py:0:
498 mercurial/patch.py:0:
508 > output.append(_(' %d files changed, %d insertions(+), %d deletions(-)\n')
499 > output.append(_(' %d files changed, %d insertions(+), %d deletions(-)\n')
509 warning: line over 80 characters
500 warning: line over 80 characters
510 mercurial/patch.py:0:
501 mercurial/patch.py:0:
511 > except:
502 > except:
512 warning: naked except clause
503 warning: naked except clause
513 mercurial/pure/base85.py:0:
504 mercurial/pure/base85.py:0:
514 > raise OverflowError('Base85 overflow in hunk starting at byte %d' % i)
505 > raise OverflowError('Base85 overflow in hunk starting at byte %d' % i)
515 warning: line over 80 characters
506 warning: line over 80 characters
516 mercurial/pure/mpatch.py:0:
507 mercurial/pure/mpatch.py:0:
517 > frags.extend(reversed(new)) # what was left at the end
508 > frags.extend(reversed(new)) # what was left at the end
518 warning: line over 80 characters
509 warning: line over 80 characters
519 mercurial/repair.py:0:
510 mercurial/repair.py:0:
520 > except:
511 > except:
521 warning: naked except clause
512 warning: naked except clause
522 mercurial/repair.py:0:
513 mercurial/repair.py:0:
523 > except:
514 > except:
524 warning: naked except clause
515 warning: naked except clause
525 mercurial/revset.py:0:
516 mercurial/revset.py:0:
526 > elif c.isalnum() or c in '._' or ord(c) > 127: # gather up a symbol/keyword
517 > elif c.isalnum() or c in '._' or ord(c) > 127: # gather up a symbol/keyword
527 warning: line over 80 characters
518 warning: line over 80 characters
528 mercurial/revset.py:0:
519 mercurial/revset.py:0:
529 > Changesets that are the Nth ancestor (first parents only) of a changeset in set.
520 > Changesets that are the Nth ancestor (first parents only) of a changeset in set.
530 warning: line over 80 characters
521 warning: line over 80 characters
531 mercurial/scmutil.py:0:
522 mercurial/scmutil.py:0:
532 > raise util.Abort(_("path '%s' is inside nested repo %r") %
523 > raise util.Abort(_("path '%s' is inside nested repo %r") %
533 warning: line over 80 characters
524 warning: line over 80 characters
534 mercurial/scmutil.py:0:
525 mercurial/scmutil.py:0:
535 > "requires features '%s' (upgrade Mercurial)") % "', '".join(missings))
526 > "requires features '%s' (upgrade Mercurial)") % "', '".join(missings))
536 warning: line over 80 characters
527 warning: line over 80 characters
537 mercurial/scmutil.py:0:
528 mercurial/scmutil.py:0:
538 > elif repo.dirstate[abs] != 'r' and (not good or not os.path.lexists(target)
529 > elif repo.dirstate[abs] != 'r' and (not good or not os.path.lexists(target)
539 warning: line over 80 characters
530 warning: line over 80 characters
540 mercurial/setdiscovery.py:0:
531 mercurial/setdiscovery.py:0:
541 > # treat remote heads (and maybe own heads) as a first implicit sample response
532 > # treat remote heads (and maybe own heads) as a first implicit sample response
542 warning: line over 80 characters
533 warning: line over 80 characters
543 mercurial/setdiscovery.py:0:
534 mercurial/setdiscovery.py:0:
544 > undecided = dag.nodeset() # own nodes where I don't know if remote knows them
535 > undecided = dag.nodeset() # own nodes where I don't know if remote knows them
545 warning: line over 80 characters
536 warning: line over 80 characters
546 mercurial/similar.py:0:
537 mercurial/similar.py:0:
547 > repo.ui.progress(_('searching for similar files'), i, total=len(removed))
538 > repo.ui.progress(_('searching for similar files'), i, total=len(removed))
548 warning: line over 80 characters
539 warning: line over 80 characters
549 mercurial/simplemerge.py:0:
540 mercurial/simplemerge.py:0:
550 > for zmatch, zend, amatch, aend, bmatch, bend in self.find_sync_regions():
541 > for zmatch, zend, amatch, aend, bmatch, bend in self.find_sync_regions():
551 warning: line over 80 characters
542 warning: line over 80 characters
552 mercurial/sshrepo.py:0:
543 mercurial/sshrepo.py:0:
553 > self._abort(error.RepoError(_("no suitable response from remote hg")))
544 > self._abort(error.RepoError(_("no suitable response from remote hg")))
554 warning: line over 80 characters
545 warning: line over 80 characters
555 mercurial/sshrepo.py:0:
546 mercurial/sshrepo.py:0:
556 > except:
547 > except:
557 warning: naked except clause
548 warning: naked except clause
558 mercurial/subrepo.py:0:
549 mercurial/subrepo.py:0:
559 > other, self._repo = hg.clone(self._repo._subparent.ui, {}, other,
550 > other, self._repo = hg.clone(self._repo._subparent.ui, {}, other,
560 warning: line over 80 characters
551 warning: line over 80 characters
561 mercurial/subrepo.py:0:
552 mercurial/subrepo.py:0:
562 > msg = (_(' subrepository sources for %s differ (in checked out version)\n'
553 > msg = (_(' subrepository sources for %s differ (in checked out version)\n'
563 warning: line over 80 characters
554 warning: line over 80 characters
564 mercurial/transaction.py:0:
555 mercurial/transaction.py:0:
565 > except:
556 > except:
566 warning: naked except clause
557 warning: naked except clause
567 mercurial/ui.py:0:
558 mercurial/ui.py:0:
568 > traceback.print_exception(exc[0], exc[1], exc[2], file=self.ferr)
559 > traceback.print_exception(exc[0], exc[1], exc[2], file=self.ferr)
569 warning: line over 80 characters
560 warning: line over 80 characters
570 mercurial/url.py:0:
561 mercurial/url.py:0:
571 > conn = httpsconnection(host, port, keyfile, certfile, *args, **kwargs)
562 > conn = httpsconnection(host, port, keyfile, certfile, *args, **kwargs)
572 warning: line over 80 characters
563 warning: line over 80 characters
573 mercurial/util.py:0:
564 mercurial/util.py:0:
574 > except:
565 > except:
575 warning: naked except clause
566 warning: naked except clause
576 mercurial/util.py:0:
567 mercurial/util.py:0:
577 > except:
568 > except:
578 warning: naked except clause
569 warning: naked except clause
579 mercurial/verify.py:0:
570 mercurial/verify.py:0:
580 > except:
571 > except:
581 warning: naked except clause
572 warning: naked except clause
582 mercurial/verify.py:0:
573 mercurial/verify.py:0:
583 > except:
574 > except:
584 warning: naked except clause
575 warning: naked except clause
585 mercurial/wireproto.py:0:
576 mercurial/wireproto.py:0:
586 > # Assuming the future to be filled with the result from the batched request
577 > # Assuming the future to be filled with the result from the batched request
587 warning: line over 80 characters
578 warning: line over 80 characters
588 mercurial/wireproto.py:0:
579 mercurial/wireproto.py:0:
589 > '''remote must support _submitbatch(encbatch) and _submitone(op, encargs)'''
580 > '''remote must support _submitbatch(encbatch) and _submitone(op, encargs)'''
590 warning: line over 80 characters
581 warning: line over 80 characters
591 mercurial/wireproto.py:0:
582 mercurial/wireproto.py:0:
592 > All methods invoked on instances of this class are simply queued and return a
583 > All methods invoked on instances of this class are simply queued and return a
593 warning: line over 80 characters
584 warning: line over 80 characters
594 mercurial/wireproto.py:0:
585 mercurial/wireproto.py:0:
595 > The decorator returns a function which wraps this coroutine as a plain method,
586 > The decorator returns a function which wraps this coroutine as a plain method,
596 warning: line over 80 characters
587 warning: line over 80 characters
597 setup.py:0:
588 setup.py:0:
598 > raise SystemExit("Python headers are required to build Mercurial")
589 > raise SystemExit("Python headers are required to build Mercurial")
599 warning: line over 80 characters
590 warning: line over 80 characters
600 setup.py:0:
591 setup.py:0:
601 > except:
592 > except:
602 warning: naked except clause
593 warning: naked except clause
603 setup.py:0:
594 setup.py:0:
604 > # build_py), it will not find osutil & friends, thinking that those modules are
595 > # build_py), it will not find osutil & friends, thinking that those modules are
605 warning: line over 80 characters
596 warning: line over 80 characters
606 setup.py:0:
597 setup.py:0:
607 > except:
598 > except:
608 warning: naked except clause
599 warning: naked except clause
609 warning: naked except clause
600 warning: naked except clause
610 setup.py:0:
601 setup.py:0:
611 > isironpython = platform.python_implementation().lower().find("ironpython") != -1
602 > isironpython = platform.python_implementation().lower().find("ironpython") != -1
612 warning: line over 80 characters
603 warning: line over 80 characters
613 setup.py:0:
604 setup.py:0:
614 > except:
605 > except:
615 warning: naked except clause
606 warning: naked except clause
616 warning: naked except clause
607 warning: naked except clause
617 warning: naked except clause
608 warning: naked except clause
618 tests/autodiff.py:0:
609 tests/autodiff.py:0:
619 > ui.write('data lost for: %s\n' % fn)
610 > ui.write('data lost for: %s\n' % fn)
620 warning: unwrapped ui message
611 warning: unwrapped ui message
621 tests/run-tests.py:0:
612 tests/run-tests.py:0:
622 > except:
613 > except:
623 warning: naked except clause
614 warning: naked except clause
624 tests/test-commandserver.py:0:
615 tests/test-commandserver.py:0:
625 > 'hooks.pre-identify=python:test-commandserver.hook', 'id'],
616 > 'hooks.pre-identify=python:test-commandserver.hook', 'id'],
626 warning: line over 80 characters
617 warning: line over 80 characters
627 tests/test-commandserver.py:0:
618 tests/test-commandserver.py:0:
628 > # the cached repo local hgrc contains ui.foo=bar, so showconfig should show it
619 > # the cached repo local hgrc contains ui.foo=bar, so showconfig should show it
629 warning: line over 80 characters
620 warning: line over 80 characters
630 tests/test-commandserver.py:0:
621 tests/test-commandserver.py:0:
631 > print '%c, %r' % (ch, re.sub('encoding: [a-zA-Z0-9-]+', 'encoding: ***', data))
622 > print '%c, %r' % (ch, re.sub('encoding: [a-zA-Z0-9-]+', 'encoding: ***', data))
632 warning: line over 80 characters
623 warning: line over 80 characters
633 tests/test-filecache.py:0:
624 tests/test-filecache.py:0:
634 > except:
625 > except:
635 warning: naked except clause
626 warning: naked except clause
636 tests/test-filecache.py:0:
627 tests/test-filecache.py:0:
637 > if subprocess.call(['python', '%s/hghave' % os.environ['TESTDIR'], 'cacheable']):
628 > if subprocess.call(['python', '%s/hghave' % os.environ['TESTDIR'], 'cacheable']):
638 warning: line over 80 characters
629 warning: line over 80 characters
639 tests/test-ui-color.py:0:
630 tests/test-ui-color.py:0:
640 > testui.warn('warning\n')
631 > testui.warn('warning\n')
641 warning: unwrapped ui message
632 warning: unwrapped ui message
642 tests/test-ui-color.py:0:
633 tests/test-ui-color.py:0:
643 > testui.write('buffered\n')
634 > testui.write('buffered\n')
644 warning: unwrapped ui message
635 warning: unwrapped ui message
645 tests/test-walkrepo.py:0:
636 tests/test-walkrepo.py:0:
646 > print "Found %d repositories when I should have found 2" % (len(reposet),)
637 > print "Found %d repositories when I should have found 2" % (len(reposet),)
647 warning: line over 80 characters
638 warning: line over 80 characters
648 tests/test-walkrepo.py:0:
639 tests/test-walkrepo.py:0:
649 > print "Found %d repositories when I should have found 3" % (len(reposet),)
640 > print "Found %d repositories when I should have found 3" % (len(reposet),)
650 warning: line over 80 characters
641 warning: line over 80 characters
General Comments 0
You need to be logged in to leave comments. Login now