- Dec 21, 2018
-
-
Martin von Zweigbergk authored
Replicating the set of actions in multiple places is bad. Differential Revision: https://phab.mercurial-scm.org/D5472
-
- Dec 04, 2018
-
-
Martin von Zweigbergk authored
The manifest should ideally not know at all about the repo, so this is just a little step towards cleaning that up. Differential Revision: https://phab.mercurial-scm.org/D5469
-
- Dec 22, 2018
-
-
Matt Harbison authored
-
- Dec 19, 2018
-
-
Boris Feld authored
It's easier to conditionalize some of the environment variables per Mercurial version once there is only one value per line. Differential Revision: https://phab.mercurial-scm.org/D5453
-
- Dec 21, 2018
-
-
Boris Feld authored
We test the method on a real revlog containing "real" data.
-
- Dec 20, 2018
-
-
Boris Feld authored
This test check slicing backed by an actual revlog. It will test the C version of slicing (if the test are run with the C extensions).
-
- Dec 19, 2018
-
-
Boris Feld authored
While a value of 50 provided large speedup in some case (400s → 7s) it also creates a slow down for a whole class of revision we are seeing in a private repository (0.1s → 3s). A value of 500 makes them disappear improving the total runtime (the slower revision still improve significantly (400s → 21s)). We need to run a wider array of tests on various repositories to see the effect on speed and size of different values for this acceptable constant. However, in the meantime, it seems safer to move back to a less impactful value.
-
- Dec 21, 2018
-
-
Pulkit Goyal authored
Caught by test-check-pyflakes.t Differential Revision: https://phab.mercurial-scm.org/D5471
-
Matt Harbison authored
Byte strings don't have the former. Converting these to byte strings is waiting on the mass rewrite.
-
- Dec 20, 2018
-
-
Matt Harbison authored
-
- Dec 18, 2018
-
-
Martin von Zweigbergk authored
This should have been part of 4fd0fac48922 (localrepo: allow narrowmatch() to accept matcher to intersect with, 2018-09-28) and 41fcdfe3bfeb (narrow: allow repo.narrowmatch(match) to include exact matches from "match", 2018-10-01). Differential Revision: https://phab.mercurial-scm.org/D5466
-
- Dec 05, 2018
-
-
Martin von Zweigbergk authored
If revlogs were removed and then the process crashed before the narrowspec was written, the repo would be corrupt. Differential Revision: https://phab.mercurial-scm.org/D5467
-
- Nov 24, 2018
-
-
Martin von Zweigbergk authored
This is the usual way of doing it and I don't see a reason to do it differently here. Differential Revision: https://phab.mercurial-scm.org/D5468
-
- Dec 16, 2018
-
-
sliquister authored
Differential Revision: https://phab.mercurial-scm.org/D5447
-
- Dec 19, 2018
-
-
Boris Feld authored
We are about to introduce a new flag for printing the HG environment variables one per line and it's easier to do when using the argparse module for argument parsing. Differential Revision: https://phab.mercurial-scm.org/D5452
-
- Dec 20, 2018
-
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D5465
-
Augie Fackler authored
Our Python already calls this with reasonable values consistently, but my upcoming fuzzer is extremely quick to discover the lack of sanity checking here. Differential Revision: https://phab.mercurial-scm.org/D5464
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D5463
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D5462
-
Augie Fackler authored
Avoids code duplication between fuzzers of parsers.so. Differential Revision: https://phab.mercurial-scm.org/D5461
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D5460
-
Augie Fackler authored
We haven't used this in years, I think it's fine to ditch it now. We had previously kept it around to ease bisecting with built extensions, but these days we've got a better versioning scheme anyway. Noticed this method kicking around while looking in parsers.so for likely fuzzing targets. Differential Revision: https://phab.mercurial-scm.org/D5459
-
- Dec 19, 2018
-
-
Martin von Zweigbergk authored
If we no longer show the "[no-]" for default-off flags, it also seems unnecessary to show the "default: off" for them, since that's quite clearly the default. It's extra confusing for action flags like `hg bookmarks --delete`. Differential Revision: https://phab.mercurial-scm.org/D5455
-
Martin von Zweigbergk authored
As Anton (av6) pointed out, the "[no-]" is confusing for action flags like `hg bookmark --delete`. We could come up with a way of indicating which flags are action flags (e.g. use None for the default value instead of False). However, it's probably also unlikely that users will want to negate even non-action flags like --hidden. One of the more common flags where the "[no-]" prefix would be useful is `hg evolve --update`. The reason it's helpful there is that it defaults to on. So I think we can simply include "[no-]" only for flags that are on by default (and thus require the user to add the "[no-]" for the option to have any effect). Note that there are use cases for negating flags that already off by default. For example, you may have an alias for `hg log -G --hidden -T foo` and now want to pass "--no-hidden" to that alias. However, I think that users who want that are likely to be advanced enough that they've already learnt about the "no-" prefix by seeing it somewhere else. Differential Revision: https://phab.mercurial-scm.org/D5454
-
- Dec 05, 2018
-
-
Martin von Zweigbergk authored
I mechanically added the backup code everywhere in ad24b581e4d9 (narrow: call narrowspec.{save,restore,clear}backup directly, 2018-08-03), but I can't think of a reason it would be needed in the shelve code, so let's drop it. Differential Revision: https://phab.mercurial-scm.org/D5457
-
- May 08, 2018
-
-
Martin von Zweigbergk authored
Differential Revision: https://phab.mercurial-scm.org/D5456
-
- Dec 19, 2018
-
-
Matt Harbison authored
The exception is printed as str because I'm too lazy to convert it and the pieces.
-
Matt Harbison authored
-
Matt Harbison authored
This is mostly b'' prefixing, with some cargoculting of help.py to get around `textwrap.dedent()` and __doc__ string requirements.
-
Matt Harbison authored
This fixes a failure in test-run-tests.t around notarealhghavefeature. It seems crazy to me that all of this needs to be adjusted in all of these tests, but the line as run-tests.py sees it in _processoutput() before doing anything is already mangled with a trailing '\r'. Switching to normalizenewlines=True for TTest works, but I'm sure that breaks other stuff.
-
Boris Feld authored
The submitted patches was apparently damaged, and a 's' was missing.
-
- Dec 20, 2018
-
-
Augie Fackler authored
This is a *ton* better. Once this lands, I can remove a nasty kludge from the oss-fuzz build.sh. Bonus: this fixes the coverage build. Differential Revision: https://phab.mercurial-scm.org/D5458
-
- Dec 18, 2018
-
-
Matt Harbison authored
Setting stdout to binary seemed to have no effect on Windows, as it was appending a literal '\r' to each topic keyword. This also stops prepending 'b' to the topic on all platforms as well.
-
- Oct 31, 2018
-
-
Yuya Nishihara authored
This greatly speeds up repository operation with lots of obsolete markers: $ ls -lh .hg/store/obsstore -rw-r--r-- 1 yuya yuya 21M Dec 2 17:55 .hg/store/obsstore $ time hg log -G -l10 --pager no (hg) 1.79s user 0.13s system 99% cpu 1.919 total (chg uncached) 0.00s user 0.01s system 0% cpu 1.328 total (chg cached) 0.00s user 0.00s system 3% cpu 0.180 total As you can see, the implementation of the preloader function is highly experimental. It works, but I'm yet to be sure how things can be organized. So I don't want to formalize the API at this point.
-
Yuya Nishihara authored
The idea is to load recently-used repositories first in the master process, and fork(). The forked worker can reuse a warm repository if it's preloaded. There are a couple of ways of in-memory repository caching. They have pros and cons: a. "preload by master" pros: can use a single cache dict, maximizing cache hit rate cons: need to reload a repo in master process (because worker process dies per command) b. "prefork" pros: can cache a repo without reloading (as worker processes persist) cons: lower cache hit rate since each worker has to maintain its own cache c. "shared memory" (or separate key-value store server) pros: no need to reload a repo in master process, ideally cons: need to serialize objects to sharable form Since my primary goal is to get rid of the cost of loading obsstore without massive rewrites, (c) doesn't work. (b) isn't ideal since it would require much more SDRAMs than (a). So I take (a). The idea credits to Jun Wu.
-
- Dec 14, 2018
-
-
Benjamin Peterson authored
The "not" operator binds more closely than "==": >>> not False == False False
-
- Dec 15, 2018
-
-
Yuya Nishihara authored
The output format changes and the messages will be sent to stderr instead of stdout, but I don't think that matters.
-
Yuya Nishihara authored
Otherwise ui.log() in extensions.py would explode.
-
Yuya Nishihara authored
This will replace the custom log function introduced at d58958676b3c "extensions: add detailed loading information."
-
Yuya Nishihara authored
If I added ui.log() to hg.repository() function, test-merge-subrepos.t exploded. The problem is that the blackbox may create new repository instance while logging is active, and the created repository owns its new ui derived from the baseui, not from the ui which is processing the active logging. I tried to work around the issue in ui.log(), but that turned out to be not easy. We shouldn't globally lock the ui.log() since there may be more than one active repo/ui instances in threaded environment. We could store the logging state in thread-local storage, but that seems unnecessarily complex. So this patch reintroduces the _inlog flag to per-repository logger instances.
-