Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 12:49:32 -0700] rev 25352
test: use bundle2 for exchange in test-bookmark-pushpull
This lets us adapt to changes in obsmarkers exchange output earlier.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 04:21:39 -0700] rev 25351
test: use bundle2 for exchange in test-obsolete
The bundle2 version of obsmarkers exchange is more informative. Switching to
bundle2 by default will change the output of this tests. To reduce the noise
when switching bundle2 to the default protocol, we migrate this tests early.
Laurent Charignon <lcharignon@fb.com> [Fri, 29 May 2015 10:34:12 -0700] rev 25350
revert: remove unused debug code in the test file
I left a test environment variable in a previous commit and it is doing nothing
useful. This patch removes it.
Ryan McElroy <rmcelroy@fb.com> [Thu, 28 May 2015 20:06:19 -0700] rev 25349
commands: rename current to active in variables and comments
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.
Ryan McElroy <rmcelroy@fb.com> [Thu, 28 May 2015 20:03:42 -0700] rev 25348
templatekw: introduce active subkeyword from bookmarks keyword
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.
Ryan McElroy <rmcelroy@fb.com> [Thu, 16 Apr 2015 15:18:59 -0700] rev 25347
bookmarks: name label for active bookmark correctly
Retain old label as well for backwards compatibility.
Today, the terms 'active' and 'current' are interchangeably used throughout the
codebase in reference to the active bookmark (the bookmark that will be updated
with the next commit). This leads to confusion among developers and users.
This patch is part of a series to standardize the usage to 'active' throughout
the mercurial codebase and user interface.
Anton Shestakov <engored@ya.ru> [Sat, 30 May 2015 02:06:09 +0800] rev 25346
tests: descending empty dirs works in all hgweb styles, test them too
The tested feature was added to multiple hgweb styles in
c21d236ca897, but only
paper was tested. Let's test everything now, including monoblue, which only got
the feature some 6 years late in
e50d8b21f4f4.
Anton Shestakov <engored@ya.ru> [Sat, 30 May 2015 01:57:19 +0800] rev 25345
tests: actualize the comment in test-hgweb-descend-empties.t
The comment came together with the whole test file and the feature (descend
empty dirs in hgweb) in
c21d236ca897, but for some reason wasn't exactly
accurate.
Namely, there isn't e1 directory in the test at all, it obviously should say
d1; and b1 didn't terminate at level 3, but does now.
Yuya Nishihara <yuya@tcha.org> [Sun, 17 May 2015 15:16:13 +0900] rev 25344
revset: add fast path for _list() of integer revisions
This can greatly speed up chained 'or' of integer revisions.
1) reduce nesting of chained 'or' operations
2) optimize to a list
3) fast path for integer revisions (this patch)
revset #0: 0 + 1 + 2 + ... + 1000
1) wall 0.483341 comb 0.480000 user 0.480000 sys 0.000000 (best of 20)
2) wall 0.025393 comb 0.020000 user 0.020000 sys 0.000000 (best of 107)
3) wall 0.008371 comb 0.000000 user 0.000000 sys 0.000000 (best of 317)
revset #1: sort(0 + 1 + 2 + ... + 1000)
1) wall 0.035240 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
2) wall 0.026432 comb 0.030000 user 0.030000 sys 0.000000 (best of 102)
3) wall 0.008418 comb 0.000000 user 0.000000 sys 0.000000 (best of 322)
revset #2: first(0 + 1 + 2 + ... + 1000)
1) wall 0.028949 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)
2) wall 0.025503 comb 0.030000 user 0.030000 sys 0.000000 (best of 106)
3) wall 0.008423 comb 0.010000 user 0.010000 sys 0.000000 (best of 319)
But I admit that it is still slower than the spanset.
revset #3: 0:1000
3) wall 0.000132 comb 0.000000 user 0.000000 sys 0.000000 (best of 19010)
Yuya Nishihara <yuya@tcha.org> [Sun, 17 May 2015 15:11:38 +0900] rev 25343
revset: optimize 'or' operation of trivial revisions to a list
As seen in
issue4565 and
issue4624, GUI wrappers and automated scripts are
likely to generate a long query that just has numeric revisions joined by 'or'.
One reason why is that they allows users to choose arbitrary revisions from
a list. Because this use case isn't handled well by smartset, let's optimize
it to a plain old list.
Benchmarks:
1) reduce nesting of chained 'or' operations
2) optimize to a list (this patch)
revset #0: 0 + 1 + 2 + ... + 1000
1) wall 0.483341 comb 0.480000 user 0.480000 sys 0.000000 (best of 20)
2) wall 0.025393 comb 0.020000 user 0.020000 sys 0.000000 (best of 107)
revset #1: sort(0 + 1 + 2 + ... + 1000)
1) wall 0.035240 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
2) wall 0.026432 comb 0.030000 user 0.030000 sys 0.000000 (best of 102)
revset #2: first(0 + 1 + 2 + ... + 1000)
1) wall 0.028949 comb 0.030000 user 0.030000 sys 0.000000 (best of 100)
2) wall 0.025503 comb 0.030000 user 0.030000 sys 0.000000 (best of 106)
Yuya Nishihara <yuya@tcha.org> [Fri, 29 May 2015 21:31:00 +0900] rev 25342
revset: make "null" able to appear in internal _list() expression
This is the same workaround introduced at
e16456831516. Without this patch,
"null or x" can't be optimized to _list(null x).
Test case will be added by the next patch.
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 14:49:41 +0900] rev 25341
revset: make internal _list() expression remove duplicated revisions
This allows us to optimize chained 'or' operations to _list() expression.
Unlike _intlist() or _hexlist(), it's difficult to remove duplicates by the
caller of _list() because different symbols can point to the same revision.
If the caller knows all symbols are unique, that probably means revisions or
nodes are known, therefore, _intlist() or _hexlist() should be used instead.
So, it makes sense to check duplicates by _list() function.
'%ls' is no longer used in core, this won't cause performance regression.
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 14:34:12 +0900] rev 25340
repair: use _hexlist() to build revset expression from binary nodes
_hexlist() should be efficient than _list().
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 28 May 2015 23:49:19 -0700] rev 25339
listkey: display the size of the listkey payload in a debug message
This is a useful information to have in general and we already have debug
output related to listkeys. I'm planning to play around with massive amount of
phases roots and bookmarks so having this data in debug will be very useful.
This already got me to spot that one of the Logilab's review repo is exchanging
65KB of phases data during each exchanges.