Durham Goode <durham@fb.com> [Tue, 13 Sep 2016 16:25:21 -0700] rev 29938
manifest: add manifestctx.readdelta()
This adds an implementation of readdelta to the new manifestctx class and adds a
couple consumers of it. This currently appears to have some duplicate code, but
future patches cause this function to diverge when things like "shallow" are
introduced.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 14 Sep 2016 17:12:39 +0200] rev 29937
merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 13 Sep 2016 13:49:42 -0700] rev 29936
rebase: make debug logging more consistent
We emit some lines that mix revision numbers with nodeids, which makes
little sense to me.
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Jun 2016 18:41:28 +0900] rev 29935
revset: fix order of nested '_(|int|hex)list' expression (BC)
This fixes the order of 'x & (y + z)' where 'y' and 'z' are trivial, and the
other uses of _list()-family functions. The original functions are renamed to
'_ordered(|int|hex)list' to say clearly that they do not follow the subset
ordering.
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Jun 2016 18:17:12 +0900] rev 29934
revset: fix order of nested 'or' expression (BC)
This fixes the order of 'x & (y + z)' where 'y' and 'z' are not trivial.
The follow-order 'or' operation is slower than the ordered operation if
an input set is large:
#0 #1 #2 #3
0) 0.002968 0.002980 0.002982 0.073042
1) 0.004513 0.004485 0.012029 0.075261
#0: 0:4000 & (0:1099 + 1000:2099 + 2000:3099)
#1: 4000:0 & (0:1099 + 1000:2099 + 2000:3099)
#2: 10000:0 & (0:1099 + 1000:2099 + 2000:3099)
#3: file("path:hg") & (0:1099 + 1000:2099 + 2000:3099)
I've tried another implementation, but which appeared to be slower than
this version.
ss = [getset(repo, fullreposet(repo), x) for x in xs]
return subset.filter(lambda r: any(r in s for s in ss), cache=False)
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Aug 2016 17:58:50 +0900] rev 29933
revset: add 'takeorder' attribute to mark functions that need ordering flag
Since most functions shouldn't need 'order' flag, it is passed only when
explicitly required. This avoids large API breakage.