Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/commands.py @ 824:0932bc2fb2be
Merge with BOS
author | mpm@selenic.com |
---|---|
date | Tue, 02 Aug 2005 08:57:32 -0800 |
parents | eef752151556 f0446f6963d2 |
children | 0108c602feb9 |
comparison
equal
deleted
inserted
replaced
818:eef752151556 | 824:0932bc2fb2be |
---|---|
38 return [util.pconvert(os.path.normpath(os.path.join(cwd, x))) | 38 return [util.pconvert(os.path.normpath(os.path.join(cwd, x))) |
39 for x in args] | 39 for x in args] |
40 return args | 40 return args |
41 | 41 |
42 def matchpats(cwd, pats = [], opts = {}, head = ''): | 42 def matchpats(cwd, pats = [], opts = {}, head = ''): |
43 return util.matcher(cwd, pats, opts.get('include'), | 43 return util.matcher(cwd, pats or ['.'], opts.get('include'), |
44 opts.get('exclude'), head) | 44 opts.get('exclude'), head) |
45 | |
46 def pathto(n1, n2): | |
47 '''return the relative path from one place to another''' | |
48 if not n1: return n2 | |
49 a, b = n1.split(os.sep), n2.split(os.sep) | |
50 a.reverse(), b.reverse() | |
51 while a and b and a[-1] == b[-1]: | |
52 a.pop(), b.pop() | |
53 b.reverse() | |
54 return os.sep.join((['..'] * len(a)) + b) | |
45 | 55 |
46 def walk(repo, pats, opts, head = ''): | 56 def walk(repo, pats, opts, head = ''): |
47 cwd = repo.getcwd() | 57 cwd = repo.getcwd() |
48 c = 0 | |
49 if cwd: c = len(cwd) + 1 | |
50 files, matchfn = matchpats(cwd, pats, opts, head) | 58 files, matchfn = matchpats(cwd, pats, opts, head) |
51 for src, fn in repo.walk(files = files, match = matchfn): | 59 for src, fn in repo.walk(files = files, match = matchfn): |
52 yield src, fn, fn[c:] | 60 yield src, fn, pathto(cwd, fn) |
53 | 61 |
54 revrangesep = ':' | 62 revrangesep = ':' |
55 | 63 |
56 def revrange(ui, repo, revs, revlog=None): | 64 def revrange(ui, repo, revs, revlog=None): |
57 if revlog is None: | 65 if revlog is None: |
563 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i)) | 571 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i)) |
564 if e[5] != hg.nullid: | 572 if e[5] != hg.nullid: |
565 ui.write("\t%d -> %d\n" % (r.rev(e[5]), i)) | 573 ui.write("\t%d -> %d\n" % (r.rev(e[5]), i)) |
566 ui.write("}\n") | 574 ui.write("}\n") |
567 | 575 |
576 def debugwalk(ui, repo, *pats, **opts): | |
577 items = list(walk(repo, pats, opts)) | |
578 fmt = '%%s %%-%ds %%s' % max([len(abs) for (src, abs, rel) in items]) | |
579 for i in items: print fmt % i | |
580 | |
568 def diff(ui, repo, *pats, **opts): | 581 def diff(ui, repo, *pats, **opts): |
569 """diff working directory (or selected files)""" | 582 """diff working directory (or selected files)""" |
570 revs = [] | 583 revs = [] |
571 if opts['rev']: | 584 if opts['rev']: |
572 revs = map(lambda x: repo.lookup(x), opts['rev']) | 585 revs = map(lambda x: repo.lookup(x), opts['rev']) |
1013 M = modified | 1026 M = modified |
1014 A = added | 1027 A = added |
1015 R = removed | 1028 R = removed |
1016 ? = not tracked''' | 1029 ? = not tracked''' |
1017 | 1030 |
1018 files, matchfn = matchpats(repo.getcwd(), pats, opts) | 1031 cwd = repo.getcwd() |
1019 (c, a, d, u) = repo.changes(files = files, match = matchfn) | 1032 files, matchfn = matchpats(cwd, pats, opts) |
1020 (c, a, d, u) = map(lambda x: relfilter(repo, x), (c, a, d, u)) | 1033 (c, a, d, u) = [[pathto(cwd, x) for x in n] |
1034 for n in repo.changes(files=files, match=matchfn)] | |
1021 | 1035 |
1022 for f in c: | 1036 for f in c: |
1023 ui.write("M ", f, "\n") | 1037 ui.write("M ", f, "\n") |
1024 for f in a: | 1038 for f in a: |
1025 ui.write("A ", f, "\n") | 1039 ui.write("A ", f, "\n") |
1158 "copy": (copy, [], 'hg copy SOURCE DEST'), | 1172 "copy": (copy, [], 'hg copy SOURCE DEST'), |
1159 "debugcheckstate": (debugcheckstate, [], 'debugcheckstate'), | 1173 "debugcheckstate": (debugcheckstate, [], 'debugcheckstate'), |
1160 "debugstate": (debugstate, [], 'debugstate'), | 1174 "debugstate": (debugstate, [], 'debugstate'), |
1161 "debugindex": (debugindex, [], 'debugindex FILE'), | 1175 "debugindex": (debugindex, [], 'debugindex FILE'), |
1162 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'), | 1176 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'), |
1177 "debugwalk": (debugwalk, | |
1178 [('I', 'include', [], 'include path in search'), | |
1179 ('X', 'exclude', [], 'exclude path from search')], | |
1180 'debugwalk [OPTIONS]... [FILE]...'), | |
1163 "^diff": | 1181 "^diff": |
1164 (diff, | 1182 (diff, |
1165 [('r', 'rev', [], 'revision'), | 1183 [('r', 'rev', [], 'revision'), |
1166 ('I', 'include', [], 'include path in search'), | 1184 ('I', 'include', [], 'include path in search'), |
1167 ('X', 'exclude', [], 'exclude path from search')], | 1185 ('X', 'exclude', [], 'exclude path from search')], |