mercurial/commands.py
changeset 612 9cd745437269
parent 610 4c02464cb9f0
child 613 5374955ec5b1
equal deleted inserted replaced
611:48c3eb2bf844 612:9cd745437269
   633     repo = hg.repository(ui, ".", create=1)
   633     repo = hg.repository(ui, ".", create=1)
   634 
   634 
   635 def log(ui, repo, f=None, **opts):
   635 def log(ui, repo, f=None, **opts):
   636     """show the revision history of the repository or a single file"""
   636     """show the revision history of the repository or a single file"""
   637     if f:
   637     if f:
   638         filelog = repo.file(relpath(repo, [f])[0])
   638         files = relpath(repo, [f])
       
   639         filelog = repo.file(files[0])
   639         log = filelog
   640         log = filelog
   640         lookup = filelog.lookup
   641         lookup = filelog.lookup
   641     else:
   642     else:
       
   643         files = None
   642         filelog = None
   644         filelog = None
   643         log = repo.changelog
   645         log = repo.changelog
   644         lookup = repo.lookup
   646         lookup = repo.lookup
   645     revlist = []
   647     revlist = []
   646     revs = [log.rev(lookup(rev)) for rev in opts['rev']]
   648     revs = [log.rev(lookup(rev)) for rev in opts['rev']]
   653             off = a > b and -1 or 1
   655             off = a > b and -1 or 1
   654             revlist.extend(range(a, b + off, off))
   656             revlist.extend(range(a, b + off, off))
   655 
   657 
   656     for i in revlist or range(log.count() - 1, -1, -1):
   658     for i in revlist or range(log.count() - 1, -1, -1):
   657         show_changeset(ui, repo, filelog=filelog, rev=i)
   659         show_changeset(ui, repo, filelog=filelog, rev=i)
       
   660         if opts['patch']:
       
   661             if filelog:
       
   662                 filenode = filelog.node(i)
       
   663                 i = filelog.linkrev(filenode)
       
   664             changenode = repo.changelog.node(i)
       
   665             prev, other = repo.changelog.parents(changenode)
       
   666             dodiff(sys.stdout, ui, repo, files, prev, changenode)
       
   667             ui.write("\n")
       
   668         ui.write("\n")
   658 
   669 
   659 def manifest(ui, repo, rev = []):
   670 def manifest(ui, repo, rev = []):
   660     """output the latest or given revision of the project manifest"""
   671     """output the latest or given revision of the project manifest"""
   661     n = repo.manifest.tip()
   672     n = repo.manifest.tip()
   662     if rev:
   673     if rev:
   975                      [('p', 'strip', 1, 'path strip'),
   986                      [('p', 'strip', 1, 'path strip'),
   976                       ('b', 'base', "", 'base path')],
   987                       ('b', 'base', "", 'base path')],
   977                      "hg import [options] <patches>"),
   988                      "hg import [options] <patches>"),
   978     "^init": (init, [], 'hg init'),
   989     "^init": (init, [], 'hg init'),
   979     "^log|history": (log,
   990     "^log|history": (log,
   980                     [('r', 'rev', [], 'revision')],
   991                     [('r', 'rev', [], 'revision'),
   981                     'hg log [-r A] [-r B] [file]'),
   992                      ('p', 'patch', None, 'show patch')],
       
   993                     'hg log [-r A] [-r B] [-p] [file]'),
   982     "manifest": (manifest, [], 'hg manifest [rev]'),
   994     "manifest": (manifest, [], 'hg manifest [rev]'),
   983     "parents": (parents, [], 'hg parents [node]'),
   995     "parents": (parents, [], 'hg parents [node]'),
   984     "^pull": (pull,
   996     "^pull": (pull,
   985                   [('u', 'update', None, 'update working directory')],
   997                   [('u', 'update', None, 'update working directory')],
   986                   'hg pull [options] [source]'),
   998                   'hg pull [options] [source]'),