Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 612:9cd745437269
On Sat, Jul 02, 2005 at 02:11:34PM -0700, Matt Mackall wrote:
# HG changeset patch
# User Alecs King <alecsk@gmail.com>
On Sat, Jul 02, 2005 at 02:11:34PM -0700, Matt Mackall wrote:
> On Sun, Jul 03, 2005 at 12:49:27AM +0800, Alecs King wrote:
> > Hg is really very nice. The only feature i miss from git is the
> > whatchanged -p, which shows a diff along with a changeset.
> > python before, i just dig into the mercurial/commands.py a while and
> > see what diff(), dodiff(), export(), show_changeset(), log() would
> > normally do. There might be one thing or two missed or wrong. But here
> > it is: a '-d' option to 'hg log' showing the diff info. You can use 'hg
> > log -d' to show the whole history with the diff or 'hg log -d <file>' to
> > show that info of a particular file. And also works with the '-r'
> > option.
>
> Let's use -p. We're going to be combining the global and per command
> switch namespace shortly and the global -p will disappear.
Okay. '-d' changed to '-p'. Just like 'whatchanged -p', now we have
'hg log -p'.
> Also, the argument list for show_changeset is getting a bit unwieldy.
This time i remain show_changeset untouched at all. Only changed some
bits of log().
author | Alecs King <alecsk@gmail.com> |
---|---|
date | Mon, 04 Jul 2005 12:15:44 -0800 |
parents | 4c02464cb9f0 |
children | 5374955ec5b1 |
comparison
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]'), |