513 if source: |
513 if source: |
514 ui.warn("no longer supported: use \"hg clone\" instead\n") |
514 ui.warn("no longer supported: use \"hg clone\" instead\n") |
515 sys.exit(1) |
515 sys.exit(1) |
516 repo = hg.repository(ui, ".", create=1) |
516 repo = hg.repository(ui, ".", create=1) |
517 |
517 |
518 def log(ui, repo, f = None): |
518 def log(ui, repo, f=None, **opts): |
519 """show the revision history of the repository or a single file""" |
519 """show the revision history of the repository or a single file""" |
520 if f: |
520 if f: |
521 f = relpath(repo, [f])[0] |
521 filelog = repo.file(relpath(repo, [f])[0]) |
522 r = repo.file(f) |
522 log = filelog |
523 for i in range(r.count() - 1, -1, -1): |
523 lookup = filelog.lookup |
524 show_changeset(ui, repo, filelog=r, rev=i) |
524 else: |
525 else: |
525 filelog = None |
526 for i in range(repo.changelog.count() - 1, -1, -1): |
526 log = repo.changelog |
527 show_changeset(ui, repo, rev=i) |
527 lookup = repo.lookup |
|
528 revlist = [] |
|
529 revs = [log.rev(lookup(rev)) for rev in opts['rev']] |
|
530 while revs: |
|
531 if len(revs) == 1: |
|
532 revlist.append(revs.pop(0)) |
|
533 else: |
|
534 a = revs.pop(0) |
|
535 b = revs.pop(0) |
|
536 off = a > b and -1 or 1 |
|
537 revlist.extend(range(a, b + off, off)) |
|
538 for i in revlist or range(log.count() - 1, -1, -1): |
|
539 show_changeset(ui, repo, filelog=filelog, rev=i) |
528 |
540 |
529 def manifest(ui, repo, rev = []): |
541 def manifest(ui, repo, rev = []): |
530 """output the latest or given revision of the project manifest""" |
542 """output the latest or given revision of the project manifest""" |
531 n = repo.manifest.tip() |
543 n = repo.manifest.tip() |
532 if rev: |
544 if rev: |
763 "import|patch": (import_, |
775 "import|patch": (import_, |
764 [('p', 'strip', 1, 'path strip'), |
776 [('p', 'strip', 1, 'path strip'), |
765 ('b', 'base', "", 'base path')], |
777 ('b', 'base', "", 'base path')], |
766 "hg import [options] <patches>"), |
778 "hg import [options] <patches>"), |
767 "init": (init, [], 'hg init'), |
779 "init": (init, [], 'hg init'), |
768 "log|history": (log, [], 'hg log [file]'), |
780 "log|history": (log, |
|
781 [('r', 'rev', [], 'revision')], |
|
782 'hg log [-r A] [-r B] [file]'), |
769 "manifest": (manifest, [], 'hg manifest [rev]'), |
783 "manifest": (manifest, [], 'hg manifest [rev]'), |
770 "parents": (parents, [], 'hg parents [node]'), |
784 "parents": (parents, [], 'hg parents [node]'), |
771 "pull": (pull, |
785 "pull": (pull, |
772 [('u', 'update', None, 'update working directory')], |
786 [('u', 'update', None, 'update working directory')], |
773 'hg pull [options] [source]'), |
787 'hg pull [options] [source]'), |