comparison mercurial/commands.py @ 918:fe69ecd3437c

hg cat: accept changeset hashes
author mpm@selenic.com
date Tue, 16 Aug 2005 15:22:44 -0800
parents 7f3f55903496
children 270756aa29d5
comparison
equal deleted inserted replaced
917:7f3f55903496 918:fe69ecd3437c
453 453
454 def cat(ui, repo, file1, rev=None, **opts): 454 def cat(ui, repo, file1, rev=None, **opts):
455 """output the latest or given revision of a file""" 455 """output the latest or given revision of a file"""
456 r = repo.file(relpath(repo, [file1])[0]) 456 r = repo.file(relpath(repo, [file1])[0])
457 if rev: 457 if rev:
458 n = r.lookup(rev) 458 try:
459 # assume all revision numbers are for changesets
460 n = repo.lookup(rev)
461 change = repo.changelog.read(n)
462 m = repo.manifest.read(change[0])
463 n = m[relpath(repo, [file1])[0]]
464 except hg.RepoError, KeyError:
465 n = r.lookup(rev)
459 else: 466 else:
460 n = r.tip() 467 n = r.tip()
461 fp = make_file(repo, r, opts['output'], node=n) 468 fp = make_file(repo, r, opts['output'], node=n)
462 fp.write(r.read(n)) 469 fp.write(r.read(n))
463 470