Patrick Mezard <patrick@mezard.eu> [Tue, 08 May 2012 22:43:44 +0200] rev 16776
cmdutil: extract increasing_windows() from walkchangerevs()
It will be reused in the revset-based version.
Augie Fackler <raf@durin42.com> [Sat, 19 May 2012 09:34:25 -0500] rev 16775
httpclient: omit tests for the client since we don't run them anyway
Augie Fackler <raf@durin42.com> [Fri, 18 May 2012 17:05:17 -0500] rev 16774
httpclient: update to
c5abd358e543 of httpplus
Paul Boddie <paul@boddie.org.uk> [Mon, 21 May 2012 00:20:05 +0200] rev 16773
hgweb: make graph data suitable for template usage
Previously, graph data has been encoded for processing done by
JavaScript code run in the browser, employing simple structures
with implicit member positions. This patch modifies the graph
command to also produce data employing a dictionary-based
structure suitable for use with the templating mechanism, thus
permitting other ways of presenting repository graphs using that
mechanism.
In order to test these changes, the raw theme has been modified
to include templates for graph nodes and edges. In a similar
fashion, themes could employ technologies such as SVG that lend
themselves to templating to produce the graph display. This patch
makes use of a much simpler output representation than SVG in
order to maintain clarity.
Patrick Mezard <patrick@mezard.eu> [Sat, 19 May 2012 17:19:55 +0200] rev 16772
revset: fix infinite alias expansion detection
The alias expansion code it changed from:
1- Get replacement tree
2- Substitute arguments in the replacement tree
3- Expand the replacement tree again
into:
1- Get the replacement tree
2- Expand the replacement tree
3- Expand the arguments
4- Substitute the expanded arguments in the replacement tree
and fixes cases like:
[revsetalias]
level1($1, $2) = $1 or $2
level2($1, $2) = level1($2, $1)
$ hg log -r "level2(level1(1, 2), 3)"
where the original version incorrectly aborted on infinite expansion
error, because it was confusing the expanded aliases with their
arguments.
Patrick Mezard <patrick@mezard.eu> [Sat, 19 May 2012 17:18:29 +0200] rev 16771
revset: explicitely tag alias arguments for expansion
The current revset alias expansion code works like:
1- Get the replacement tree
2- Substitute the variables in the replacement tree
3- Expand the replacement tree
It makes it easy to substitute alias arguments because the placeholders
are always replaced before the updated replacement tree is expanded
again. Unfortunately, to fix other alias expansion issues, we need to
reorder the sequence and delay the argument substitution. To solve this,
a new "virtual" construct called _aliasarg() is introduced and injected
when parsing the aliases definitions. Only _aliasarg() will be
substituted in the argument expansion phase instead of all regular
matching string. We also check user inputs do not contain unexpected
_aliasarg() instances to avoid argument injections.
Augie Fackler <raf@durin42.com> [Mon, 21 May 2012 14:25:46 -0500] rev 16770
clone: add progress calls to uncompressed code path