# HG changeset patch # User Alexander Solovyov # Date 1303563855 -7200 # Node ID 1c1e1232abdccec2f56e7b3e01899da118eb938f # Parent 9966c95b8c4f422fc74941f971e7b22669ca3fb8 graphlog: make use of graphmod's revset support diff -r 9966c95b8c4f -r 1c1e1232abdc hgext/graphlog.py --- a/hgext/graphlog.py Sun Mar 13 15:53:38 2011 +0100 +++ b/hgext/graphlog.py Sat Apr 23 15:04:15 2011 +0200 @@ -12,7 +12,6 @@ revision graph is also shown. ''' -import os from mercurial.cmdutil import revrange, show_changeset from mercurial.commands import templateopts from mercurial.i18n import _ @@ -216,13 +215,46 @@ return (len(repo) - 1, 0) def check_unsupported_flags(opts): - for op in ["follow", "follow_first", "date", "copies", "keyword", "remove", - "only_merges", "user", "branch", "only_branch", "prune", - "newest_first", "no_merges", "include", "exclude"]: + for op in ["follow_first", "copies", "newest_first"]: if op in opts and opts[op]: - raise util.Abort(_("--graph option is incompatible with --%s") + raise util.Abort(_("-G/--graph option is incompatible with --%s") % op.replace("_", "-")) +def revset(pats, opts): + """Return revset str built of revisions, log options and file patterns. + """ + opt2revset = dict(only_merges='merge', + only_branch='branch', + no_merges='not merge', + include='file', + exclude='not file', + prune='not follow') + revset = [] + for op, val in opts.iteritems(): + if not val: + continue + revop = opt2revset.get(op, op) + if op in ('follow', 'only_merges', 'no_merges'): + revset.append('%s()' % revop) + elif op in ("date", "keyword", "remove", "user", "branch", + "only_branch", "prune"): + revset.append('%s(%s)' % (op, val)) + elif op in ('include', 'exclude'): + for f in val: + revset.append('%s(%r)' % (op, f)) + elif op == 'rev': + revset.extend(val) + + for path in pats: + revset.append('file(%r)' % path) + + revset = ' and '.join(revset) or 'all()' + # we want reverted revset to build graph + revset = 'reverse(%s)' % revset + if opts['limit']: + revset = 'limit(%s, %s)' % (revset, opts['limit']) + return revset + def generate(ui, dag, displayer, showparents, edgefn): seen, state = [], asciistate() for rev, type, ctx, parents in dag: @@ -233,7 +265,7 @@ ascii(ui, state, type, char, lines, edgefn(seen, rev, parents)) displayer.close() -def graphlog(ui, repo, path=None, **opts): +def graphlog(ui, repo, *pats, **opts): """show revision history alongside an ASCII revision graph Print a revision history alongside a revision graph drawn with @@ -244,17 +276,9 @@ """ check_unsupported_flags(opts) - limit = cmdutil.loglimit(opts) - start, stop = get_revs(repo, opts["rev"]) - if start == nullrev: - return - if path: # could be reset in canonpath - revdag = graphmod.filerevs(repo, path, start, stop, limit) - else: - if limit is not None: - stop = max(stop, start - limit + 1) - revdag = graphmod.revisions(repo, start, stop) + revs = revrange(repo, [revset(pats, opts)]) + revdag = graphmod.dagwalker(repo, revs) displayer = show_changeset(ui, repo, opts, buffered=True) showparents = [ctx.node() for ctx in repo[None].parents()] @@ -317,12 +341,7 @@ '''wrap the command''' def graph(orig, *args, **kwargs): if kwargs['graph']: - try: - return wrapfn(*args, **kwargs) - except TypeError, e: - if len(args) > wrapfn.func_code.co_argcount: - raise util.Abort(_('--graph option allows at most one file')) - raise + return wrapfn(*args, **kwargs) return orig(*args, **kwargs) entry = extensions.wrapcommand(table, cmd, graph) entry[1].append(('G', 'graph', None, _("show the revision DAG"))) diff -r 9966c95b8c4f -r 1c1e1232abdc mercurial/graphmod.py --- a/mercurial/graphmod.py Sun Mar 13 15:53:38 2011 +0100 +++ b/mercurial/graphmod.py Sat Apr 23 15:04:15 2011 +0200 @@ -22,20 +22,6 @@ CHANGESET = 'C' -def revisions(repo, start, end): - """DAG generator for revisions between start and end - """ - revset = '%s:%s' % (start, end) - return dagwalker(repo, revrange(repo, [revset])) - -def filerevs(repo, path, start, stop, limit=None): - """DAG generator, which is limited by file passed - """ - revset = '%s:%s and file("%s")' % (start, stop, path) - if limit: - revset = 'limit(%s, %s)' % (revset, limit) - return dagwalker(repo, revrange(repo, [revset])) - def dagwalker(repo, revs): """cset DAG generator yielding (id, CHANGESET, ctx, [parentids]) tuples diff -r 9966c95b8c4f -r 1c1e1232abdc mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py Sun Mar 13 15:53:38 2011 +0100 +++ b/mercurial/hgweb/webcommands.py Sat Apr 23 15:04:15 2011 +0200 @@ -755,7 +755,7 @@ if rev < web.maxshortchanges: startrev = uprev - dag = graphmod.revisions(web.repo, startrev, downrev) + dag = graphmod.dagwalker(web.repo, range(startrev, downrev - 1, -1)) tree = list(graphmod.colored(dag)) canvasheight = (len(tree) + 1) * bg_height - 27 data = [] diff -r 9966c95b8c4f -r 1c1e1232abdc tests/test-glog.t --- a/tests/test-glog.t Sun Mar 13 15:53:38 2011 +0100 +++ b/tests/test-glog.t Sat Apr 23 15:04:15 2011 +0200 @@ -678,18 +678,438 @@ summary: (0) root -Unused arguments: - $ hg glog -q foo bar - hg glog: invalid arguments - hg glog [OPTION]... [FILE] +File glog per revset: + + $ hg glog -r 'file("a")' + @ changeset: 34:fea3ac5810e0 + | tag: tip + | parent: 32:d06dffa21a31 + | user: test + | date: Thu Jan 01 00:00:34 1970 +0000 + | summary: (34) head + | + | o changeset: 33:68608f5145f9 + | | parent: 18:1aa84d96232a + | | user: test + | | date: Thu Jan 01 00:00:33 1970 +0000 + | | summary: (33) head + | | + o | changeset: 32:d06dffa21a31 + |\ \ parent: 27:886ed638191b + | | | parent: 31:621d83e11f67 + | | | user: test + | | | date: Thu Jan 01 00:00:32 1970 +0000 + | | | summary: (32) expand + | | | + | o | changeset: 31:621d83e11f67 + | |\ \ parent: 21:d42a756af44d + | | | | parent: 30:6e11cd4b648f + | | | | user: test + | | | | date: Thu Jan 01 00:00:31 1970 +0000 + | | | | summary: (31) expand + | | | | + | | o | changeset: 30:6e11cd4b648f + | | |\ \ parent: 28:44ecd0b9ae99 + | | | | | parent: 29:cd9bb2be7593 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:30 1970 +0000 + | | | | | summary: (30) expand + | | | | | + | | | o | changeset: 29:cd9bb2be7593 + | | | | | parent: 0:e6eb3150255d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:29 1970 +0000 + | | | | | summary: (29) regular commit + | | | | | + | | o | | changeset: 28:44ecd0b9ae99 + | | |\ \ \ parent: 1:6db2ef61d156 + | | | | | | parent: 26:7f25b6c2f0b9 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:28 1970 +0000 + | | | | | | summary: (28) merge zero known + | | | | | | + o | | | | | changeset: 27:886ed638191b + |/ / / / / parent: 21:d42a756af44d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:27 1970 +0000 + | | | | | summary: (27) collapse + | | | | | + | | o---+ changeset: 26:7f25b6c2f0b9 + | | | | | parent: 18:1aa84d96232a + | | | | | parent: 25:91da8ed57247 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:26 1970 +0000 + | | | | | summary: (26) merge one known; far right + | | | | | + +---o | | changeset: 25:91da8ed57247 + | | | | | parent: 21:d42a756af44d + | | | | | parent: 24:a9c19a3d96b7 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:25 1970 +0000 + | | | | | summary: (25) merge one known; far left + | | | | | + | | o | | changeset: 24:a9c19a3d96b7 + | | |\| | parent: 0:e6eb3150255d + | | | | | parent: 23:a01cddf0766d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:24 1970 +0000 + | | | | | summary: (24) merge one known; immediate right + | | | | | + | | o | | changeset: 23:a01cddf0766d + | |/| | | parent: 1:6db2ef61d156 + | | | | | parent: 22:e0d9cccacb5d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:23 1970 +0000 + | | | | | summary: (23) merge one known; immediate left + | | | | | + +---o---+ changeset: 22:e0d9cccacb5d + | | | | parent: 18:1aa84d96232a + | | / / parent: 21:d42a756af44d + | | | | user: test + | | | | date: Thu Jan 01 00:00:22 1970 +0000 + | | | | summary: (22) merge two known; one far left, one far right + | | | | + o | | | changeset: 21:d42a756af44d + |\ \ \ \ parent: 19:31ddc2c1573b + | | | | | parent: 20:d30ed6450e32 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:21 1970 +0000 + | | | | | summary: (21) expand + | | | | | + | o---+-+ changeset: 20:d30ed6450e32 + | | | | parent: 0:e6eb3150255d + | / / / parent: 18:1aa84d96232a + | | | | user: test + | | | | date: Thu Jan 01 00:00:20 1970 +0000 + | | | | summary: (20) merge two known; two far right + | | | | + o | | | changeset: 19:31ddc2c1573b + |\ \ \ \ parent: 15:1dda3f72782d + | | | | | parent: 17:44765d7c06e0 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:19 1970 +0000 + | | | | | summary: (19) expand + | | | | | + +---+---o changeset: 18:1aa84d96232a + | | | | parent: 1:6db2ef61d156 + | | | | parent: 15:1dda3f72782d + | | | | user: test + | | | | date: Thu Jan 01 00:00:18 1970 +0000 + | | | | summary: (18) merge two known; two far left + | | | | + | o | | changeset: 17:44765d7c06e0 + | |\ \ \ parent: 12:86b91144a6e9 + | | | | | parent: 16:3677d192927d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:17 1970 +0000 + | | | | | summary: (17) expand + | | | | | + | | o---+ changeset: 16:3677d192927d + | | | | | parent: 0:e6eb3150255d + | | |/ / parent: 1:6db2ef61d156 + | | | | user: test + | | | | date: Thu Jan 01 00:00:16 1970 +0000 + | | | | summary: (16) merge two known; one immediate right, one near right + | | | | + o | | | changeset: 15:1dda3f72782d + |\ \ \ \ parent: 13:22d8966a97e3 + | | | | | parent: 14:8eac370358ef + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:15 1970 +0000 + | | | | | summary: (15) expand + | | | | | + | o-----+ changeset: 14:8eac370358ef + | | | | | parent: 0:e6eb3150255d + | |/ / / parent: 12:86b91144a6e9 + | | | | user: test + | | | | date: Thu Jan 01 00:00:14 1970 +0000 + | | | | summary: (14) merge two known; one immediate right, one far right + | | | | + o | | | changeset: 13:22d8966a97e3 + |\ \ \ \ parent: 9:7010c0af0a35 + | | | | | parent: 11:832d76e6bdf2 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:13 1970 +0000 + | | | | | summary: (13) expand + | | | | | + +---o | | changeset: 12:86b91144a6e9 + | | |/ / parent: 1:6db2ef61d156 + | | | | parent: 9:7010c0af0a35 + | | | | user: test + | | | | date: Thu Jan 01 00:00:12 1970 +0000 + | | | | summary: (12) merge two known; one immediate right, one far left + | | | | + | o | | changeset: 11:832d76e6bdf2 + | |\ \ \ parent: 6:b105a072e251 + | | | | | parent: 10:74c64d036d72 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:11 1970 +0000 + | | | | | summary: (11) expand + | | | | | + | | o---+ changeset: 10:74c64d036d72 + | | | | | parent: 0:e6eb3150255d + | |/ / / parent: 6:b105a072e251 + | | | | user: test + | | | | date: Thu Jan 01 00:00:10 1970 +0000 + | | | | summary: (10) merge two known; one immediate left, one near right + | | | | + o | | | changeset: 9:7010c0af0a35 + |\ \ \ \ parent: 7:b632bb1b1224 + | | | | | parent: 8:7a0b11f71937 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:09 1970 +0000 + | | | | | summary: (9) expand + | | | | | + | o-----+ changeset: 8:7a0b11f71937 + | | | | | parent: 0:e6eb3150255d + |/ / / / parent: 7:b632bb1b1224 + | | | | user: test + | | | | date: Thu Jan 01 00:00:08 1970 +0000 + | | | | summary: (8) merge two known; one immediate left, one far right + | | | | + o | | | changeset: 7:b632bb1b1224 + |\ \ \ \ parent: 2:3d9a33b8d1e1 + | | | | | parent: 5:4409d547b708 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:07 1970 +0000 + | | | | | summary: (7) expand + | | | | | + +---o | | changeset: 6:b105a072e251 + | |/ / / parent: 2:3d9a33b8d1e1 + | | | | parent: 5:4409d547b708 + | | | | user: test + | | | | date: Thu Jan 01 00:00:06 1970 +0000 + | | | | summary: (6) merge two known; one immediate left, one far left + | | | | + | o | | changeset: 5:4409d547b708 + | |\ \ \ parent: 3:27eef8ed80b4 + | | | | | parent: 4:26a8bac39d9f + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:05 1970 +0000 + | | | | | summary: (5) expand + | | | | | + | | o | | changeset: 4:26a8bac39d9f + | |/|/ / parent: 1:6db2ef61d156 + | | | | parent: 3:27eef8ed80b4 + | | | | user: test + | | | | date: Thu Jan 01 00:00:04 1970 +0000 + | | | | summary: (4) merge two known; one immediate left, one immediate right + | | | | + | o | | changeset: 3:27eef8ed80b4 + |/ / / user: test + | | | date: Thu Jan 01 00:00:03 1970 +0000 + | | | summary: (3) collapse + | | | + o | | changeset: 2:3d9a33b8d1e1 + |/ / user: test + | | date: Thu Jan 01 00:00:02 1970 +0000 + | | summary: (2) collapse + | | + o | changeset: 1:6db2ef61d156 + |/ user: test + | date: Thu Jan 01 00:00:01 1970 +0000 + | summary: (1) collapse + | + o changeset: 0:e6eb3150255d + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: (0) root - show revision history alongside an ASCII revision graph - [255] + + +File glog per revset (only merges): -Only one file is allowed: - $ hg log -G foo bar - abort: --graph option allows at most one file - [255] + $ hg log -G -r 'file("a")' -m + o changeset: 32:d06dffa21a31 + |\ parent: 27:886ed638191b + | | parent: 31:621d83e11f67 + | | user: test + | | date: Thu Jan 01 00:00:32 1970 +0000 + | | summary: (32) expand + | | + o | changeset: 31:621d83e11f67 + |\| parent: 21:d42a756af44d + | | parent: 30:6e11cd4b648f + | | user: test + | | date: Thu Jan 01 00:00:31 1970 +0000 + | | summary: (31) expand + | | + o | changeset: 30:6e11cd4b648f + |\ \ parent: 28:44ecd0b9ae99 + | | | parent: 29:cd9bb2be7593 + | | | user: test + | | | date: Thu Jan 01 00:00:30 1970 +0000 + | | | summary: (30) expand + | | | + o | | changeset: 28:44ecd0b9ae99 + |\ \ \ parent: 1:6db2ef61d156 + | | | | parent: 26:7f25b6c2f0b9 + | | | | user: test + | | | | date: Thu Jan 01 00:00:28 1970 +0000 + | | | | summary: (28) merge zero known + | | | | + o | | | changeset: 26:7f25b6c2f0b9 + |\ \ \ \ parent: 18:1aa84d96232a + | | | | | parent: 25:91da8ed57247 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:26 1970 +0000 + | | | | | summary: (26) merge one known; far right + | | | | | + | o-----+ changeset: 25:91da8ed57247 + | | | | | parent: 21:d42a756af44d + | | | | | parent: 24:a9c19a3d96b7 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:25 1970 +0000 + | | | | | summary: (25) merge one known; far left + | | | | | + | o | | | changeset: 24:a9c19a3d96b7 + | |\ \ \ \ parent: 0:e6eb3150255d + | | | | | | parent: 23:a01cddf0766d + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:24 1970 +0000 + | | | | | | summary: (24) merge one known; immediate right + | | | | | | + | o---+ | | changeset: 23:a01cddf0766d + | | | | | | parent: 1:6db2ef61d156 + | | | | | | parent: 22:e0d9cccacb5d + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:23 1970 +0000 + | | | | | | summary: (23) merge one known; immediate left + | | | | | | + | o-------+ changeset: 22:e0d9cccacb5d + | | | | | | parent: 18:1aa84d96232a + |/ / / / / parent: 21:d42a756af44d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:22 1970 +0000 + | | | | | summary: (22) merge two known; one far left, one far right + | | | | | + | | | | o changeset: 21:d42a756af44d + | | | | |\ parent: 19:31ddc2c1573b + | | | | | | parent: 20:d30ed6450e32 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:21 1970 +0000 + | | | | | | summary: (21) expand + | | | | | | + +-+-------o changeset: 20:d30ed6450e32 + | | | | | parent: 0:e6eb3150255d + | | | | | parent: 18:1aa84d96232a + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:20 1970 +0000 + | | | | | summary: (20) merge two known; two far right + | | | | | + | | | | o changeset: 19:31ddc2c1573b + | | | | |\ parent: 15:1dda3f72782d + | | | | | | parent: 17:44765d7c06e0 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:19 1970 +0000 + | | | | | | summary: (19) expand + | | | | | | + o---+---+ | changeset: 18:1aa84d96232a + | | | | | parent: 1:6db2ef61d156 + / / / / / parent: 15:1dda3f72782d + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:18 1970 +0000 + | | | | | summary: (18) merge two known; two far left + | | | | | + | | | | o changeset: 17:44765d7c06e0 + | | | | |\ parent: 12:86b91144a6e9 + | | | | | | parent: 16:3677d192927d + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:17 1970 +0000 + | | | | | | summary: (17) expand + | | | | | | + +-+-------o changeset: 16:3677d192927d + | | | | | parent: 0:e6eb3150255d + | | | | | parent: 1:6db2ef61d156 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:16 1970 +0000 + | | | | | summary: (16) merge two known; one immediate right, one near right + | | | | | + | | | o | changeset: 15:1dda3f72782d + | | | |\ \ parent: 13:22d8966a97e3 + | | | | | | parent: 14:8eac370358ef + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:15 1970 +0000 + | | | | | | summary: (15) expand + | | | | | | + +-------o | changeset: 14:8eac370358ef + | | | | |/ parent: 0:e6eb3150255d + | | | | | parent: 12:86b91144a6e9 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:14 1970 +0000 + | | | | | summary: (14) merge two known; one immediate right, one far right + | | | | | + | | | o | changeset: 13:22d8966a97e3 + | | | |\ \ parent: 9:7010c0af0a35 + | | | | | | parent: 11:832d76e6bdf2 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:13 1970 +0000 + | | | | | | summary: (13) expand + | | | | | | + | +---+---o changeset: 12:86b91144a6e9 + | | | | | parent: 1:6db2ef61d156 + | | | | | parent: 9:7010c0af0a35 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:12 1970 +0000 + | | | | | summary: (12) merge two known; one immediate right, one far left + | | | | | + | | | | o changeset: 11:832d76e6bdf2 + | | | | |\ parent: 6:b105a072e251 + | | | | | | parent: 10:74c64d036d72 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:11 1970 +0000 + | | | | | | summary: (11) expand + | | | | | | + +---------o changeset: 10:74c64d036d72 + | | | | |/ parent: 0:e6eb3150255d + | | | | | parent: 6:b105a072e251 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:10 1970 +0000 + | | | | | summary: (10) merge two known; one immediate left, one near right + | | | | | + | | | o | changeset: 9:7010c0af0a35 + | | | |\ \ parent: 7:b632bb1b1224 + | | | | | | parent: 8:7a0b11f71937 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:09 1970 +0000 + | | | | | | summary: (9) expand + | | | | | | + +-------o | changeset: 8:7a0b11f71937 + | | | |/ / parent: 0:e6eb3150255d + | | | | | parent: 7:b632bb1b1224 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:08 1970 +0000 + | | | | | summary: (8) merge two known; one immediate left, one far right + | | | | | + | | | o | changeset: 7:b632bb1b1224 + | | | |\ \ parent: 2:3d9a33b8d1e1 + | | | | | | parent: 5:4409d547b708 + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:07 1970 +0000 + | | | | | | summary: (7) expand + | | | | | | + | | | +---o changeset: 6:b105a072e251 + | | | | |/ parent: 2:3d9a33b8d1e1 + | | | | | parent: 5:4409d547b708 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:06 1970 +0000 + | | | | | summary: (6) merge two known; one immediate left, one far left + | | | | | + | | | o | changeset: 5:4409d547b708 + | | | |\ \ parent: 3:27eef8ed80b4 + | | | | | | parent: 4:26a8bac39d9f + | | | | | | user: test + | | | | | | date: Thu Jan 01 00:00:05 1970 +0000 + | | | | | | summary: (5) expand + | | | | | | + | +---o | | changeset: 4:26a8bac39d9f + | | | |/ / parent: 1:6db2ef61d156 + | | | | | parent: 3:27eef8ed80b4 + | | | | | user: test + | | | | | date: Thu Jan 01 00:00:04 1970 +0000 + | | | | | summary: (4) merge two known; one immediate left, one immediate right + | | | | | + Empty revision range - display nothing: $ hg glog -r 1..0 @@ -868,7 +1288,26 @@ | | | summary: (32) expand | | | +Point out a common and an uncommon unshown parent + + $ hg glog -r 'rev(8) or rev(9)' + o changeset: 9:7010c0af0a35 + |\ parent: 7:b632bb1b1224 + | | parent: 8:7a0b11f71937 + | | user: test + | | date: Thu Jan 01 00:00:09 1970 +0000 + | | summary: (9) expand + | | + o | changeset: 8:7a0b11f71937 + |\| parent: 0:e6eb3150255d + | | parent: 7:b632bb1b1224 + | | user: test + | | date: Thu Jan 01 00:00:08 1970 +0000 + | | summary: (8) merge two known; one immediate left, one far right + | | + File + limit + -ra:b, b < tip: + $ hg glog -l1 -r32:34 a o changeset: 34:fea3ac5810e0 | parent: 32:d06dffa21a31 @@ -877,7 +1316,33 @@ | summary: (34) head | +file(File) + limit + -ra:b, b < tip: + + $ hg glog -l1 -r32:34 -r 'file("a")' + o changeset: 34:fea3ac5810e0 + | parent: 32:d06dffa21a31 + | user: test + | date: Thu Jan 01 00:00:34 1970 +0000 + | summary: (34) head + | + +limit(file(File) and a::b), b < tip: + + $ hg glog -r 'limit(file("a") and 32::34, 1)' + o changeset: 32:d06dffa21a31 + |\ parent: 27:886ed638191b + | | parent: 31:621d83e11f67 + | | user: test + | | date: Thu Jan 01 00:00:32 1970 +0000 + | | summary: (32) expand + | | + +File + limit + -ra:b, b < tip: + + $ hg glog -r 'limit(file("a") and 34::32, 1)' + File + limit + -ra:b, b < tip, (b - a) < limit: + $ hg glog -l10 -r33:34 a o changeset: 34:fea3ac5810e0 | parent: 32:d06dffa21a31