Mercurial > hg > mercurial-crew-with-dirclash
diff mercurial/commands.py @ 553:f2442a6a5893
Merge with TAH
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Merge with TAH
manifest hash: b8ea5be49794773eeb6b8beb712a7c1bd9ed1e9b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxPqMywK+sNU5EO8RAn62AJ9nmqCKGck8T4E90V+jljRV56hcHwCff0Co
jTfrJT1oJrGRgd6VE/B4hKc=
=8nW7
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Fri, 01 Jul 2005 00:10:52 -0800 |
parents | 92b60cabf808 2204311609a0 |
children | 2f515dcfbc24 |
line wrap: on
line diff
--- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -515,16 +515,28 @@ def init(ui, source=None): sys.exit(1) repo = hg.repository(ui, ".", create=1) -def log(ui, repo, f = None): +def log(ui, repo, f=None, **opts): """show the revision history of the repository or a single file""" if f: - f = relpath(repo, [f])[0] - r = repo.file(f) - for i in range(r.count() - 1, -1, -1): - show_changeset(ui, repo, filelog=r, rev=i) + filelog = repo.file(relpath(repo, [f])[0]) + log = filelog + lookup = filelog.lookup else: - for i in range(repo.changelog.count() - 1, -1, -1): - show_changeset(ui, repo, rev=i) + filelog = None + log = repo.changelog + lookup = repo.lookup + revlist = [] + revs = [log.rev(lookup(rev)) for rev in opts['rev']] + while revs: + if len(revs) == 1: + revlist.append(revs.pop(0)) + else: + a = revs.pop(0) + b = revs.pop(0) + off = a > b and -1 or 1 + revlist.extend(range(a, b + off, off)) + for i in revlist or range(log.count() - 1, -1, -1): + show_changeset(ui, repo, filelog=filelog, rev=i) def manifest(ui, repo, rev = []): """output the latest or given revision of the project manifest""" @@ -765,7 +777,9 @@ table = { ('b', 'base', "", 'base path')], "hg import [options] <patches>"), "init": (init, [], 'hg init'), - "log|history": (log, [], 'hg log [file]'), + "log|history": (log, + [('r', 'rev', [], 'revision')], + 'hg log [-r A] [-r B] [file]'), "manifest": (manifest, [], 'hg manifest [rev]'), "parents": (parents, [], 'hg parents [node]'), "pull": (pull,