Augie Fackler <augie@google.com> [Fri, 23 Jun 2017 15:30:27 -0400] rev 33020
merge with stable
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 00:40:58 +0900] rev 33019
revset: add startdepth limit to ancestors() as internal option
This is necessary to implement the set{gen} (set subscript) operator. For
example, set{-n} will be translated to ancestors(set, depth=n, startdepth=n).
https://www.mercurial-scm.org/wiki/RevsetOperatorPlan#ideas_from_mpm
The UI is undecided and I doubt if the startdepth option would be actually
useful, so the option is hidden for now. 'depth' could be extended to take
min:max range, in which case, integer depth should select a single generation.
ancestors(set, depth=:y) # scan up to y-th generation
ancestors(set, depth=x:) # skip until (x-1)-th generation
ancestors(set, depth=x) # select only x-th generation
Any ideas are welcomed.
# reverse(ancestors(tip)) using hg repo
3) 0.075951
4) 0.076175
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 00:22:41 +0900] rev 33018
revset: add depth limit to ancestors()
This is proposed by the issue5374, and will be a building block of set{gen}
(set subscript) operator.
https://www.mercurial-scm.org/wiki/RevsetOperatorPlan#ideas_from_mpm
# reverse(ancestors(tip)) using hg repo
2) 0.075408
3) 0.075951
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 00:11:48 +0900] rev 33017
dagop: compute depth in revancestors() generator
Surprisingly, this makes revset benchmark slightly faster. I don't know why,
but it appears that wrapping -inputrev by tuple is the key. So I decided to
just enable depth computation by default.
# reverse(ancestors(tip)) using hg repo
1) 0.081051
2) 0.075408
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 08:59:09 +0900] rev 33016
dagop: just compare with the last value to deduplicate input of revancestors()
Since we're using a max heap, the current rev should be a duplicate only
if it equals to the previous one. We don't have to maintain the whole seen
set.
# reverse(ancestors(tip)) using hg repo
0) 0.086420
1) 0.081051
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 17:22:57 +0900] rev 33015
dagop: bulk rename variables in revancestors() generator
- h -> pendingheap: "h" seems too short for variable of long lifetime
- current -> currev: future patches will add current "depth" variable
- parent -> prev or pctx: short lifetime, follows common naming rules
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 17:16:02 +0900] rev 33014
dagop: comment why revancestors() doesn't heapify input revs at once
I wondered why we're doing this complicated stuff without noticing the input
revs may be iterated lazily in descending order. c1f666e27345 showed why.
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Jun 2017 22:33:23 +0900] rev 33013
dagop: unnest inner generator of revancestors()
This just moves iterate() to module-level function.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 21 Jun 2017 17:17:17 +0200] rev 33012
hgweb: plug followlines action in annotate view
Add the followlines.js script and corresponding parameters as data attribute
on <tbody class="sourcelines"> element.
Extend CSS rules so that they also match the DOM structure of annotate view.
As previously, only address paper and gitweb styles (other styles do not have
followlines at all).
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 21 Jun 2017 17:07:51 +0200] rev 33011
hgweb: parameterize the tag name of elements holding followlines selection
While plugging followlines.js into "annotate" view, we'll need to walk a
different DOM structure from that of "filerevision" view. In particular, the
selectable source line element is a <tr> in annotate view (in contrast with a
<span> in filerevision view). So make this tag name a parameter of
followlines.js script by passing its value as a "selectabletag" data attribute
of <pre class="sourcelines"> element.
As <pre class="sourcelines"> tags are getting quite long in templates, rewrite
them on several lines.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 21 Jun 2017 17:02:21 +0200] rev 33010
gitweb: wrap table rows of annotate view into a <tbody> element
We will use this element to hook data attribute for the followlines.js script
to be plugged in annotate view. Also this gets symmetrical with paper style
which already has a <tbody> element.
Denis Laxalde <denis@laxalde.org> [Thu, 22 Jun 2017 11:16:29 +0200] rev 33009
tests: update regex check for fetch error in test-clonebundles.t
On some systems, e.g. Docker container, the actual error may be:
error fetching bundle: [Errno 99] Cannot assign requested address
Update the regex to handle this case.