mercurial/commands.py
changeset 552 2204311609a0
parent 547 4fc63e22b1fe
child 553 f2442a6a5893
equal deleted inserted replaced
547:4fc63e22b1fe 552:2204311609a0
   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]'),