Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 330:27d08c0c2a7e
Merge with TAH
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Merge with TAH
fixup history messages to not interfere with GPG signing
manifest hash: aea3a92e4699dfe0cbd98e6e2c8c6971218a59b8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCrkK4ywK+sNU5EO8RAqxHAKCNyjTE5F/7EvM+ipjhgzIUk1aWZACgm7zz
eBcKlHcOA8ceUcn4IEBLQpM=
=YfHT
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Mon, 13 Jun 2005 18:36:40 -0800 |
parents | 292e10b5831a 67c19ad374a9 |
children | d60a3060f9e2 a0b2758edee7 |
comparison
equal
deleted
inserted
replaced
328:dac675ef6189 | 330:27d08c0c2a7e |
---|---|
68 sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f)) | 68 sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f)) |
69 for f in d: | 69 for f in d: |
70 to = repo.file(f).read(mmap[f]) | 70 to = repo.file(f).read(mmap[f]) |
71 tn = None | 71 tn = None |
72 sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f)) | 72 sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f)) |
73 | 73 |
74 def show_changeset(ui, repo, rev=0, changenode=None, filelog=None): | |
75 """show a single changeset or file revision""" | |
76 changelog = repo.changelog | |
77 if filelog: | |
78 log = filelog | |
79 filerev = rev | |
80 node = filenode = filelog.node(filerev) | |
81 changerev = filelog.linkrev(filenode) | |
82 changenode = changenode or changelog.node(changerev) | |
83 else: | |
84 changerev = rev | |
85 log = changelog | |
86 if changenode is None: | |
87 changenode = changelog.node(changerev) | |
88 elif not changerev: | |
89 rev = changerev = changelog.rev(changenode) | |
90 node = changenode | |
91 | |
92 if ui.quiet: | |
93 ui.write("%d:%s\n" % (rev, hg.hex(node))) | |
94 return | |
95 | |
96 changes = changelog.read(changenode) | |
97 description = changes[4].strip().splitlines() | |
98 | |
99 parents = [(log.rev(parent), hg.hex(parent)) | |
100 for parent in log.parents(node) | |
101 if ui.debugflag or parent != hg.nullid] | |
102 if not ui.debugflag and len(parents) == 1 and parents[0][0] == rev-1: | |
103 parents = [] | |
104 | |
105 if filelog: | |
106 ui.write("revision: %d:%s\n" % (filerev, hg.hex(filenode))) | |
107 for parent in parents: | |
108 ui.write("parent: %d:%s\n" % parent) | |
109 ui.status("changeset: %d:%s\n" % (changerev, hg.hex(changenode))) | |
110 else: | |
111 ui.write("changeset: %d:%s\n" % (changerev, hg.hex(changenode))) | |
112 for parent in parents: | |
113 ui.write("parent: %d:%s\n" % parent) | |
114 ui.note("manifest: %d:%s\n" % (repo.manifest.rev(changes[0]), | |
115 hg.hex(changes[0]))) | |
116 ui.status("user: %s\n" % changes[1]) | |
117 ui.status("date: %s\n" % time.asctime( | |
118 time.localtime(float(changes[2].split(' ')[0])))) | |
119 ui.note("files: %s\n" % " ".join(changes[3])) | |
120 if description: | |
121 if ui.verbose: | |
122 ui.status("description:\n") | |
123 ui.status(changes[4].strip()) | |
124 ui.status("\n") | |
125 else: | |
126 ui.status("summary: %s\n" % description[0]) | |
127 ui.status("\n") | |
128 | |
74 def help(ui, cmd=None): | 129 def help(ui, cmd=None): |
75 '''show help for a given command or all commands''' | 130 '''show help for a given command or all commands''' |
76 if cmd: | 131 if cmd: |
77 try: | 132 try: |
78 i = find(cmd) | 133 i = find(cmd) |
246 def forget(ui, repo, file, *files): | 301 def forget(ui, repo, file, *files): |
247 """don't add the specified files on the next commit""" | 302 """don't add the specified files on the next commit""" |
248 repo.forget(relpath(repo, (file,) + files)) | 303 repo.forget(relpath(repo, (file,) + files)) |
249 | 304 |
250 def heads(ui, repo): | 305 def heads(ui, repo): |
251 '''show current repository heads''' | 306 """show current repository heads""" |
252 for n in repo.changelog.heads(): | 307 for n in repo.changelog.heads(): |
253 i = repo.changelog.rev(n) | 308 show_changeset(ui, repo, changenode=n) |
254 changes = repo.changelog.read(n) | |
255 (p1, p2) = repo.changelog.parents(n) | |
256 (h, h1, h2) = map(hg.hex, (n, p1, p2)) | |
257 (i1, i2) = map(repo.changelog.rev, (p1, p2)) | |
258 print "rev: %4d:%s" % (i, h) | |
259 print "parents: %4d:%s" % (i1, h1) | |
260 if i2: print " %4d:%s" % (i2, h2) | |
261 print "manifest: %4d:%s" % (repo.manifest.rev(changes[0]), | |
262 hg.hex(changes[0])) | |
263 print "user:", changes[1] | |
264 print "date:", time.asctime( | |
265 time.localtime(float(changes[2].split(' ')[0]))) | |
266 if ui.verbose: print "files:", " ".join(changes[3]) | |
267 print "description:" | |
268 print changes[4] | |
269 | 309 |
270 def history(ui, repo): | 310 def history(ui, repo): |
271 """show the changelog history""" | 311 """show the changelog history""" |
272 for i in range(repo.changelog.count() - 1, -1, -1): | 312 for i in range(repo.changelog.count() - 1, -1, -1): |
273 n = repo.changelog.node(i) | 313 show_changeset(ui, repo, rev=i) |
274 changes = repo.changelog.read(n) | |
275 (p1, p2) = repo.changelog.parents(n) | |
276 (h, h1, h2) = map(hg.hex, (n, p1, p2)) | |
277 (i1, i2) = map(repo.changelog.rev, (p1, p2)) | |
278 print "rev: %4d:%s" % (i, h) | |
279 print "parents: %4d:%s" % (i1, h1) | |
280 if i2: print " %4d:%s" % (i2, h2) | |
281 print "manifest: %4d:%s" % (repo.manifest.rev(changes[0]), | |
282 hg.hex(changes[0])) | |
283 print "user:", changes[1] | |
284 print "date:", time.asctime( | |
285 time.localtime(float(changes[2].split(' ')[0]))) | |
286 if ui.verbose: print "files:", " ".join(changes[3]) | |
287 print "description:" | |
288 print changes[4] | |
289 | 314 |
290 def init(ui, source=None): | 315 def init(ui, source=None): |
291 """create a new repository or copy an existing one""" | 316 """create a new repository or copy an existing one""" |
292 | 317 |
293 if source: | 318 if source: |
314 other = hg.repository(ui, source) | 339 other = hg.repository(ui, source) |
315 cg = repo.getchangegroup(other) | 340 cg = repo.getchangegroup(other) |
316 repo.addchangegroup(cg) | 341 repo.addchangegroup(cg) |
317 else: | 342 else: |
318 hg.repository(ui, ".", create=1) | 343 hg.repository(ui, ".", create=1) |
319 | 344 |
320 def log(ui, repo, f): | 345 def log(ui, repo, f): |
321 """show the revision history of a single file""" | 346 """show the revision history of a single file""" |
322 f = relpath(repo, [f])[0] | 347 f = relpath(repo, [f])[0] |
323 | 348 |
324 r = repo.file(f) | 349 r = repo.file(f) |
325 for i in range(r.count() - 1, -1, -1): | 350 for i in range(r.count() - 1, -1, -1): |
326 n = r.node(i) | 351 show_changeset(ui, repo, filelog=r, rev=i) |
327 (p1, p2) = r.parents(n) | |
328 (h, h1, h2) = map(hg.hex, (n, p1, p2)) | |
329 (i1, i2) = map(r.rev, (p1, p2)) | |
330 cr = r.linkrev(n) | |
331 cn = hg.hex(repo.changelog.node(cr)) | |
332 print "rev: %4d:%s" % (i, h) | |
333 print "changeset: %4d:%s" % (cr, cn) | |
334 print "parents: %4d:%s" % (i1, h1) | |
335 if i2: print " %4d:%s" % (i2, h2) | |
336 changes = repo.changelog.read(repo.changelog.node(cr)) | |
337 print "user: %s" % changes[1] | |
338 print "date: %s" % time.asctime( | |
339 time.localtime(float(changes[2].split(' ')[0]))) | |
340 print "description:" | |
341 print changes[4].rstrip() | |
342 print | |
343 | 352 |
344 def manifest(ui, repo, rev = []): | 353 def manifest(ui, repo, rev = []): |
345 """output the latest or given revision of the project manifest""" | 354 """output the latest or given revision of the project manifest""" |
346 n = repo.manifest.tip() | 355 n = repo.manifest.tip() |
347 if rev: | 356 if rev: |
361 else: | 370 else: |
362 p = repo.dirstate.parents() | 371 p = repo.dirstate.parents() |
363 | 372 |
364 for n in p: | 373 for n in p: |
365 if n != hg.nullid: | 374 if n != hg.nullid: |
366 ui.write("%d:%s\n" % (repo.changelog.rev(n), hg.hex(n))) | 375 show_changeset(ui, repo, changenode=n) |
367 | 376 |
368 def patch(ui, repo, patch1, *patches, **opts): | 377 def patch(ui, repo, patch1, *patches, **opts): |
369 """import an ordered set of patches""" | 378 """import an ordered set of patches""" |
370 try: | 379 try: |
371 import psyco | 380 import psyco |
517 print "%-30s %5d:%s" % (k, repo.changelog.rev(n), hg.hex(n)) | 526 print "%-30s %5d:%s" % (k, repo.changelog.rev(n), hg.hex(n)) |
518 | 527 |
519 def tip(ui, repo): | 528 def tip(ui, repo): |
520 """show the tip revision""" | 529 """show the tip revision""" |
521 n = repo.changelog.tip() | 530 n = repo.changelog.tip() |
522 t = repo.changelog.rev(n) | 531 show_changeset(ui, repo, changenode=n) |
523 ui.status("%d:%s\n" % (t, hg.hex(n))) | |
524 | 532 |
525 def undo(ui, repo): | 533 def undo(ui, repo): |
526 """undo the last transaction""" | 534 """undo the last transaction""" |
527 repo.undo() | 535 repo.undo() |
528 | 536 |