Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 1014:e37cd99fa909
Clean up argument passing for dodiff
author | mpm@selenic.com |
---|---|
date | Tue, 23 Aug 2005 18:58:26 -0700 |
parents | 1b6eb272b238 |
children | 22571b8d35d3 |
comparison
equal
deleted
inserted
replaced
1013:2e8b8da9a86e | 1014:e37cd99fa909 |
---|---|
138 if hasattr(pat, 'read') and 'r' in mode: | 138 if hasattr(pat, 'read') and 'r' in mode: |
139 return pat | 139 return pat |
140 return open(make_filename(repo, r, pat, node, total, seqno, revwidth), | 140 return open(make_filename(repo, r, pat, node, total, seqno, revwidth), |
141 mode) | 141 mode) |
142 | 142 |
143 def dodiff(fp, ui, repo, files=None, node1=None, node2=None, match=util.always, changes=None): | 143 def dodiff(fp, ui, repo, node1, node2, files=None, match=util.always, |
144 changes=None): | |
144 def date(c): | 145 def date(c): |
145 return time.asctime(time.gmtime(float(c[2].split(' ')[0]))) | 146 return time.asctime(time.gmtime(float(c[2].split(' ')[0]))) |
146 | 147 |
147 if not changes: | 148 if not changes: |
148 (c, a, d, u) = repo.changes(node1, node2, files, match = match) | 149 (c, a, d, u) = repo.changes(node1, node2, files, match = match) |
645 """diff working directory (or selected files)""" | 646 """diff working directory (or selected files)""" |
646 revs = [] | 647 revs = [] |
647 if opts['rev']: | 648 if opts['rev']: |
648 revs = map(lambda x: repo.lookup(x), opts['rev']) | 649 revs = map(lambda x: repo.lookup(x), opts['rev']) |
649 | 650 |
651 node1, node2 = None, None | |
652 if len(revs) > 0: | |
653 node1 = revs[0] | |
654 if len(revs) > 1: | |
655 node2 = revs[1] | |
650 if len(revs) > 2: | 656 if len(revs) > 2: |
651 raise util.Abort("too many revisions to diff") | 657 raise util.Abort("too many revisions to diff") |
652 | 658 |
653 files = [] | 659 files = [] |
654 match = util.always | 660 match = util.always |
655 if pats: | 661 if pats: |
656 roots, match, results = makewalk(repo, pats, opts) | 662 roots, match, results = makewalk(repo, pats, opts) |
657 for src, abs, rel, exact in results: | 663 for src, abs, rel, exact in results: |
658 files.append(abs) | 664 files.append(abs) |
659 dodiff(sys.stdout, ui, repo, files, *revs, **{'match': match}) | 665 |
666 dodiff(sys.stdout, ui, repo, node1, node2, files, match=match) | |
660 | 667 |
661 def doexport(ui, repo, changeset, seqno, total, revwidth, opts): | 668 def doexport(ui, repo, changeset, seqno, total, revwidth, opts): |
662 node = repo.lookup(changeset) | 669 node = repo.lookup(changeset) |
663 prev, other = repo.changelog.parents(node) | 670 prev, other = repo.changelog.parents(node) |
664 change = repo.changelog.read(node) | 671 change = repo.changelog.read(node) |
676 if other != hg.nullid: | 683 if other != hg.nullid: |
677 fp.write("# Parent %s\n" % hg.hex(other)) | 684 fp.write("# Parent %s\n" % hg.hex(other)) |
678 fp.write(change[4].rstrip()) | 685 fp.write(change[4].rstrip()) |
679 fp.write("\n\n") | 686 fp.write("\n\n") |
680 | 687 |
681 dodiff(fp, ui, repo, None, prev, node) | 688 dodiff(fp, ui, repo, prev, node) |
682 if fp != sys.stdout: fp.close() | 689 if fp != sys.stdout: fp.close() |
683 | 690 |
684 def export(ui, repo, *changesets, **opts): | 691 def export(ui, repo, *changesets, **opts): |
685 """dump the header and diffs for one or more changesets""" | 692 """dump the header and diffs for one or more changesets""" |
686 if not changesets: | 693 if not changesets: |
859 if filelog: | 866 if filelog: |
860 filenode = filelog.node(i) | 867 filenode = filelog.node(i) |
861 i = filelog.linkrev(filenode) | 868 i = filelog.linkrev(filenode) |
862 changenode = repo.changelog.node(i) | 869 changenode = repo.changelog.node(i) |
863 prev, other = repo.changelog.parents(changenode) | 870 prev, other = repo.changelog.parents(changenode) |
864 dodiff(sys.stdout, ui, repo, files, prev, changenode) | 871 dodiff(sys.stdout, ui, repo, prev, changenode, files) |
865 ui.write("\n\n") | 872 ui.write("\n\n") |
866 | 873 |
867 def manifest(ui, repo, rev=None): | 874 def manifest(ui, repo, rev=None): |
868 """output the latest or given revision of the project manifest""" | 875 """output the latest or given revision of the project manifest""" |
869 if rev: | 876 if rev: |