Fri, 27 Apr 2018 01:24:04 -0400 cvsps: wrap cmp methods (deprecated) in functools.cmp_to_key
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 01:24:04 -0400] rev 37886
cvsps: wrap cmp methods (deprecated) in functools.cmp_to_key Differential Revision: https://phab.mercurial-scm.org/D3484
Fri, 27 Apr 2018 01:18:43 -0400 tests: port inline extension in test-convert-cvs.t to py3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 01:18:43 -0400] rev 37885
tests: port inline extension in test-convert-cvs.t to py3 # skip-blame two b prefixes, nothing more Differential Revision: https://phab.mercurial-scm.org/D3483
Fri, 27 Apr 2018 01:14:23 -0400 cvsps: add b prefixes to regular expressions
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 01:14:23 -0400] rev 37884
cvsps: add b prefixes to regular expressions # skip-blame just b prefixes Differential Revision: https://phab.mercurial-scm.org/D3482
Fri, 27 Apr 2018 00:50:08 -0400 minirst: fix bytes slicing defect on Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:50:08 -0400] rev 37883
minirst: fix bytes slicing defect on Python 3 This is the only lingering problem in minirst on Python 3. test-minirst.py now passes on Python 3. Differential Revision: https://phab.mercurial-scm.org/D3478
Fri, 27 Apr 2018 00:46:05 -0400 tests: port test-minirst.py to Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:46:05 -0400] rev 37882
tests: port test-minirst.py to Python 3 There are a few failures here, mostly around formatting lists. I'll fix that in a subsequent change. Differential Revision: https://phab.mercurial-scm.org/D3477
Fri, 27 Apr 2018 00:31:57 -0400 tests: use stringutil.pprint instead of pprint.pprint in test-minirst.py
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:31:57 -0400] rev 37881
tests: use stringutil.pprint instead of pprint.pprint in test-minirst.py Stabilizes some output on Python 3. Differential Revision: https://phab.mercurial-scm.org/D3476
Fri, 27 Apr 2018 00:24:45 -0400 tests: port test-pathencode.py to Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:24:45 -0400] rev 37880
tests: port test-pathencode.py to Python 3 # skip-blame uninteresting changes, mainly b prefixes Differential Revision: https://phab.mercurial-scm.org/D3475
Fri, 27 Apr 2018 00:18:46 -0400 tests: port test-hgwebdir-paths.py to Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:18:46 -0400] rev 37879
tests: port test-hgwebdir-paths.py to Python 3 # skip-blame just b prefixes, nothing interesting Differential Revision: https://phab.mercurial-scm.org/D3474
Fri, 27 Apr 2018 00:17:17 -0400 tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:17:17 -0400] rev 37878
tests: port test-walkrepo.py to Python 3 # skip-blame just b prefixes, nothing interesting Differential Revision: https://phab.mercurial-scm.org/D3473
Fri, 27 Apr 2018 00:14:23 -0400 tests: port test-minifileset.py to Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:14:23 -0400] rev 37877
tests: port test-minifileset.py to Python 3 # skip-blame all b prefixes, nothing interesting Differential Revision: https://phab.mercurial-scm.org/D3472
Fri, 27 Apr 2018 00:13:56 -0400 minifileset: fix on Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:13:56 -0400] rev 37876
minifileset: fix on Python 3 Found by porting test-minifileset.py to Python 3. Differential Revision: https://phab.mercurial-scm.org/D3471
Fri, 27 Apr 2018 00:08:48 -0400 tests: port test-url.py to Python 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:08:48 -0400] rev 37875
tests: port test-url.py to Python 3 # skip-blame it's all b prefixes and pycompat.bytestr() wrappers Differential Revision: https://phab.mercurial-scm.org/D3470
Fri, 27 Apr 2018 00:08:21 -0400 tests: fix error case in test-url.py's doctest
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:08:21 -0400] rev 37874
tests: fix error case in test-url.py's doctest This required some careful attention, so I wanted to split it out from the uninteresting bits that'll be in the next change. Differential Revision: https://phab.mercurial-scm.org/D3469
Fri, 27 Apr 2018 00:06:08 -0400 util: make util.url __repr__ consistent on Python 2 and 3
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:06:08 -0400] rev 37873
util: make util.url __repr__ consistent on Python 2 and 3 Differential Revision: https://phab.mercurial-scm.org/D3468
Fri, 27 Apr 2018 00:05:46 -0400 sslutil: fix some edge cases in Python 3 support
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 00:05:46 -0400] rev 37872
sslutil: fix some edge cases in Python 3 support Detected by fixing up test-url.py on Python 3. Differential Revision: https://phab.mercurial-scm.org/D3467
Thu, 26 Apr 2018 23:33:27 -0400 tests: port test-hybridencode.py to unittest
Augie Fackler <augie@google.com> [Thu, 26 Apr 2018 23:33:27 -0400] rev 37871
tests: port test-hybridencode.py to unittest This was done predominantly through keyboard macros in emacs, so it's not always pretty, but it's enough to make the test easier to work with. There's a ton of room for improvement in this file, but it would be labor intensive and error-prone, so I went with the dumbest option that could work, so as to avoid transcription errors. Paranoia: $ egrep '^ def test' tests/test-hybridencode.py | wc -l 44 $ egrep '^ def test' tests/test-hybridencode.py | sort | uniq | wc -l so I'm pretty confident there aren't any shadowed test methods. This fixes the test on Python 3. Differential Revision: https://phab.mercurial-scm.org/D3466
Thu, 26 Apr 2018 21:39:35 -0400 tests: make test-check-interfaces.py work on Python 3
Augie Fackler <augie@google.com> [Thu, 26 Apr 2018 21:39:35 -0400] rev 37870
tests: make test-check-interfaces.py work on Python 3 # skip-blame just a bunch of bytes prefixes Differential Revision: https://phab.mercurial-scm.org/D3465
Thu, 26 Apr 2018 21:38:49 -0400 scmutil: clean up bytes/string cache decorator mess on Python 3 again
Augie Fackler <augie@google.com> [Thu, 26 Apr 2018 21:38:49 -0400] rev 37869
scmutil: clean up bytes/string cache decorator mess on Python 3 again The previous fix to this area worked, but was dropping bytes in __dict__ on Python 3. This was causing subtle breakage in test-check-interfaces.py, and probably other things too. Fixed now. Differential Revision: https://phab.mercurial-scm.org/D3464
Mon, 07 May 2018 12:18:09 -0700 directaccess: use resolvehexnodeidprefix() instead of _partialmatch()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 07 May 2018 12:18:09 -0700] rev 37868
directaccess: use resolvehexnodeidprefix() instead of _partialmatch() Same reasoning as previous commit: I want to make resolvehexnodeidprefix() move complex and don't want to duplicate that code in directaccess. Differential Revision: https://phab.mercurial-scm.org/D3463
Mon, 07 May 2018 14:32:55 -0700 revset: use resolvehexnodeidprefix() in id() predicate (BC)
Martin von Zweigbergk <martinvonz@google.com> [Mon, 07 May 2018 14:32:55 -0700] rev 37867
revset: use resolvehexnodeidprefix() in id() predicate (BC) We now have a public method for this purpose, so we don't need to access the private revlog._partialmatch(). Also, I'll probably make some changes to resolvehexnodeidprefix() later, and I want those to be reflected by the id() predicate. Note that this breaks a test case, because we now resolve the prefix in the unfiltered repo and get an ambiguous lookup, which results in no revision being added to the revset. The test case was already documented to be broken even though it wasn't. It's important to note that {shortest(node)} already uses the unfiltered repo, so we're not going to break people who get the prefix from there. I think we may not want to ever use shortest() in the filtered repo. It seems unlikely to be enough of a win to matter much. For example, in my hg repo, it would save me only 0.2 hex digits. In another repo that only I modify, it saves a little more, but it's still only 0.29 hex digits. It seems unlikely that people will prune enough commits that only 1/16 of the commits are visible (which is what it would take a to save a single hex digit). Instead, I'm working on another approach: allow ambiguous matches to be disambiguated within a user-specified revset. Whether or not that pans out, I hope we're okay with this little change in behavior for now and we can decide what to do about it later. Differential Revision: https://phab.mercurial-scm.org/D3311
Mon, 07 May 2018 14:32:43 -0700 revset: make id() an empty set for ambiguous nodeid (BC)
Martin von Zweigbergk <martinvonz@google.com> [Mon, 07 May 2018 14:32:43 -0700] rev 37866
revset: make id() an empty set for ambiguous nodeid (BC) As Yuya pointed out in the review of D3311, id() (and rev()) does not raise an error when the input is an unknown identifier, so it doesn't make sense for it to do that when the input is ambiguous with a filtered node. However, it turned out that it already does raise an error when the input is ambiguous among the visible nodes. So let's start by fixing that. Differential Revision: https://phab.mercurial-scm.org/D3462
Sat, 05 May 2018 00:16:43 -0700 shortest: don't keep checking for longer prefix if node doesn't exist (API)
Martin von Zweigbergk <martinvonz@google.com> [Sat, 05 May 2018 00:16:43 -0700] rev 37865
shortest: don't keep checking for longer prefix if node doesn't exist (API) If revlog.shortest() is called with an invalid nodeid, we keep checking if longer and longer prefixes are valid. We call revlog._partialmatch() for each prefix. That function will give us None if the node doesn't exist (and a RevlogError if it's ambiguous), so there's no need to keep checking. This patch instead makes revlog.shortest() raise a LookupError is the node does not exist, and updates the caller to handle it. Before this patch, revlog.shortest() would return the full hexnode for nonexistent nodeids. By the same reasoning as in 7b2955624777 (scmutil: make shortesthexnodeidprefix() take a full binary nodeid, 2018-04-14), it's not revlog.shortest() that should decide how to present nonexistent nodeids, so that's now moved to the template function. This should speed up cases where {shortest()} is applied to an invalid nodeid, but I couldn't think of a reasonable case where that would happen. Differential Revision: https://phab.mercurial-scm.org/D3461
Wed, 02 May 2018 22:56:10 -0700 shortest: extract function for checking if a prefix is a revnum
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 May 2018 22:56:10 -0700] rev 37864
shortest: extract function for checking if a prefix is a revnum Much of isvalid() was about testing if a prefix is a valid revnum. I want to reuse that soon, so let's move it out. There is no significant slowdown from the function call overhead. Differential Revision: https://phab.mercurial-scm.org/D3460
Thu, 03 May 2018 10:12:47 -0700 shortest: rename "test" variable to "prefix"
Martin von Zweigbergk <martinvonz@google.com> [Thu, 03 May 2018 10:12:47 -0700] rev 37863
shortest: rename "test" variable to "prefix" Sorry if this is considered churn, but "prefix" just seems much clearer to me. Differential Revision: https://phab.mercurial-scm.org/D3459
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip