# HG changeset patch # User mpm@selenic.com # Date 1124234564 28800 # Node ID fe69ecd3437cfc895e39e94cc36e0ef52330ed43 # Parent 7f3f55903496afd5e82ea631c0a9a0828c872297 hg cat: accept changeset hashes diff -r 7f3f55903496 -r fe69ecd3437c mercurial/commands.py --- a/mercurial/commands.py Tue Aug 16 14:53:47 2005 -0800 +++ b/mercurial/commands.py Tue Aug 16 15:22:44 2005 -0800 @@ -455,7 +455,14 @@ """output the latest or given revision of a file""" r = repo.file(relpath(repo, [file1])[0]) if rev: - n = r.lookup(rev) + try: + # assume all revision numbers are for changesets + n = repo.lookup(rev) + change = repo.changelog.read(n) + m = repo.manifest.read(change[0]) + n = m[relpath(repo, [file1])[0]] + except hg.RepoError, KeyError: + n = r.lookup(rev) else: n = r.tip() fp = make_file(repo, r, opts['output'], node=n)