Thu, 14 Feb 2019 14:36:16 +0100 test: stabilize test-remotefilelog-bgprefetch.t flaky output
Boris Feld <boris.feld@octobus.net> [Thu, 14 Feb 2019 14:36:16 +0100] rev 41743
test: stabilize test-remotefilelog-bgprefetch.t flaky output When running the test suite with multiple processes, we often get flaky outputs, like here: https://ci.octobus.net/job/MercurialPy2/274/console ``` - $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histidx - $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histpack - $TESTTMP/hgcache/master/packs/f4d50848e0b465e9bfd2875f213044c06cfd7407.dataidx - $TESTTMP/hgcache/master/packs/f4d50848e0b465e9bfd2875f213044c06cfd7407.datapack + $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 + $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/ef95c5376f34698742fe34f315fd82136f8f68c0 + $TESTTMP/hgcache/master/39/5df8f7c51f007019cb30201c49e884b46b92fa/69a1b67522704ec122181c0890bd16e9d3e7516a + $TESTTMP/hgcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca + $TESTTMP/hgcache/master/af/f024fe4ab0fece4091de044c58c9ae4233383a/bb6ccd5dceaa5e9dc220e0dad65e051b94f69a2c ``` Add some sleeps after `debugwaitonrepack` calls as it seems it needs some extra time to cleanup. Differential Revision: https://phab.mercurial-scm.org/D5960
Tue, 19 Feb 2019 21:55:05 -0800 merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Feb 2019 21:55:05 -0800] rev 41742
merge with stable
Fri, 15 Feb 2019 15:49:17 -0500 color: change color of grep.rev label (BC)
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 Feb 2019 15:49:17 -0500] rev 41741
color: change color of grep.rev label (BC) GNU grep uses green for line numbers as we do, but I sometimes get a bit confused when I do `hg grep --diff -n` and get both line numbers and revisions and don't know which one is which. A different colour can help.
Fri, 15 Feb 2019 15:43:22 -0500 color: give colours to the grep.inserted and grep.deleted labels
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 Feb 2019 15:43:22 -0500] rev 41740
color: give colours to the grep.inserted and grep.deleted labels I find the "bold" makes it stand out a bit more when the green is next to the line number. Note that these labels are applied before the grep.change label, which is now disabled. To get the old colour, users can restore [color] grep.change = green dim to their hgrc.
Fri, 15 Feb 2019 15:24:04 -0500 grep: give different labels to + and - symbols
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 Feb 2019 15:24:04 -0500] rev 41739
grep: give different labels to + and - symbols I find it more useful to give different colours to plus and minus, but it's difficult to do so if the default output uses the same label for both. The following augments the names of columns with some extra labels, akin to the diff.inserted and diff.deleted labels for the diff command. This is done by adding an extra label field to the columns tuples.
Mon, 18 Feb 2019 00:27:25 +0900 tests: bulk changes to avoid whitespace errors of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41738
tests: bulk changes to avoid whitespace errors of check-code.py This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts. This revision avoids "whitespace" errors of check-code.py below: - missing whitespace after "," - missing whitespace in expression - no whitespace around "=" for named parameters - wrong whitespace around "="
Mon, 18 Feb 2019 00:27:25 +0900 tests: replace "naked except clause" to avoid check-code.py error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41737
tests: replace "naked except clause" to avoid check-code.py error This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts.
Mon, 18 Feb 2019 00:27:25 +0900 tests: bulk changes to avoid "omit superfluous pass" check-code.py error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41736
tests: bulk changes to avoid "omit superfluous pass" check-code.py error This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts.
Mon, 18 Feb 2019 00:27:25 +0900 tests: replace imported module to avoid check-code.py error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41735
tests: replace imported module to avoid check-code.py error This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts.
Mon, 18 Feb 2019 00:27:25 +0900 tests: bulk change to avoid "unneeded trailing ',' ..." error of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41734
tests: bulk change to avoid "unneeded trailing ',' ..." error of check-code.py This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts. "trailing ','" at the end of command option list in the code fragment of test-bundle2-format.t is still left as it is, in order to follow the style of command definitions in Mercurial core.
Mon, 18 Feb 2019 00:27:25 +0900 tests: define class in modern style to avoid check-code.py error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41733
tests: define class in modern style to avoid check-code.py error This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts.
Mon, 18 Feb 2019 00:27:25 +0900 tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 18 Feb 2019 00:27:25 +0900] rev 41732
tests: use NO_CHECK_EOF as heredoc limit mark to omit checking code fragments This is a part of preparation to apply checking with check-code.py on code fragments embedded in *.t test scripts. "primes.py" embedded in test-highlight.t causes an error of check-commit.py below: don't use .next(), use next(...) But changing embedded primes.py is painful, because it is committed in test script, and affects hash IDs. On the other hand, primes.py itself is never executed in test script. Therefore, this patch uses NO_CHECK_EOF as heredoc limit mark in order to omit any checking on this code fragments.
Sat, 16 Feb 2019 22:03:58 -0500 tests: conditionalize msys path mangling in test-bundle.t
Matt Harbison <matt_harbison@yahoo.com> [Sat, 16 Feb 2019 22:03:58 -0500] rev 41731
tests: conditionalize msys path mangling in test-bundle.t This broke in 252cc56c9ff6 when the variables were printed one per line. The only reason I can think of is that MSYS knew the former string couldn't be a list of paths, but thinks this form is.
Sat, 16 Feb 2019 21:49:55 -0500 tests: glob over quoting differences in test-blackbox.t for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 16 Feb 2019 21:49:55 -0500] rev 41730
tests: glob over quoting differences in test-blackbox.t for Windows
Fri, 15 Feb 2019 14:56:07 -0500 chistedit: ensure a locale is set
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 Feb 2019 14:56:07 -0500] rev 41729
chistedit: ensure a locale is set My paternal surname was showing incorrectly without this fix.
Mon, 18 Feb 2019 23:43:40 -0500 templatekw: make negrev return empty for wdir() and nullrev
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 18 Feb 2019 23:43:40 -0500] rev 41728
templatekw: make negrev return empty for wdir() and nullrev I considered just returning the same output that {rev} returns here, but {rev} also returns essentially gibberish: either an INT_MAX-kind of variable for wdir() or -1 for null. Since these are numbers that are intended to be used for calculations, and since the numbers for wdir() and -1 are not really very helpful for calculation (and worse, when used as a revision number -1 is equal to unhidden tip), I figured the most reasonable thing to do here is to just return nothing for negrev. This could potentially break scripts that are expecting to parse a nonempty integer out of a {negrev}, but that seems like a very remote concern at this juncture.
Mon, 18 Feb 2019 18:44:21 -0500 test-sqlitestore: run sqlite3 with no init file
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 18 Feb 2019 18:44:21 -0500] rev 41727
test-sqlitestore: run sqlite3 with no init file These tests were failing for me because I have a ~/.sqliterc that alters the default output. Tests should ignore any init file.
Wed, 20 Feb 2019 20:57:58 -0500 tests: add a missing abort exit code on Windows in test-audit-subrepo.t stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 20 Feb 2019 20:57:58 -0500] rev 41726
tests: add a missing abort exit code on Windows in test-audit-subrepo.t
Thu, 07 Feb 2019 20:50:41 +0900 subrepo: add test for Windows relative-ish path with drive letter stable
Yuya Nishihara <yuya@tcha.org> [Thu, 07 Feb 2019 20:50:41 +0900] rev 41725
subrepo: add test for Windows relative-ish path with drive letter Matt Harbison pointed out that Windows had some weird path syntax. Fortunately it's rejected appropriately by pathauditor, so we're safe. Let's test the behavior as we have a special handling for Windows drive letters. This patch includes a basic example. Maybe we'll need to extend the test case further, but writing such tests on Linux isn't easy.
Thu, 14 Feb 2019 18:28:27 +0530 copies: return True instead of filename as it is expected to return boolean
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 14 Feb 2019 18:28:27 +0530] rev 41724
copies: return True instead of filename as it is expected to return boolean As the function documentation says this function should True if we hit a match and False otherwise. And I see that we are not using that returned filename anywhere. Differential Revision: https://phab.mercurial-scm.org/D5964
Mon, 11 Feb 2019 19:41:37 +0300 narrow: fix command name in error messsage
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 11 Feb 2019 19:41:37 +0300] rev 41723
narrow: fix command name in error messsage Differential Revision: https://phab.mercurial-scm.org/D5982
Fri, 15 Feb 2019 14:43:31 -0500 templatekw: add a {negrev} keyword
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 Feb 2019 14:43:31 -0500] rev 41722
templatekw: add a {negrev} keyword Revision numbers are getting much maligned for two reasons: they are too long in large repos and users get confused by their local-only nature. It just occurred to me that negative revision numbers avoid both of those problems. Since negative revision numbers change whenever the repo changes, it's much more obvious that they are a local-only convenience. Additionally, for the recent commits that we usually care about the most, negative revision numbers are always near zero. This commit adds a negrev templatekw to more easily expose negative revision numbers. It's not easy to reliably produce this output with existing keywords due to hidden commits while at the same time ensuring good performance.
Sun, 17 Feb 2019 22:39:12 -0500 tests: correct the remaining fallout from recent path style changes on Windows
Matt Harbison <matt_harbison@yahoo.com> [Sun, 17 Feb 2019 22:39:12 -0500] rev 41721
tests: correct the remaining fallout from recent path style changes on Windows Per @martinvonz, `ui.slash` set by the test runner is now capable of playing a more active role.[1] I verified that both of these work by setting `ui.slash` to False, but these changes seem cleaner. The problem with check-perf-code.py was that the proper imports were not being whitelisted due to '\' vs '/'. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2019-February/128701.html
Wed, 13 Feb 2019 18:34:08 -0800 templates: adding a config() function for template customization
rdamazio@google.com [Wed, 13 Feb 2019 18:34:08 -0800] rev 41720
templates: adding a config() function for template customization This allows templates to be written such that users can customize them easily, or that they can be customized based on other configuration of the system. For enterprise deployments, we often have complex template aliases, and right now the only way individual users can customize those is by replacing the whole template alias (which means they won't get company-wide updates to it anymore, plus most users don't want to have to get a complex template right). With this change, they can just set a config option which feeds into our templates for common changes (e.g. whether to limit commit descriptions to the width of their terminal or not). To work around the issue of having to register the config options, I declared a dedicated section [templateconfig] for these options to be dynamically declared. They can still reference any other config option that's registered elsewhere. I only did string, bool and int at this time - list and date would add other complications with parsing the default so I'll leave that as an exercise to the reader :) Differential Revision: https://phab.mercurial-scm.org/D5959
Thu, 31 Jan 2019 20:11:16 +0300 changegroup: don't try to prune manifest nodes if not ellipses
Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 31 Jan 2019 20:11:16 +0300] rev 41719
changegroup: don't try to prune manifest nodes if not ellipses In non-ellipses case, the number of manifest nodes can be very big, and finding whether one of them can be pruned or not is very costly. For each node, we try to find the rev and the linkrev, which is expensive. Sending bit more manifest nodes seems better and much faster here. On our internal repository, this saves around 5 seconds on `hg tracked --addinclude <some_path>` on a narrow repo with ellipses disabled. Differential Revision: https://phab.mercurial-scm.org/D5782
Mon, 11 Feb 2019 16:34:48 +0300 branchmap: improve doc about BranchMapCache class
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 11 Feb 2019 16:34:48 +0300] rev 41718
branchmap: improve doc about BranchMapCache class It was confusing that we are having two different branchcache and BranchMapCache classes. The doc in BranchMapCache class was not much helpful to understand the difference. This patch improves the doc there. Differential Revision: https://phab.mercurial-scm.org/D5933
Mon, 04 Feb 2019 19:46:57 +0100 rust: itering less on MissingAncestors.bases for max()
Georges Racinet <georges.racinet@octobus.net> [Mon, 04 Feb 2019 19:46:57 +0100] rev 41717
rust: itering less on MissingAncestors.bases for max() Instead of iterating on the whole `self.bases` each time to find its max, we keep the latter in a separate member attribute and keep it up to date in `add_bases()` On a perfdiscovery done on PyPy, with repos prepared with `contrib/discovery-helper.sh 50 100`, this gives a slight improvement (around 0.5% on wall time, but 10% on CPU) before: ! wall 0.172801 comb 0.180000 user 0.180000 sys 0.000000 (median of 541) after: ! wall 0.171798 comb 0.160000 user 0.160000 sys 0.000000 (median of 551) (perf command run time upped because of bigger variability during this test). Differential Revision: https://phab.mercurial-scm.org/D5945
Tue, 05 Feb 2019 10:28:32 +0100 rust: stop putting NULL_REVISION in MissingAncestors.bases
Georges Racinet <georges.racinet@octobus.net> [Tue, 05 Feb 2019 10:28:32 +0100] rev 41716
rust: stop putting NULL_REVISION in MissingAncestors.bases As noted in initial review of MissingAncestors, adding NULL_REVISION in constructor in case the given `bases` is empty wasn't really useful, yet it's been kept for identity with the Python implementation Differential Revision: https://phab.mercurial-scm.org/D5944
Mon, 04 Feb 2019 12:04:59 +0100 rust: less set lookups in MissingAncestors
Georges Racinet <georges.racinet@octobus.net> [Mon, 04 Feb 2019 12:04:59 +0100] rev 41715
rust: less set lookups in MissingAncestors using the return values of HashSet::remove(), we can factor pairs of `contains()/remove()` into a single `remove()`. On a perfdiscovery run done on the PyPy repository, prepared with contrib/discovery-helper.sh 50 100, I do get a modest improvement with this (mean of medians of three runs is better by 2%) Sample readings, before this change: ! wall 0.175609 comb 0.180000 user 0.180000 sys 0.000000 (median of 58) With this change: ! wall 0.171662 comb 0.180000 user 0.170000 sys 0.010000 (median of 60) Differential Revision: https://phab.mercurial-scm.org/D5943
Mon, 04 Feb 2019 11:39:28 +0100 rust: less set lookups in AncestorsIterator
Georges Racinet <georges.racinet@octobus.net> [Mon, 04 Feb 2019 11:39:28 +0100] rev 41714
rust: less set lookups in AncestorsIterator This uses the boolean return of `HashSet::insert()` to factor pairs of contains()/insert() into a single insert() On the mozilla-central repository (450k changesets), I get about a bit more than 10% better medians in perfancestors (taking the mean of three runs) Best run for parent changeset: ! wall 0.106474 comb 0.110000 user 0.110000 sys 0.000000 (median of 93) Best run for this changeset: ! wall 0.093191 comb 0.090000 user 0.090000 sys 0.000000 (median of 100) Differential Revision: https://phab.mercurial-scm.org/D5942
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip