##// END OF EJS Templates
py3: make hgext/hgk.py use absolute_import
Pulkit Goyal -
r29125:9b12517a default
parent child Browse files
Show More
@@ -1,335 +1,347 b''
1 # Minimal support for git commands on an hg repository
1 # Minimal support for git commands on an hg repository
2 #
2 #
3 # Copyright 2005, 2006 Chris Mason <mason@suse.com>
3 # Copyright 2005, 2006 Chris Mason <mason@suse.com>
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 '''browse the repository in a graphical way
8 '''browse the repository in a graphical way
9
9
10 The hgk extension allows browsing the history of a repository in a
10 The hgk extension allows browsing the history of a repository in a
11 graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not
11 graphical way. It requires Tcl/Tk version 8.4 or later. (Tcl/Tk is not
12 distributed with Mercurial.)
12 distributed with Mercurial.)
13
13
14 hgk consists of two parts: a Tcl script that does the displaying and
14 hgk consists of two parts: a Tcl script that does the displaying and
15 querying of information, and an extension to Mercurial named hgk.py,
15 querying of information, and an extension to Mercurial named hgk.py,
16 which provides hooks for hgk to get information. hgk can be found in
16 which provides hooks for hgk to get information. hgk can be found in
17 the contrib directory, and the extension is shipped in the hgext
17 the contrib directory, and the extension is shipped in the hgext
18 repository, and needs to be enabled.
18 repository, and needs to be enabled.
19
19
20 The :hg:`view` command will launch the hgk Tcl script. For this command
20 The :hg:`view` command will launch the hgk Tcl script. For this command
21 to work, hgk must be in your search path. Alternately, you can specify
21 to work, hgk must be in your search path. Alternately, you can specify
22 the path to hgk in your configuration file::
22 the path to hgk in your configuration file::
23
23
24 [hgk]
24 [hgk]
25 path = /location/of/hgk
25 path = /location/of/hgk
26
26
27 hgk can make use of the extdiff extension to visualize revisions.
27 hgk can make use of the extdiff extension to visualize revisions.
28 Assuming you had already configured extdiff vdiff command, just add::
28 Assuming you had already configured extdiff vdiff command, just add::
29
29
30 [hgk]
30 [hgk]
31 vdiff=vdiff
31 vdiff=vdiff
32
32
33 Revisions context menu will now display additional entries to fire
33 Revisions context menu will now display additional entries to fire
34 vdiff on hovered and selected revisions.
34 vdiff on hovered and selected revisions.
35 '''
35 '''
36
36
37 from __future__ import absolute_import
38
37 import os
39 import os
38 from mercurial import cmdutil, commands, patch, scmutil, obsolete
40 from mercurial import (
39 from mercurial.node import nullid, nullrev, short
41 cmdutil,
42 commands,
43 obsolete,
44 patch,
45 scmutil,
46 )
47 from mercurial.node import (
48 nullid,
49 nullrev,
50 short,
51 )
40 from mercurial.i18n import _
52 from mercurial.i18n import _
41
53
42 cmdtable = {}
54 cmdtable = {}
43 command = cmdutil.command(cmdtable)
55 command = cmdutil.command(cmdtable)
44 # Note for extension authors: ONLY specify testedwith = 'internal' for
56 # Note for extension authors: ONLY specify testedwith = 'internal' for
45 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
57 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
46 # be specifying the version(s) of Mercurial they are tested with, or
58 # be specifying the version(s) of Mercurial they are tested with, or
47 # leave the attribute unspecified.
59 # leave the attribute unspecified.
48 testedwith = 'internal'
60 testedwith = 'internal'
49
61
50 @command('debug-diff-tree',
62 @command('debug-diff-tree',
51 [('p', 'patch', None, _('generate patch')),
63 [('p', 'patch', None, _('generate patch')),
52 ('r', 'recursive', None, _('recursive')),
64 ('r', 'recursive', None, _('recursive')),
53 ('P', 'pretty', None, _('pretty')),
65 ('P', 'pretty', None, _('pretty')),
54 ('s', 'stdin', None, _('stdin')),
66 ('s', 'stdin', None, _('stdin')),
55 ('C', 'copy', None, _('detect copies')),
67 ('C', 'copy', None, _('detect copies')),
56 ('S', 'search', "", _('search'))],
68 ('S', 'search', "", _('search'))],
57 ('[OPTION]... NODE1 NODE2 [FILE]...'),
69 ('[OPTION]... NODE1 NODE2 [FILE]...'),
58 inferrepo=True)
70 inferrepo=True)
59 def difftree(ui, repo, node1=None, node2=None, *files, **opts):
71 def difftree(ui, repo, node1=None, node2=None, *files, **opts):
60 """diff trees from two commits"""
72 """diff trees from two commits"""
61 def __difftree(repo, node1, node2, files=[]):
73 def __difftree(repo, node1, node2, files=[]):
62 assert node2 is not None
74 assert node2 is not None
63 mmap = repo[node1].manifest()
75 mmap = repo[node1].manifest()
64 mmap2 = repo[node2].manifest()
76 mmap2 = repo[node2].manifest()
65 m = scmutil.match(repo[node1], files)
77 m = scmutil.match(repo[node1], files)
66 modified, added, removed = repo.status(node1, node2, m)[:3]
78 modified, added, removed = repo.status(node1, node2, m)[:3]
67 empty = short(nullid)
79 empty = short(nullid)
68
80
69 for f in modified:
81 for f in modified:
70 # TODO get file permissions
82 # TODO get file permissions
71 ui.write(":100664 100664 %s %s M\t%s\t%s\n" %
83 ui.write(":100664 100664 %s %s M\t%s\t%s\n" %
72 (short(mmap[f]), short(mmap2[f]), f, f))
84 (short(mmap[f]), short(mmap2[f]), f, f))
73 for f in added:
85 for f in added:
74 ui.write(":000000 100664 %s %s N\t%s\t%s\n" %
86 ui.write(":000000 100664 %s %s N\t%s\t%s\n" %
75 (empty, short(mmap2[f]), f, f))
87 (empty, short(mmap2[f]), f, f))
76 for f in removed:
88 for f in removed:
77 ui.write(":100664 000000 %s %s D\t%s\t%s\n" %
89 ui.write(":100664 000000 %s %s D\t%s\t%s\n" %
78 (short(mmap[f]), empty, f, f))
90 (short(mmap[f]), empty, f, f))
79 ##
91 ##
80
92
81 while True:
93 while True:
82 if opts['stdin']:
94 if opts['stdin']:
83 try:
95 try:
84 line = raw_input().split(' ')
96 line = raw_input().split(' ')
85 node1 = line[0]
97 node1 = line[0]
86 if len(line) > 1:
98 if len(line) > 1:
87 node2 = line[1]
99 node2 = line[1]
88 else:
100 else:
89 node2 = None
101 node2 = None
90 except EOFError:
102 except EOFError:
91 break
103 break
92 node1 = repo.lookup(node1)
104 node1 = repo.lookup(node1)
93 if node2:
105 if node2:
94 node2 = repo.lookup(node2)
106 node2 = repo.lookup(node2)
95 else:
107 else:
96 node2 = node1
108 node2 = node1
97 node1 = repo.changelog.parents(node1)[0]
109 node1 = repo.changelog.parents(node1)[0]
98 if opts['patch']:
110 if opts['patch']:
99 if opts['pretty']:
111 if opts['pretty']:
100 catcommit(ui, repo, node2, "")
112 catcommit(ui, repo, node2, "")
101 m = scmutil.match(repo[node1], files)
113 m = scmutil.match(repo[node1], files)
102 diffopts = patch.difffeatureopts(ui)
114 diffopts = patch.difffeatureopts(ui)
103 diffopts.git = True
115 diffopts.git = True
104 chunks = patch.diff(repo, node1, node2, match=m,
116 chunks = patch.diff(repo, node1, node2, match=m,
105 opts=diffopts)
117 opts=diffopts)
106 for chunk in chunks:
118 for chunk in chunks:
107 ui.write(chunk)
119 ui.write(chunk)
108 else:
120 else:
109 __difftree(repo, node1, node2, files=files)
121 __difftree(repo, node1, node2, files=files)
110 if not opts['stdin']:
122 if not opts['stdin']:
111 break
123 break
112
124
113 def catcommit(ui, repo, n, prefix, ctx=None):
125 def catcommit(ui, repo, n, prefix, ctx=None):
114 nlprefix = '\n' + prefix
126 nlprefix = '\n' + prefix
115 if ctx is None:
127 if ctx is None:
116 ctx = repo[n]
128 ctx = repo[n]
117 # use ctx.node() instead ??
129 # use ctx.node() instead ??
118 ui.write(("tree %s\n" % short(ctx.changeset()[0])))
130 ui.write(("tree %s\n" % short(ctx.changeset()[0])))
119 for p in ctx.parents():
131 for p in ctx.parents():
120 ui.write(("parent %s\n" % p))
132 ui.write(("parent %s\n" % p))
121
133
122 date = ctx.date()
134 date = ctx.date()
123 description = ctx.description().replace("\0", "")
135 description = ctx.description().replace("\0", "")
124 ui.write(("author %s %s %s\n" % (ctx.user(), int(date[0]), date[1])))
136 ui.write(("author %s %s %s\n" % (ctx.user(), int(date[0]), date[1])))
125
137
126 if 'committer' in ctx.extra():
138 if 'committer' in ctx.extra():
127 ui.write(("committer %s\n" % ctx.extra()['committer']))
139 ui.write(("committer %s\n" % ctx.extra()['committer']))
128
140
129 ui.write(("revision %d\n" % ctx.rev()))
141 ui.write(("revision %d\n" % ctx.rev()))
130 ui.write(("branch %s\n" % ctx.branch()))
142 ui.write(("branch %s\n" % ctx.branch()))
131 if obsolete.isenabled(repo, obsolete.createmarkersopt):
143 if obsolete.isenabled(repo, obsolete.createmarkersopt):
132 if ctx.obsolete():
144 if ctx.obsolete():
133 ui.write(("obsolete\n"))
145 ui.write(("obsolete\n"))
134 ui.write(("phase %s\n\n" % ctx.phasestr()))
146 ui.write(("phase %s\n\n" % ctx.phasestr()))
135
147
136 if prefix != "":
148 if prefix != "":
137 ui.write("%s%s\n" % (prefix,
149 ui.write("%s%s\n" % (prefix,
138 description.replace('\n', nlprefix).strip()))
150 description.replace('\n', nlprefix).strip()))
139 else:
151 else:
140 ui.write(description + "\n")
152 ui.write(description + "\n")
141 if prefix:
153 if prefix:
142 ui.write('\0')
154 ui.write('\0')
143
155
144 @command('debug-merge-base', [], _('REV REV'))
156 @command('debug-merge-base', [], _('REV REV'))
145 def base(ui, repo, node1, node2):
157 def base(ui, repo, node1, node2):
146 """output common ancestor information"""
158 """output common ancestor information"""
147 node1 = repo.lookup(node1)
159 node1 = repo.lookup(node1)
148 node2 = repo.lookup(node2)
160 node2 = repo.lookup(node2)
149 n = repo.changelog.ancestor(node1, node2)
161 n = repo.changelog.ancestor(node1, node2)
150 ui.write(short(n) + "\n")
162 ui.write(short(n) + "\n")
151
163
152 @command('debug-cat-file',
164 @command('debug-cat-file',
153 [('s', 'stdin', None, _('stdin'))],
165 [('s', 'stdin', None, _('stdin'))],
154 _('[OPTION]... TYPE FILE'),
166 _('[OPTION]... TYPE FILE'),
155 inferrepo=True)
167 inferrepo=True)
156 def catfile(ui, repo, type=None, r=None, **opts):
168 def catfile(ui, repo, type=None, r=None, **opts):
157 """cat a specific revision"""
169 """cat a specific revision"""
158 # in stdin mode, every line except the commit is prefixed with two
170 # in stdin mode, every line except the commit is prefixed with two
159 # spaces. This way the our caller can find the commit without magic
171 # spaces. This way the our caller can find the commit without magic
160 # strings
172 # strings
161 #
173 #
162 prefix = ""
174 prefix = ""
163 if opts['stdin']:
175 if opts['stdin']:
164 try:
176 try:
165 (type, r) = raw_input().split(' ')
177 (type, r) = raw_input().split(' ')
166 prefix = " "
178 prefix = " "
167 except EOFError:
179 except EOFError:
168 return
180 return
169
181
170 else:
182 else:
171 if not type or not r:
183 if not type or not r:
172 ui.warn(_("cat-file: type or revision not supplied\n"))
184 ui.warn(_("cat-file: type or revision not supplied\n"))
173 commands.help_(ui, 'cat-file')
185 commands.help_(ui, 'cat-file')
174
186
175 while r:
187 while r:
176 if type != "commit":
188 if type != "commit":
177 ui.warn(_("aborting hg cat-file only understands commits\n"))
189 ui.warn(_("aborting hg cat-file only understands commits\n"))
178 return 1
190 return 1
179 n = repo.lookup(r)
191 n = repo.lookup(r)
180 catcommit(ui, repo, n, prefix)
192 catcommit(ui, repo, n, prefix)
181 if opts['stdin']:
193 if opts['stdin']:
182 try:
194 try:
183 (type, r) = raw_input().split(' ')
195 (type, r) = raw_input().split(' ')
184 except EOFError:
196 except EOFError:
185 break
197 break
186 else:
198 else:
187 break
199 break
188
200
189 # git rev-tree is a confusing thing. You can supply a number of
201 # git rev-tree is a confusing thing. You can supply a number of
190 # commit sha1s on the command line, and it walks the commit history
202 # commit sha1s on the command line, and it walks the commit history
191 # telling you which commits are reachable from the supplied ones via
203 # telling you which commits are reachable from the supplied ones via
192 # a bitmask based on arg position.
204 # a bitmask based on arg position.
193 # you can specify a commit to stop at by starting the sha1 with ^
205 # you can specify a commit to stop at by starting the sha1 with ^
194 def revtree(ui, args, repo, full="tree", maxnr=0, parents=False):
206 def revtree(ui, args, repo, full="tree", maxnr=0, parents=False):
195 def chlogwalk():
207 def chlogwalk():
196 count = len(repo)
208 count = len(repo)
197 i = count
209 i = count
198 l = [0] * 100
210 l = [0] * 100
199 chunk = 100
211 chunk = 100
200 while True:
212 while True:
201 if chunk > i:
213 if chunk > i:
202 chunk = i
214 chunk = i
203 i = 0
215 i = 0
204 else:
216 else:
205 i -= chunk
217 i -= chunk
206
218
207 for x in xrange(chunk):
219 for x in xrange(chunk):
208 if i + x >= count:
220 if i + x >= count:
209 l[chunk - x:] = [0] * (chunk - x)
221 l[chunk - x:] = [0] * (chunk - x)
210 break
222 break
211 if full is not None:
223 if full is not None:
212 if (i + x) in repo:
224 if (i + x) in repo:
213 l[x] = repo[i + x]
225 l[x] = repo[i + x]
214 l[x].changeset() # force reading
226 l[x].changeset() # force reading
215 else:
227 else:
216 if (i + x) in repo:
228 if (i + x) in repo:
217 l[x] = 1
229 l[x] = 1
218 for x in xrange(chunk - 1, -1, -1):
230 for x in xrange(chunk - 1, -1, -1):
219 if l[x] != 0:
231 if l[x] != 0:
220 yield (i + x, full is not None and l[x] or None)
232 yield (i + x, full is not None and l[x] or None)
221 if i == 0:
233 if i == 0:
222 break
234 break
223
235
224 # calculate and return the reachability bitmask for sha
236 # calculate and return the reachability bitmask for sha
225 def is_reachable(ar, reachable, sha):
237 def is_reachable(ar, reachable, sha):
226 if len(ar) == 0:
238 if len(ar) == 0:
227 return 1
239 return 1
228 mask = 0
240 mask = 0
229 for i in xrange(len(ar)):
241 for i in xrange(len(ar)):
230 if sha in reachable[i]:
242 if sha in reachable[i]:
231 mask |= 1 << i
243 mask |= 1 << i
232
244
233 return mask
245 return mask
234
246
235 reachable = []
247 reachable = []
236 stop_sha1 = []
248 stop_sha1 = []
237 want_sha1 = []
249 want_sha1 = []
238 count = 0
250 count = 0
239
251
240 # figure out which commits they are asking for and which ones they
252 # figure out which commits they are asking for and which ones they
241 # want us to stop on
253 # want us to stop on
242 for i, arg in enumerate(args):
254 for i, arg in enumerate(args):
243 if arg.startswith('^'):
255 if arg.startswith('^'):
244 s = repo.lookup(arg[1:])
256 s = repo.lookup(arg[1:])
245 stop_sha1.append(s)
257 stop_sha1.append(s)
246 want_sha1.append(s)
258 want_sha1.append(s)
247 elif arg != 'HEAD':
259 elif arg != 'HEAD':
248 want_sha1.append(repo.lookup(arg))
260 want_sha1.append(repo.lookup(arg))
249
261
250 # calculate the graph for the supplied commits
262 # calculate the graph for the supplied commits
251 for i, n in enumerate(want_sha1):
263 for i, n in enumerate(want_sha1):
252 reachable.append(set())
264 reachable.append(set())
253 visit = [n]
265 visit = [n]
254 reachable[i].add(n)
266 reachable[i].add(n)
255 while visit:
267 while visit:
256 n = visit.pop(0)
268 n = visit.pop(0)
257 if n in stop_sha1:
269 if n in stop_sha1:
258 continue
270 continue
259 for p in repo.changelog.parents(n):
271 for p in repo.changelog.parents(n):
260 if p not in reachable[i]:
272 if p not in reachable[i]:
261 reachable[i].add(p)
273 reachable[i].add(p)
262 visit.append(p)
274 visit.append(p)
263 if p in stop_sha1:
275 if p in stop_sha1:
264 continue
276 continue
265
277
266 # walk the repository looking for commits that are in our
278 # walk the repository looking for commits that are in our
267 # reachability graph
279 # reachability graph
268 for i, ctx in chlogwalk():
280 for i, ctx in chlogwalk():
269 if i not in repo:
281 if i not in repo:
270 continue
282 continue
271 n = repo.changelog.node(i)
283 n = repo.changelog.node(i)
272 mask = is_reachable(want_sha1, reachable, n)
284 mask = is_reachable(want_sha1, reachable, n)
273 if mask:
285 if mask:
274 parentstr = ""
286 parentstr = ""
275 if parents:
287 if parents:
276 pp = repo.changelog.parents(n)
288 pp = repo.changelog.parents(n)
277 if pp[0] != nullid:
289 if pp[0] != nullid:
278 parentstr += " " + short(pp[0])
290 parentstr += " " + short(pp[0])
279 if pp[1] != nullid:
291 if pp[1] != nullid:
280 parentstr += " " + short(pp[1])
292 parentstr += " " + short(pp[1])
281 if not full:
293 if not full:
282 ui.write("%s%s\n" % (short(n), parentstr))
294 ui.write("%s%s\n" % (short(n), parentstr))
283 elif full == "commit":
295 elif full == "commit":
284 ui.write("%s%s\n" % (short(n), parentstr))
296 ui.write("%s%s\n" % (short(n), parentstr))
285 catcommit(ui, repo, n, ' ', ctx)
297 catcommit(ui, repo, n, ' ', ctx)
286 else:
298 else:
287 (p1, p2) = repo.changelog.parents(n)
299 (p1, p2) = repo.changelog.parents(n)
288 (h, h1, h2) = map(short, (n, p1, p2))
300 (h, h1, h2) = map(short, (n, p1, p2))
289 (i1, i2) = map(repo.changelog.rev, (p1, p2))
301 (i1, i2) = map(repo.changelog.rev, (p1, p2))
290
302
291 date = ctx.date()[0]
303 date = ctx.date()[0]
292 ui.write("%s %s:%s" % (date, h, mask))
304 ui.write("%s %s:%s" % (date, h, mask))
293 mask = is_reachable(want_sha1, reachable, p1)
305 mask = is_reachable(want_sha1, reachable, p1)
294 if i1 != nullrev and mask > 0:
306 if i1 != nullrev and mask > 0:
295 ui.write("%s:%s " % (h1, mask)),
307 ui.write("%s:%s " % (h1, mask)),
296 mask = is_reachable(want_sha1, reachable, p2)
308 mask = is_reachable(want_sha1, reachable, p2)
297 if i2 != nullrev and mask > 0:
309 if i2 != nullrev and mask > 0:
298 ui.write("%s:%s " % (h2, mask))
310 ui.write("%s:%s " % (h2, mask))
299 ui.write("\n")
311 ui.write("\n")
300 if maxnr and count >= maxnr:
312 if maxnr and count >= maxnr:
301 break
313 break
302 count += 1
314 count += 1
303
315
304 # git rev-list tries to order things by date, and has the ability to stop
316 # git rev-list tries to order things by date, and has the ability to stop
305 # at a given commit without walking the whole repo. TODO add the stop
317 # at a given commit without walking the whole repo. TODO add the stop
306 # parameter
318 # parameter
307 @command('debug-rev-list',
319 @command('debug-rev-list',
308 [('H', 'header', None, _('header')),
320 [('H', 'header', None, _('header')),
309 ('t', 'topo-order', None, _('topo-order')),
321 ('t', 'topo-order', None, _('topo-order')),
310 ('p', 'parents', None, _('parents')),
322 ('p', 'parents', None, _('parents')),
311 ('n', 'max-count', 0, _('max-count'))],
323 ('n', 'max-count', 0, _('max-count'))],
312 ('[OPTION]... REV...'))
324 ('[OPTION]... REV...'))
313 def revlist(ui, repo, *revs, **opts):
325 def revlist(ui, repo, *revs, **opts):
314 """print revisions"""
326 """print revisions"""
315 if opts['header']:
327 if opts['header']:
316 full = "commit"
328 full = "commit"
317 else:
329 else:
318 full = None
330 full = None
319 copy = [x for x in revs]
331 copy = [x for x in revs]
320 revtree(ui, copy, repo, full, opts['max_count'], opts['parents'])
332 revtree(ui, copy, repo, full, opts['max_count'], opts['parents'])
321
333
322 @command('view',
334 @command('view',
323 [('l', 'limit', '',
335 [('l', 'limit', '',
324 _('limit number of changes displayed'), _('NUM'))],
336 _('limit number of changes displayed'), _('NUM'))],
325 _('[-l LIMIT] [REVRANGE]'))
337 _('[-l LIMIT] [REVRANGE]'))
326 def view(ui, repo, *etc, **opts):
338 def view(ui, repo, *etc, **opts):
327 "start interactive history viewer"
339 "start interactive history viewer"
328 os.chdir(repo.root)
340 os.chdir(repo.root)
329 optstr = ' '.join(['--%s %s' % (k, v) for k, v in opts.iteritems() if v])
341 optstr = ' '.join(['--%s %s' % (k, v) for k, v in opts.iteritems() if v])
330 if repo.filtername is None:
342 if repo.filtername is None:
331 optstr += '--hidden'
343 optstr += '--hidden'
332
344
333 cmd = ui.config("hgk", "path", "hgk") + " %s %s" % (optstr, " ".join(etc))
345 cmd = ui.config("hgk", "path", "hgk") + " %s %s" % (optstr, " ".join(etc))
334 ui.debug("running %s\n" % cmd)
346 ui.debug("running %s\n" % cmd)
335 ui.system(cmd)
347 ui.system(cmd)
@@ -1,173 +1,172 b''
1 #require test-repo
1 #require test-repo
2
2
3 $ cd "$TESTDIR"/..
3 $ cd "$TESTDIR"/..
4
4
5 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
5 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
6 hgext/fsmonitor/pywatchman/__init__.py not using absolute_import
6 hgext/fsmonitor/pywatchman/__init__.py not using absolute_import
7 hgext/fsmonitor/pywatchman/__init__.py requires print_function
7 hgext/fsmonitor/pywatchman/__init__.py requires print_function
8 hgext/fsmonitor/pywatchman/capabilities.py not using absolute_import
8 hgext/fsmonitor/pywatchman/capabilities.py not using absolute_import
9 hgext/fsmonitor/pywatchman/pybser.py not using absolute_import
9 hgext/fsmonitor/pywatchman/pybser.py not using absolute_import
10 hgext/hgcia.py not using absolute_import
10 hgext/hgcia.py not using absolute_import
11 hgext/hgk.py not using absolute_import
12 hgext/highlight/__init__.py not using absolute_import
11 hgext/highlight/__init__.py not using absolute_import
13 hgext/highlight/highlight.py not using absolute_import
12 hgext/highlight/highlight.py not using absolute_import
14 hgext/histedit.py not using absolute_import
13 hgext/histedit.py not using absolute_import
15 hgext/largefiles/__init__.py not using absolute_import
14 hgext/largefiles/__init__.py not using absolute_import
16 hgext/largefiles/basestore.py not using absolute_import
15 hgext/largefiles/basestore.py not using absolute_import
17 hgext/largefiles/lfcommands.py not using absolute_import
16 hgext/largefiles/lfcommands.py not using absolute_import
18 hgext/largefiles/lfutil.py not using absolute_import
17 hgext/largefiles/lfutil.py not using absolute_import
19 hgext/largefiles/localstore.py not using absolute_import
18 hgext/largefiles/localstore.py not using absolute_import
20 hgext/largefiles/overrides.py not using absolute_import
19 hgext/largefiles/overrides.py not using absolute_import
21 hgext/largefiles/proto.py not using absolute_import
20 hgext/largefiles/proto.py not using absolute_import
22 hgext/largefiles/remotestore.py not using absolute_import
21 hgext/largefiles/remotestore.py not using absolute_import
23 hgext/largefiles/reposetup.py not using absolute_import
22 hgext/largefiles/reposetup.py not using absolute_import
24 hgext/largefiles/uisetup.py not using absolute_import
23 hgext/largefiles/uisetup.py not using absolute_import
25 hgext/largefiles/wirestore.py not using absolute_import
24 hgext/largefiles/wirestore.py not using absolute_import
26 hgext/mq.py not using absolute_import
25 hgext/mq.py not using absolute_import
27 hgext/rebase.py not using absolute_import
26 hgext/rebase.py not using absolute_import
28 hgext/share.py not using absolute_import
27 hgext/share.py not using absolute_import
29 hgext/win32text.py not using absolute_import
28 hgext/win32text.py not using absolute_import
30 i18n/check-translation.py not using absolute_import
29 i18n/check-translation.py not using absolute_import
31 i18n/polib.py not using absolute_import
30 i18n/polib.py not using absolute_import
32 setup.py not using absolute_import
31 setup.py not using absolute_import
33 tests/heredoctest.py requires print_function
32 tests/heredoctest.py requires print_function
34 tests/md5sum.py not using absolute_import
33 tests/md5sum.py not using absolute_import
35 tests/readlink.py not using absolute_import
34 tests/readlink.py not using absolute_import
36 tests/readlink.py requires print_function
35 tests/readlink.py requires print_function
37 tests/run-tests.py not using absolute_import
36 tests/run-tests.py not using absolute_import
38 tests/svn-safe-append.py not using absolute_import
37 tests/svn-safe-append.py not using absolute_import
39 tests/test-atomictempfile.py not using absolute_import
38 tests/test-atomictempfile.py not using absolute_import
40 tests/test-demandimport.py not using absolute_import
39 tests/test-demandimport.py not using absolute_import
41
40
42 #if py3exe
41 #if py3exe
43 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs $PYTHON3 contrib/check-py3-compat.py
42 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs $PYTHON3 contrib/check-py3-compat.py
44 contrib/check-code.py: invalid syntax: (unicode error) 'unicodeescape' codec can't decode bytes in position *-*: malformed \N character escape (<unknown>, line *) (glob)
43 contrib/check-code.py: invalid syntax: (unicode error) 'unicodeescape' codec can't decode bytes in position *-*: malformed \N character escape (<unknown>, line *) (glob)
45 doc/hgmanpage.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
44 doc/hgmanpage.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
46 hgext/automv.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
45 hgext/automv.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
47 hgext/blackbox.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
46 hgext/blackbox.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
48 hgext/bugzilla.py: error importing module: <ImportError> No module named 'urlparse' (line *) (glob)
47 hgext/bugzilla.py: error importing module: <ImportError> No module named 'urlparse' (line *) (glob)
49 hgext/censor.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
48 hgext/censor.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
50 hgext/chgserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
49 hgext/chgserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
51 hgext/children.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
50 hgext/children.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
52 hgext/churn.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
51 hgext/churn.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
53 hgext/clonebundles.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
52 hgext/clonebundles.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
54 hgext/color.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
53 hgext/color.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
55 hgext/convert/bzr.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
54 hgext/convert/bzr.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
56 hgext/convert/common.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
55 hgext/convert/common.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
57 hgext/convert/convcmd.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
56 hgext/convert/convcmd.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
58 hgext/convert/cvs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
57 hgext/convert/cvs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
59 hgext/convert/cvsps.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
58 hgext/convert/cvsps.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
60 hgext/convert/darcs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
59 hgext/convert/darcs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
61 hgext/convert/filemap.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
60 hgext/convert/filemap.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
62 hgext/convert/git.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
61 hgext/convert/git.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
63 hgext/convert/gnuarch.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
62 hgext/convert/gnuarch.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
64 hgext/convert/hg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
63 hgext/convert/hg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
65 hgext/convert/monotone.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
64 hgext/convert/monotone.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
66 hgext/convert/p*.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
65 hgext/convert/p*.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
67 hgext/convert/subversion.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
66 hgext/convert/subversion.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
68 hgext/convert/transport.py: error importing module: <ImportError> No module named 'svn.client' (line *) (glob)
67 hgext/convert/transport.py: error importing module: <ImportError> No module named 'svn.client' (line *) (glob)
69 hgext/eol.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
68 hgext/eol.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
70 hgext/extdiff.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
69 hgext/extdiff.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
71 hgext/factotum.py: error importing: <ImportError> No module named 'cStringIO' (error at __init__.py:*) (glob)
70 hgext/factotum.py: error importing: <ImportError> No module named 'cStringIO' (error at __init__.py:*) (glob)
72 hgext/fetch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
71 hgext/fetch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
73 hgext/fsmonitor/watchmanclient.py: error importing module: <SystemError> Parent module 'hgext.fsmonitor' not loaded, cannot perform relative import (line *) (glob)
72 hgext/fsmonitor/watchmanclient.py: error importing module: <SystemError> Parent module 'hgext.fsmonitor' not loaded, cannot perform relative import (line *) (glob)
74 hgext/gpg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
73 hgext/gpg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
75 hgext/graphlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
74 hgext/graphlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
76 hgext/hgcia.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
75 hgext/hgcia.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
77 hgext/hgk.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
76 hgext/hgk.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
78 hgext/histedit.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
77 hgext/histedit.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
79 hgext/keyword.py: error importing: <ImportError> No module named 'BaseHTTPServer' (error at common.py:*) (glob)
78 hgext/keyword.py: error importing: <ImportError> No module named 'BaseHTTPServer' (error at common.py:*) (glob)
80 hgext/largefiles/basestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
79 hgext/largefiles/basestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
81 hgext/largefiles/lfcommands.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
80 hgext/largefiles/lfcommands.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
82 hgext/largefiles/lfutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
81 hgext/largefiles/lfutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
83 hgext/largefiles/localstore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
82 hgext/largefiles/localstore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
84 hgext/largefiles/overrides.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
83 hgext/largefiles/overrides.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
85 hgext/largefiles/proto.py: error importing: <ImportError> No module named 'httplib' (error at httppeer.py:*) (glob)
84 hgext/largefiles/proto.py: error importing: <ImportError> No module named 'httplib' (error at httppeer.py:*) (glob)
86 hgext/largefiles/remotestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
85 hgext/largefiles/remotestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
87 hgext/largefiles/reposetup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
86 hgext/largefiles/reposetup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
88 hgext/largefiles/uisetup.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
87 hgext/largefiles/uisetup.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
89 hgext/largefiles/wirestore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
88 hgext/largefiles/wirestore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
90 hgext/mq.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
89 hgext/mq.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
91 hgext/notify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
90 hgext/notify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
92 hgext/pager.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
91 hgext/pager.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
93 hgext/patchbomb.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
92 hgext/patchbomb.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
94 hgext/purge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
93 hgext/purge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
95 hgext/rebase.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
94 hgext/rebase.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
96 hgext/record.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
95 hgext/record.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
97 hgext/relink.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
96 hgext/relink.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
98 hgext/schemes.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
97 hgext/schemes.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
99 hgext/share.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
98 hgext/share.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
100 hgext/shelve.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
99 hgext/shelve.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
101 hgext/strip.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
100 hgext/strip.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
102 hgext/transplant.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
101 hgext/transplant.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
103 mercurial/archival.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
102 mercurial/archival.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
104 mercurial/branchmap.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
103 mercurial/branchmap.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
105 mercurial/bundle*.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
104 mercurial/bundle*.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
106 mercurial/bundlerepo.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
105 mercurial/bundlerepo.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
107 mercurial/changegroup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
106 mercurial/changegroup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
108 mercurial/changelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
107 mercurial/changelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
109 mercurial/cmdutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
108 mercurial/cmdutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
110 mercurial/commands.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
109 mercurial/commands.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
111 mercurial/commandserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
110 mercurial/commandserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
112 mercurial/context.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
111 mercurial/context.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
113 mercurial/copies.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
112 mercurial/copies.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
114 mercurial/crecord.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
113 mercurial/crecord.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
115 mercurial/dirstate.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
114 mercurial/dirstate.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
116 mercurial/discovery.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
115 mercurial/discovery.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
117 mercurial/dispatch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
116 mercurial/dispatch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
118 mercurial/exchange.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
117 mercurial/exchange.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
119 mercurial/extensions.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
118 mercurial/extensions.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
120 mercurial/filelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
119 mercurial/filelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
121 mercurial/filemerge.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
120 mercurial/filemerge.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
122 mercurial/fileset.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
121 mercurial/fileset.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
123 mercurial/formatter.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
122 mercurial/formatter.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
124 mercurial/graphmod.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
123 mercurial/graphmod.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
125 mercurial/help.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
124 mercurial/help.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
126 mercurial/hg.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
125 mercurial/hg.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
127 mercurial/hgweb/common.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
126 mercurial/hgweb/common.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
128 mercurial/hgweb/hgweb_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
127 mercurial/hgweb/hgweb_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
129 mercurial/hgweb/hgwebdir_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
128 mercurial/hgweb/hgwebdir_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
130 mercurial/hgweb/protocol.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
129 mercurial/hgweb/protocol.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
131 mercurial/hgweb/request.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
130 mercurial/hgweb/request.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
132 mercurial/hgweb/server.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
131 mercurial/hgweb/server.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
133 mercurial/hgweb/webcommands.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
132 mercurial/hgweb/webcommands.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
134 mercurial/hgweb/webutil.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
133 mercurial/hgweb/webutil.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
135 mercurial/hgweb/wsgicgi.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
134 mercurial/hgweb/wsgicgi.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
136 mercurial/hook.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
135 mercurial/hook.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
137 mercurial/httpclient/_readers.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
136 mercurial/httpclient/_readers.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
138 mercurial/httpconnection.py: error importing: <ImportError> No module named 'cStringIO' (error at __init__.py:*) (glob)
137 mercurial/httpconnection.py: error importing: <ImportError> No module named 'cStringIO' (error at __init__.py:*) (glob)
139 mercurial/httppeer.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
138 mercurial/httppeer.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
140 mercurial/keepalive.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
139 mercurial/keepalive.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
141 mercurial/localrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
140 mercurial/localrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
142 mercurial/mail.py: error importing module: <AttributeError> module 'email' has no attribute 'Header' (line *) (glob)
141 mercurial/mail.py: error importing module: <AttributeError> module 'email' has no attribute 'Header' (line *) (glob)
143 mercurial/manifest.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
142 mercurial/manifest.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
144 mercurial/merge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
143 mercurial/merge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
145 mercurial/namespaces.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
144 mercurial/namespaces.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
146 mercurial/patch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
145 mercurial/patch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
147 mercurial/pure/mpatch.py: error importing module: <ImportError> cannot import name 'pycompat' (line *) (glob)
146 mercurial/pure/mpatch.py: error importing module: <ImportError> cannot import name 'pycompat' (line *) (glob)
148 mercurial/pure/parsers.py: error importing module: <ImportError> No module named 'mercurial.pure.node' (line *) (glob)
147 mercurial/pure/parsers.py: error importing module: <ImportError> No module named 'mercurial.pure.node' (line *) (glob)
149 mercurial/repair.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
148 mercurial/repair.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
150 mercurial/revlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
149 mercurial/revlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
151 mercurial/revset.py: error importing module: <AttributeError> 'dict' object has no attribute 'iteritems' (line *) (glob)
150 mercurial/revset.py: error importing module: <AttributeError> 'dict' object has no attribute 'iteritems' (line *) (glob)
152 mercurial/scmutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
151 mercurial/scmutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
153 mercurial/scmwindows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
152 mercurial/scmwindows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
154 mercurial/simplemerge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
153 mercurial/simplemerge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
155 mercurial/sshpeer.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
154 mercurial/sshpeer.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
156 mercurial/sshserver.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
155 mercurial/sshserver.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
157 mercurial/statichttprepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
156 mercurial/statichttprepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
158 mercurial/store.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
157 mercurial/store.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
159 mercurial/streamclone.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
158 mercurial/streamclone.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
160 mercurial/subrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
159 mercurial/subrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
161 mercurial/templatefilters.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
160 mercurial/templatefilters.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
162 mercurial/templatekw.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
161 mercurial/templatekw.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
163 mercurial/templater.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
162 mercurial/templater.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
164 mercurial/ui.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
163 mercurial/ui.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
165 mercurial/unionrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
164 mercurial/unionrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
166 mercurial/url.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
165 mercurial/url.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
167 mercurial/verify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
166 mercurial/verify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
168 mercurial/win*.py: error importing module: <ImportError> No module named 'msvcrt' (line *) (glob)
167 mercurial/win*.py: error importing module: <ImportError> No module named 'msvcrt' (line *) (glob)
169 mercurial/windows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
168 mercurial/windows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
170 mercurial/wireproto.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
169 mercurial/wireproto.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
171 tests/readlink.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
170 tests/readlink.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
172
171
173 #endif
172 #endif
General Comments 0
You need to be logged in to leave comments. Login now