comparison mercurial/commands.py @ 732:ba0b6d17a6de

Convert diff command over to using walk code.
author Bryan O'Sullivan <bos@serpentine.com>
date Wed, 20 Jul 2005 03:16:20 -0800
parents 91ca3afab8e8
children 1966c553f652
comparison
equal deleted inserted replaced
731:91ca3afab8e8 732:ba0b6d17a6de
547 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i)) 547 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i))
548 if e[5] != hg.nullid: 548 if e[5] != hg.nullid:
549 ui.write("\t%d -> %d\n" % (r.rev(e[5]), i)) 549 ui.write("\t%d -> %d\n" % (r.rev(e[5]), i))
550 ui.write("}\n") 550 ui.write("}\n")
551 551
552 def diff(ui, repo, *files, **opts): 552 def diff(ui, repo, *pats, **opts):
553 """diff working directory (or selected files)""" 553 """diff working directory (or selected files)"""
554 revs = [] 554 revs = []
555 if opts['rev']: 555 if opts['rev']:
556 revs = map(lambda x: repo.lookup(x), opts['rev']) 556 revs = map(lambda x: repo.lookup(x), opts['rev'])
557 557
558 if len(revs) > 2: 558 if len(revs) > 2:
559 raise Abort("too many revisions to diff") 559 raise Abort("too many revisions to diff")
560 560
561 if files: 561 files = []
562 files = relpath(repo, files) 562 for src, abs, rel in walk(repo, pats, opts):
563 else: 563 files.append(abs)
564 files = relpath(repo, [""])
565
566 dodiff(sys.stdout, ui, repo, files, *revs) 564 dodiff(sys.stdout, ui, repo, files, *revs)
567 565
568 def doexport(ui, repo, changeset, seqno, total, revwidth, opts): 566 def doexport(ui, repo, changeset, seqno, total, revwidth, opts):
569 node = repo.lookup(changeset) 567 node = repo.lookup(changeset)
570 prev, other = repo.changelog.parents(node) 568 prev, other = repo.changelog.parents(node)
1124 "debugstate": (debugstate, [], 'debugstate'), 1122 "debugstate": (debugstate, [], 'debugstate'),
1125 "debugindex": (debugindex, [], 'debugindex FILE'), 1123 "debugindex": (debugindex, [], 'debugindex FILE'),
1126 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'), 1124 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'),
1127 "^diff": 1125 "^diff":
1128 (diff, 1126 (diff,
1129 [('r', 'rev', [], 'revision')], 1127 [('I', 'include', [], 'include path in search'),
1128 ('X', 'exclude', [], 'exclude path from search'),
1129 ('r', 'rev', [], 'revision')],
1130 'hg diff [-r REV1 [-r REV2]] [FILE]...'), 1130 'hg diff [-r REV1 [-r REV2]] [FILE]...'),
1131 "^export": 1131 "^export":
1132 (export, 1132 (export,
1133 [('o', 'output', "", 'output to file')], 1133 [('o', 'output', "", 'output to file')],
1134 "hg export [-o OUTFILE] REV..."), 1134 "hg export [-o OUTFILE] REV..."),