Wed, 21 Feb 2018 14:36:42 +0530 remotenames: don't inherit the remotenames class from dict class
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Feb 2018 14:36:42 +0530] rev 36493
remotenames: don't inherit the remotenames class from dict class The remotenames class was moved from hgremotenames extension. The class in hgremotenames extension used to extend dict because updating bookmark was done through a dict-like interface or Sean (smf) wanted it to be that way. But now, we can remove the inheritance from the dict class as updating bookmark is not done using a dict-like interface. Thanks to Martin von Zweigbergk for spotting this. Differential Revision: https://phab.mercurial-scm.org/D2361
Sun, 25 Feb 2018 17:22:25 -0500 run-tests: cache hghave results
Matt Harbison <matt_harbison@yahoo.com> [Sun, 25 Feb 2018 17:22:25 -0500] rev 36492
run-tests: cache hghave results Spawning a process on Windows is expensive. I've got a version of test-lfs-test-server.t locally which prints the http request/responses that totals 819 lines, with 149 conditional lines, 11 #if tests, and 2 test cases. It takes just under 1 minute with this change to run both cases, vs just over 2 minutes without this change. Worse, when I explored adding ui.debug to the test, it takes 13 minutes due to all of the mismatches and retests, vs less than 1 minute with this change. Overall, the difference when running all tests is negligible- 103 minutes with this change, vs 105 without when using -j9. It also looks like an exit value of 2 from `hghave` is treated specially, but there's nothing preventing 2 missing features from also using this value.
Mon, 26 Feb 2018 23:34:29 -0500 run-tests: resume raising an exception when a server fails to start
Matt Harbison <matt_harbison@yahoo.com> [Mon, 26 Feb 2018 23:34:29 -0500] rev 36491
run-tests: resume raising an exception when a server fails to start Prior to 93228b2a1fc0, this exception was raised before the diff could be printed. By raising the exception after printing the diff, the location of the failure can be identified, but it is also easier to locate test runs where this occurs. The test bot maintains a list of failed tests, separate from the wall of diff output.
Tue, 27 Feb 2018 14:49:05 +0530 py3: use print as a function in tests/test-hgrc.t
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 14:49:05 +0530] rev 36490
py3: use print as a function in tests/test-hgrc.t print was made a function in Python 3. Differential Revision: https://phab.mercurial-scm.org/D2480
Tue, 27 Feb 2018 14:46:35 +0530 py3: use '%d' to convert integers to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 14:46:35 +0530] rev 36489
py3: use '%d' to convert integers to bytes Differential Revision: https://phab.mercurial-scm.org/D2479
Tue, 27 Feb 2018 14:44:37 +0530 py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 14:44:37 +0530] rev 36488
py3: add b'' prefixes in tests/test-extension.t We are now close to getting this test pass on Python 3. # skip-blame because just b'' prefixes. Differential Revision: https://phab.mercurial-scm.org/D2478
Tue, 27 Feb 2018 14:42:30 +0530 py3: convert os.devnull to bytes using pycompat.bytestr
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 14:42:30 +0530] rev 36487
py3: convert os.devnull to bytes using pycompat.bytestr os.devnull returns str on Python 3. Differential Revision: https://phab.mercurial-scm.org/D2477
Tue, 27 Feb 2018 14:41:24 +0530 py3: fix more keyword arguments handling
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 14:41:24 +0530] rev 36486
py3: fix more keyword arguments handling Differential Revision: https://phab.mercurial-scm.org/D2476
Tue, 27 Feb 2018 14:28:17 +0530 py3: make sure regexes are bytes
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 14:28:17 +0530] rev 36485
py3: make sure regexes are bytes # skip-blame because we are adding just b'' prefixes Differential Revision: https://phab.mercurial-scm.org/D2475
Tue, 27 Feb 2018 00:43:37 +0530 py3: use pycompat.strurl to convert url to str
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Feb 2018 00:43:37 +0530] rev 36484
py3: use pycompat.strurl to convert url to str Differential Revision: https://phab.mercurial-scm.org/D2474
Mon, 26 Feb 2018 13:34:35 -0800 bookmarks: write bookmarks file deterministically
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 26 Feb 2018 13:34:35 -0800] rev 36483
bookmarks: write bookmarks file deterministically Bookmarks are internally stored as an unsorted dictionary. Let's at least write out the bookmarks file in a deterministic order so it is easier to test, diff, etc. Differential Revision: https://phab.mercurial-scm.org/D2469
Mon, 26 Feb 2018 13:32:03 -0800 phases: write phaseroots deterministically
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 26 Feb 2018 13:32:03 -0800] rev 36482
phases: write phaseroots deterministically self.phaseroots is a list of sets of binary nodes. Let's sort the nodes before writing so the phaseroots file is written out deterministically. Differential Revision: https://phab.mercurial-scm.org/D2468
Sat, 17 Feb 2018 11:19:52 -0700 internals: document bundle2 format
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 17 Feb 2018 11:19:52 -0700] rev 36481
internals: document bundle2 format It seems like a good idea to have thorough documentation of the bundle2 data format, including the format of each part and the capabilities. The added documentation is far from complete. For example, we don't fully capture the semantics of each capability and part. But a start is better than nothing, which was pretty much where we were before. Differential Revision: https://phab.mercurial-scm.org/D2298
Mon, 26 Feb 2018 23:54:40 +0530 py3: convert bytes to str using encoding.strfromlocal
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 23:54:40 +0530] rev 36480
py3: convert bytes to str using encoding.strfromlocal using encoding.strfromlocal because sender is provided from user config or argument. Differential Revision: https://phab.mercurial-scm.org/D2460
Mon, 26 Feb 2018 23:50:30 +0530 py3: use encoding.strtolocal() to convert str to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 23:50:30 +0530] rev 36479
py3: use encoding.strtolocal() to convert str to bytes Differential Revision: https://phab.mercurial-scm.org/D2459
Mon, 26 Feb 2018 16:19:53 +0530 py3: use email.utils module instead of email.Utils
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 16:19:53 +0530] rev 36478
py3: use email.utils module instead of email.Utils On py2: >>> import email >>> import email.utils as eutil >>> email.Utils.parseaddr is eutil.parseaddr True >>> email.Utils.formatdate is eutil.formatdate True email.Utils is not present on Python 3. Differential Revision: https://phab.mercurial-scm.org/D2453
Mon, 26 Feb 2018 17:25:46 +0530 py3: slice over bytes or use .startswith() to prevent getting ascii values
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 17:25:46 +0530] rev 36477
py3: slice over bytes or use .startswith() to prevent getting ascii values Differential Revision: https://phab.mercurial-scm.org/D2457
Mon, 26 Feb 2018 16:23:12 +0530 py3: use '%d' for integers instead of '%s'
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 16:23:12 +0530] rev 36476
py3: use '%d' for integers instead of '%s' Differential Revision: https://phab.mercurial-scm.org/D2455
Sun, 25 Feb 2018 13:24:35 +0900 templatekw: add 'requires' flag to switch to exception-safe interface
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 13:24:35 +0900] rev 36475
templatekw: add 'requires' flag to switch to exception-safe interface The current templatekw interface, f(repo, ctx, templ, **args), is horrible because it's quite easy to encounter TypeError, ValueError, etc. It's also bad for Python 3 porting due to the **kwargs issue. This patch introduces a flag to switch to new f(context, mapping) API seen in templater functions. The requirement spec isn't verified (yet) because context.resource() can gracefully raise a ResourceUnavailable exception, but it's planned to be used as a filter in the help, such as "Revision Keywords" (if 'ctx' in requires), "File Keywords" (if 'fctx' in requires), etc. showauthor() is ported to the new API as an example. 20 more follows.
Sun, 25 Feb 2018 12:50:30 +0900 templater: specialize ResourceUnavailable error so that it can be caught
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 12:50:30 +0900] rev 36474
templater: specialize ResourceUnavailable error so that it can be caught See the next patch how it will be used.
Sun, 25 Feb 2018 12:47:53 +0900 templater: move specialized exception types to top
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 12:47:53 +0900] rev 36473
templater: move specialized exception types to top I'm going to add one more exception type.
Sun, 25 Feb 2018 14:14:33 +0900 templatekw: minimize resource dependency of {envvars} and {termwidth}
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 14:14:33 +0900] rev 36472
templatekw: minimize resource dependency of {envvars} and {termwidth} These keywords can be evaluated without a repo.
Sun, 25 Feb 2018 14:12:34 +0900 templatekw: simply override {graphwidth} function by mapping variable
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 14:12:34 +0900] rev 36471
templatekw: simply override {graphwidth} function by mapping variable
Sun, 25 Feb 2018 16:40:41 +0900 remotenames: drop redundant templatekw names from help text
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 16:40:41 +0900] rev 36470
remotenames: drop redundant templatekw names from help text Also removed the second "List of" phrase, which is obvious from the type "List of strings."
Sun, 25 Feb 2018 13:42:51 +0900 narrow: drop redundant templatekw/revset names from help text
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Feb 2018 13:42:51 +0900] rev 36469
narrow: drop redundant templatekw/revset names from help text ":<name>:" is automatically added by the registrar.
Sun, 25 Feb 2018 21:04:12 -0500 run-tests: don't mask errors when a server fails to start
Matt Harbison <matt_harbison@yahoo.com> [Sun, 25 Feb 2018 21:04:12 -0500] rev 36468
run-tests: don't mask errors when a server fails to start There are sporadic instances of this on Windows. They seem to happen more frequently after the test machine is rebooted, although the only way to hit it on my laptop is to loop certain tests with -j9 for hours. The problem with masking out the specific failure is that there's no way to know if it's the same line in the test that's failing, or if it is random. The justification for adding this masking in 52e9e63f1495 was that the failures occur regularly, but that's not the case anymore. The port number is still printed, in case that turns out to be useful.
Mon, 26 Feb 2018 17:27:08 +0530 py3: use bytes instead of str in isinstance
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 17:27:08 +0530] rev 36467
py3: use bytes instead of str in isinstance Internally we use bytes everywhere, and str on Python 3 is unicodes, so we need to make sure we are doing the right check. Differential Revision: https://phab.mercurial-scm.org/D2458
Mon, 26 Feb 2018 18:00:29 +0530 py3: convert a map expression into list comprehension
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 18:00:29 +0530] rev 36466
py3: convert a map expression into list comprehension map returns a map object on Python 3 and here we wanted a list instead. Differential Revision: https://phab.mercurial-scm.org/D2456
Mon, 26 Feb 2018 16:22:15 +0530 py3: use email.generator module instead of email.Generator
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 16:22:15 +0530] rev 36465
py3: use email.generator module instead of email.Generator On py2: >>> import email >>> import email.generator as emailgen >>> email.Generator.Generator is emailgen.Generator True email.Generator is not present on Python 3. Differential Revision: https://phab.mercurial-scm.org/D2454
Mon, 26 Feb 2018 16:16:37 +0530 py3: use pycompat.strkwargs to convert kwargs keys to str
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Feb 2018 16:16:37 +0530] rev 36464
py3: use pycompat.strkwargs to convert kwargs keys to str Differential Revision: https://phab.mercurial-scm.org/D2452
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip