Tue, 10 Dec 2019 19:04:08 -0500 fuzz: clean up production of seed corpora
Augie Fackler <augie@google.com> [Tue, 10 Dec 2019 19:04:08 -0500] rev 43861
fuzz: clean up production of seed corpora This was getting out of hand. Differential Revision: https://phab.mercurial-scm.org/D7599
Mon, 09 Dec 2019 22:06:55 -0800 status: add template/json data about whether a file has unresolved conflicts
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Mon, 09 Dec 2019 22:06:55 -0800] rev 43860
status: add template/json data about whether a file has unresolved conflicts Differential Revision: https://phab.mercurial-scm.org/D7594
Mon, 09 Dec 2019 18:15:38 -0800 status: split morestatus data loading from display
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Mon, 09 Dec 2019 18:15:38 -0800] rev 43859
status: split morestatus data loading from display This is a small refactoring in preparation for adding more morestatus functionality (notably for templated/JSON output) - the goal is to use the data inside the status display loop, as well as output the overall state in a templatable/structured way. Differential Revision: https://phab.mercurial-scm.org/D7593
Thu, 21 Nov 2019 16:54:00 +0100 phabricator: add a "phabstatus" template keyword
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Nov 2019 16:54:00 +0100] rev 43858
phabricator: add a "phabstatus" template keyword We add a "phabstatus" template keyword, returning an object with "url" and "status" keys. This is quite similar to "phabreview" template keyword, but it queries phabricator for each specified revision so it's going to be slow (as compared to the "phabstatus" show view from previous changeset). Differential Revision: https://phab.mercurial-scm.org/D7507
Sat, 23 Nov 2019 11:04:19 +0100 phabricator: add a "phabstatus" show view
Denis Laxalde <denis@laxalde.org> [Sat, 23 Nov 2019 11:04:19 +0100] rev 43857
phabricator: add a "phabstatus" show view We add a "phabstatus" show view (called as "hg show phabstatus") which renders a dag with underway revisions associated with a differential revision and displays their status. The revisions shown is a subset of that shown by "work" view, only including revisions with known by Phabricator. Differential Revision: https://phab.mercurial-scm.org/D7506
Tue, 10 Dec 2019 14:40:44 -0800 dirs: fix out-of-bounds access in Py3
Martin von Zweigbergk <martinvonz@google.com> [Tue, 10 Dec 2019 14:40:44 -0800] rev 43856
dirs: fix out-of-bounds access in Py3 The hack for mutating Python's variable-length integers that was ported to py3 in cb3048746dae (dirs: port PyInt code to work on Python 3, 2016-10-08) was reading from ob_digit[1] instead of ob_digit[0] for some reason. Space for ob_digit[1] would only be allocated for integers larger than 30 bits, so we ended up writing to unallocated memory. Also, we would write an integer that's 2^30 times too large, so we would never free these integers. Found by AddressSanitizer. Differential Revision: https://phab.mercurial-scm.org/D7597
Wed, 11 Dec 2019 11:16:12 +0100 manifestcache: add some test involving shares
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Dec 2019 11:16:12 +0100] rev 43855
manifestcache: add some test involving shares Some issue around shares have been reported. I am adding tests to better cover the share case. The test show that the code behave as expected so far. Differential Revision: https://phab.mercurial-scm.org/D7602
Tue, 10 Dec 2019 16:17:36 -0800 fuzz: fix test-fuzz-targets.t to run with python3
Kyle Lippincott <spectral@google.com> [Tue, 10 Dec 2019 16:17:36 -0800] rev 43854
fuzz: fix test-fuzz-targets.t to run with python3 Differential Revision: https://phab.mercurial-scm.org/D7601
Tue, 10 Dec 2019 15:29:58 -0800 py3: fix a bytes vs str issue in remotefilelog extension
Kyle Lippincott <spectral@google.com> [Tue, 10 Dec 2019 15:29:58 -0800] rev 43853
py3: fix a bytes vs str issue in remotefilelog extension Differential Revision: https://phab.mercurial-scm.org/D7598
Fri, 29 Nov 2019 18:53:52 +0100 rust-matchers: add doctests for `AlwaysMatcher`
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 18:53:52 +0100] rev 43852
rust-matchers: add doctests for `AlwaysMatcher` Differential Revision: https://phab.mercurial-scm.org/D7527
Fri, 29 Nov 2019 17:24:40 +0100 rust-hg-path: add method to get part of a path relative to a prefix
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 17:24:40 +0100] rev 43851
rust-hg-path: add method to get part of a path relative to a prefix This will be used in the next patch in this series. Differential Revision: https://phab.mercurial-scm.org/D7526
Fri, 29 Nov 2019 18:33:56 +0100 rust-matchers: improve `Matcher` trait ergonomics
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 18:33:56 +0100] rev 43850
rust-matchers: improve `Matcher` trait ergonomics `VisitChildrenSet` has no need to own the set, this will save allocations. The `file_set` return type change is motivated by both ergonomics and... being able to compile code. The `AlwaysMatcher` does not store a `file_set`, which requires it to return an owned `HashSet`, which in turn would change our return type to `Cow<&HgPath>` (lifetimes omitted). This is both un-ergonomic and troublesome for more complex lifetime issues (especially with the upcoming `FileMatcher` in the following patch). Differential Revision: https://phab.mercurial-scm.org/D7525
Fri, 29 Nov 2019 17:19:34 +0100 rust-dirs-multiset: use `AsRef` instead of concrete types when possible
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 17:19:34 +0100] rev 43849
rust-dirs-multiset: use `AsRef` instead of concrete types when possible I also renamed `vec` to `dirstate`, because it was not a great name. Differential Revision: https://phab.mercurial-scm.org/D7524
Thu, 21 Nov 2019 16:48:34 +0100 logcmdutil: call _exthook() in changesettemplater
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Nov 2019 16:48:34 +0100] rev 43848
logcmdutil: call _exthook() in changesettemplater Class changesetprinter has an _exthook() method that is called in _show() before the patch is displayed. Call the method as well in changesettemplater._show(). Differential Revision: https://phab.mercurial-scm.org/D7505
Thu, 21 Nov 2019 18:10:12 +0100 phabricator: fix processing of tags/desc in getoldnodedrevmap()
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Nov 2019 18:10:12 +0100] rev 43847
phabricator: fix processing of tags/desc in getoldnodedrevmap() It seems that the previous logic was wrong (it essentially comes from changeset 3ab0d5767b54 where the result got accumulated instead of early returned). First of all, the "continue" in first "if m:" is useless because we're at the end of the loop. Then, the algorithm seems weird because we will process all predecessors of a node and possibly override `toconfirm[node]` for each of these having a tag (maybe this doesn't happen, but still). Finally, we would also override `toconfirm[node]` when the "Differential Revision: " is found in changeset description. Maybe this is not a big deal when there is no mix of local tag and changeset description update? The logic is changed so that the loop on predecessors stops upon first match of a tag and so that the changeset description is only checked if no tag was found. Therefore, `toconfirm[node]` is only set once. Differential Revision: https://phab.mercurial-scm.org/D7513
Tue, 10 Dec 2019 10:31:18 -0500 tests: replace [[]] bashism with portable [] invocation
Augie Fackler <augie@google.com> [Tue, 10 Dec 2019 10:31:18 -0500] rev 43846
tests: replace [[]] bashism with portable [] invocation In this case nothing fancy is required. Differential Revision: https://phab.mercurial-scm.org/D7596
Fri, 29 Nov 2019 17:15:24 +0100 rust-hg-path: implement `Display` for `HgPath` and `HgPathBuf`
Raphaël Gomès <rgomes@octobus.net> [Fri, 29 Nov 2019 17:15:24 +0100] rev 43845
rust-hg-path: implement `Display` for `HgPath` and `HgPathBuf` This is useful when debugging, to get a human readable output instead of an array of `u8`. Differential Revision: https://phab.mercurial-scm.org/D7523
Mon, 14 Oct 2019 13:57:30 +0200 rust-performance: introduce FastHashMap type alias for HashMap
Raphaël Gomès <rgomes@octobus.net> [Mon, 14 Oct 2019 13:57:30 +0200] rev 43844
rust-performance: introduce FastHashMap type alias for HashMap Rust's default hashing is slow, because it is meant for preventing collision attacks. For all of the current Rust code, we don't care about those attacks, because if an person with bad intentions has write access to your repo, you have other issues. I've chosen to use the TwoXHash crate because it was made by a reputable member of the Rust community and has very good benchmarks. For now it does not seem to improve performance by much for the current code, but it's something else to not worry about when benchmarking code: in a previous experiment with copytracing in Rust, it accounted for more than 10% of the time of the entire script. Differential Revision: https://phab.mercurial-scm.org/D7116
Mon, 02 Dec 2019 14:44:26 +0100 mail: use procutil.shellsplit instead of bytes.split to parse command
Julien Cristau <jcristau@debian.org> [Mon, 02 Dec 2019 14:44:26 +0100] rev 43843
mail: use procutil.shellsplit instead of bytes.split to parse command Differential Revision: https://phab.mercurial-scm.org/D7541
Thu, 05 Dec 2019 16:18:44 -0500 annotate: describe --skip as taking a revset
Augie Fackler <augie@google.com> [Thu, 05 Dec 2019 16:18:44 -0500] rev 43842
annotate: describe --skip as taking a revset It's obvious to me, but probably wouldn't be obvious to a novice user. Differential Revision: https://phab.mercurial-scm.org/D7557
Thu, 05 Dec 2019 17:42:38 -0800 automation: use latest Windows AMI as base
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 Dec 2019 17:42:38 -0800] rev 43841
automation: use latest Windows AMI as base It looks like the previous base image no longer exists. I guess Amazon expires them or something. Let's switch to the newest version of the equivalent image. Differential Revision: https://phab.mercurial-scm.org/D7571
Fri, 06 Dec 2019 23:49:03 -0500 tests: stabilize test-extdiff.t on Windows
Matt Harbison <matt_harbison@yahoo.com> [Fri, 06 Dec 2019 23:49:03 -0500] rev 43840
tests: stabilize test-extdiff.t on Windows This goes with 765a9c299c44. I'm not sure if we care about the missing file being spelled `nul`, so I removed it from the glob to be explicit about it. The line needed to be special cased anyway because of the quoting on Windows. Differential Revision: https://phab.mercurial-scm.org/D7572
Sat, 07 Dec 2019 22:09:43 -0500 exchange: fix an attempt to format a list into bytes
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Dec 2019 22:09:43 -0500] rev 43839
exchange: fix an attempt to format a list into bytes This goes with 27c6d6f53d46. Differential Revision: https://phab.mercurial-scm.org/D7583
Mon, 09 Dec 2019 09:50:39 -0800 status: remove pointless filtering by alwaysmatcher in morestatus
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 09:50:39 -0800] rev 43838
status: remove pointless filtering by alwaysmatcher in morestatus The code has been like this since it was imported from FB's hg-experimental repo. It has been like that even since it was added in that repo. So I don't know why it looks that way. Perhaps the idea was to one day filter the unresolved paths by any patterns provided by the user. We can add a matcher back if we ever decide to do that. Differential Revision: https://phab.mercurial-scm.org/D7591
Sat, 07 Dec 2019 13:07:25 -0800 tests: add test for Rust formatting
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 07 Dec 2019 13:07:25 -0800] rev 43837
tests: add test for Rust formatting We enforce formatting for Python and C. It makes sense to do it for Rust as well. Since our rustfmt.toml relies on unstable rustfmt features, we need to use a Nightly rustfmt with --unstable-features in order for it to work. This is a bit hacky and I would prefer we remove this requirement. But for now, this commit assumes this is the way things must be and we go out of our way to detect and use the rustfmt from the "nightly" toolchain, as installed via rustup. We had to add some environment variables to the tests to make the Rust binaries happy. Otherwise when running rustfmt we get an error about no default toolchain being installed. Differential Revision: https://phab.mercurial-scm.org/D7579
Sat, 07 Dec 2019 13:06:25 -0800 rust: run rustfmt
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 07 Dec 2019 13:06:25 -0800] rev 43836
rust: run rustfmt # skip-blame automated reformatting Differential Revision: https://phab.mercurial-scm.org/D7578
Fri, 06 Dec 2019 16:09:03 -0500 fuzz: clean up some repetition on building parsers.so fuzzers
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 16:09:03 -0500] rev 43835
fuzz: clean up some repetition on building parsers.so fuzzers There was a lot of repetition here that I realized could be cleared out. I think there's some more work we could do here, but this is enough for now. Differential Revision: https://phab.mercurial-scm.org/D7568
Fri, 06 Dec 2019 15:21:45 -0500 fuzz: remove legacy setup for running fuzzers outside oss-fuzz
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:21:45 -0500] rev 43834
fuzz: remove legacy setup for running fuzzers outside oss-fuzz We don't need this anymore. Differential Revision: https://phab.mercurial-scm.org/D7567
Fri, 06 Dec 2019 15:08:37 -0500 tests: finally fix up test-fuzz-targets.t
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:08:37 -0500] rev 43833
tests: finally fix up test-fuzz-targets.t It's been failing on my workstation for a while, since I have a new enough LLVM that I had the fuzzer goo, but not so new that I actually had FuzzedDataProvider. This is a better solution all around in my opinion. I _believe_ this should let us run these tests on most systems, even those using GCC instead of clang. That said, my one attempt to test this on my macOS laptop failed miserably, and I don't feel like doing more work on this right now. Differential Revision: https://phab.mercurial-scm.org/D7566
Fri, 06 Dec 2019 15:07:06 -0500 fuzz: make standalone_fuzz_target_runner call LLVMFuzzerInitialize
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:07:06 -0500] rev 43832
fuzz: make standalone_fuzz_target_runner call LLVMFuzzerInitialize Otherwise some of our fuzzers crash when they try and use Python. Differential Revision: https://phab.mercurial-scm.org/D7565
Fri, 06 Dec 2019 15:19:47 -0500 fuzz: use a more standard approach to allow local builds of fuzzers
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:19:47 -0500] rev 43831
fuzz: use a more standard approach to allow local builds of fuzzers This is taken from the (improved since we started fuzzing) guide on ideal integrations. Rather than have our own wonky targets for building outside the fuzzer universe, we have a driver program we carry along and use when we're not using LibFuzzer. This will let us jettison a fair amount of goo. contrib/fuzz/standalone_fuzz_target_runner.cc is https://github.com/google/oss-fuzz/ file projects/example/my-api-repo/standalone from git revision c4579d9358a73ea5dbcc99cb985de1f2bf76dcf7, reformatted with out clang-format settings and a no-check-code comment added. It allows running a single test input through a fuzzer, rather than performing ongoing fuzzing as libfuzzer would. contrib/fuzz/FuzzedDataProvider.h is https://github.com/llvm/llvm-project/ file /compiler-rt/include/fuzzer/FuzzedDataProvider.h from git revision a44ef027ebca1598892ea9b104d6189aeb3bc2f0, reformatted with our clang-format settings and a no-check-code comment added. We can discard this if we instead want to add an hghave check for a new enough llvm that includes FuzzedDataProvder.h in the fuzzer headers. Differential Revision: https://phab.mercurial-scm.org/D7564
Fri, 06 Dec 2019 15:15:05 -0500 fuzz: use a variable to allow specifying python-config to use
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:15:05 -0500] rev 43830
fuzz: use a variable to allow specifying python-config to use Eventually we should probably default this to just `python-config` and have the oss-fuzz build.sh script specify the sanpy python-config, but for now this lets us make progress. Differential Revision: https://phab.mercurial-scm.org/D7563
Fri, 06 Dec 2019 15:13:25 -0500 fuzz: suppress deprecated-register warnings in our compile
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:13:25 -0500] rev 43829
fuzz: suppress deprecated-register warnings in our compile These come from the Python.h headers still using the `register` keyword and our use of C++17. I think this will go away when we're using Python 3 for our fuzzing, but that can come later. Differential Revision: https://phab.mercurial-scm.org/D7562
Fri, 06 Dec 2019 15:12:00 -0500 fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:12:00 -0500] rev 43828
fuzz: follow modern guidelines and use LIB_FUZZING_ENGINE This will make our lives easier in an upcoming change, but it's also how we're supposed to set things up anyway. Differential Revision: https://phab.mercurial-scm.org/D7561
Fri, 06 Dec 2019 15:05:34 -0500 fuzz: always define LLVMFuzzerInitialize() even if we don't need it
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:05:34 -0500] rev 43827
fuzz: always define LLVMFuzzerInitialize() even if we don't need it This will make it easier to test our fuzzers outside oss-fuzz. Differential Revision: https://phab.mercurial-scm.org/D7560
Fri, 06 Dec 2019 15:06:10 -0500 fuzz: remove debug prints from revlog_corpus.py
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:06:10 -0500] rev 43826
fuzz: remove debug prints from revlog_corpus.py Differential Revision: https://phab.mercurial-scm.org/D7559
Fri, 06 Dec 2019 15:30:29 -0500 fuzz: fix an unused result on getcwd() in pyutil
Augie Fackler <augie@google.com> [Fri, 06 Dec 2019 15:30:29 -0500] rev 43825
fuzz: fix an unused result on getcwd() in pyutil clang was rightly complaining about this, so let's just fix it. Differential Revision: https://phab.mercurial-scm.org/D7558
Sun, 29 Sep 2019 16:00:32 +0200 upgraderepo: add a config option for parallel computation
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 29 Sep 2019 16:00:32 +0200] rev 43824
upgraderepo: add a config option for parallel computation The option is put to use to compute new copy tracing side data in parallel. It use the multiprocessing module as it had the appropriate primitive for what we needed. Gregory Szorc had concerned on windows so we disabled it there. See inline comment for details on the parallel implementation.
Fri, 29 Nov 2019 15:36:45 +0100 upgrade-repo: colorize some of the output
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Nov 2019 15:36:45 +0100] rev 43823
upgrade-repo: colorize some of the output Having clear color for requirement added and removed is useful.
Fri, 06 Dec 2019 15:30:06 +0100 tests: remove hardcoded errno values
Paul Sonnenschein <paul@sonnenschein.ruhr> [Fri, 06 Dec 2019 15:30:06 +0100] rev 43822
tests: remove hardcoded errno values Fixes test failures on hurd-i386 Ref: https://bugs.debian.org/946178 Differential Revision: https://phab.mercurial-scm.org/D7556
Thu, 05 Dec 2019 15:50:47 -0800 tests: expect return status 255 on exception for test-blackbox.t with chg
Kyle Lippincott <spectral@google.com> [Thu, 05 Dec 2019 15:50:47 -0800] rev 43821
tests: expect return status 255 on exception for test-blackbox.t with chg Differential Revision: https://phab.mercurial-scm.org/D7554
Thu, 05 Dec 2019 14:18:39 -0800 tests: fix command name in test-blackbox.t to be bytes
Kyle Lippincott <spectral@google.com> [Thu, 05 Dec 2019 14:18:39 -0800] rev 43820
tests: fix command name in test-blackbox.t to be bytes This command is only used when tests are run with --with-chg, so this was missed before. Differential Revision: https://phab.mercurial-scm.org/D7553
Thu, 05 Dec 2019 14:01:26 -0800 tests: fix deprecation warning about regex flags not at beginning of expr
Kyle Lippincott <spectral@google.com> [Thu, 05 Dec 2019 14:01:26 -0800] rev 43819
tests: fix deprecation warning about regex flags not at beginning of expr This may only show up when running the tests under python3.6+. Currently the only test that does this is test-patchbomb-tls.t, and it only uses (?i), so that's all that's handled at the moment. Differential Revision: https://phab.mercurial-scm.org/D7552
Thu, 05 Dec 2019 13:48:36 -0800 tests: fix test-chg.t to work with py3 (no setprocname)
Kyle Lippincott <spectral@google.com> [Thu, 05 Dec 2019 13:48:36 -0800] rev 43818
tests: fix test-chg.t to work with py3 (no setprocname) Differential Revision: https://phab.mercurial-scm.org/D7551
Tue, 26 Nov 2019 16:10:21 -0800 amend: check for file modifications when updating dirstate (issue6233)
Kyle Lippincott <spectral@google.com> [Tue, 26 Nov 2019 16:10:21 -0800] rev 43817
amend: check for file modifications when updating dirstate (issue6233) Previously, we called dirstate.normal(f), which would put information into the dirstate claiming that the file on disk is what it "should be" for the current checkout, and it would have the size and timestamp of the most recent modification to the file (which is not necessarily the one we just committed). If the file was modified while the commit message editor was open, we would put incorrect information into the dirstate. Differential Revision: https://phab.mercurial-scm.org/D7521
Thu, 05 Dec 2019 09:39:49 -0800 graft: never set both parents equal in the dirstate (issue6098)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 05 Dec 2019 09:39:49 -0800] rev 43816
graft: never set both parents equal in the dirstate (issue6098) merge.graft() can set both parents equal in the dirstate when keepparent=True. We don't seem to set that in core, but the evolve extension does use it. So I couldn't figure out a way to add a test for this patch in core. Differential Revision: https://phab.mercurial-scm.org/D7549
Thu, 05 Dec 2019 09:34:43 -0800 graft: extract `repo['.']` to local variable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 05 Dec 2019 09:34:43 -0800] rev 43815
graft: extract `repo['.']` to local variable It's used in two places and I'm about to use it more. Differential Revision: https://phab.mercurial-scm.org/D7548
Thu, 05 Dec 2019 09:32:47 -0800 graft: rename `pctx` argument to `base` since that's what it is
Martin von Zweigbergk <martinvonz@google.com> [Thu, 05 Dec 2019 09:32:47 -0800] rev 43814
graft: rename `pctx` argument to `base` since that's what it is The new name better matches the docstring. It also frees up `pctx` to be used for something else (next patch). Differential Revision: https://phab.mercurial-scm.org/D7547
Thu, 05 Dec 2019 08:59:23 -0800 exchange: replace a "not x in ys" by more Pythonic "x not in ys"
Martin von Zweigbergk <martinvonz@google.com> [Thu, 05 Dec 2019 08:59:23 -0800] rev 43813
exchange: replace a "not x in ys" by more Pythonic "x not in ys" Found by one of our (Google-)internal tools. Differential Revision: https://phab.mercurial-scm.org/D7546
Thu, 05 Dec 2019 20:05:08 -0800 packaging: include defaultrc/*.rc instead of default.d/*.rc
Kyle Lippincott <spectral@google.com> [Thu, 05 Dec 2019 20:05:08 -0800] rev 43812
packaging: include defaultrc/*.rc instead of default.d/*.rc Differential Revision: https://phab.mercurial-scm.org/D7555
Thu, 05 Dec 2019 11:15:19 -0500 merge with stable
Augie Fackler <augie@google.com> [Thu, 05 Dec 2019 11:15:19 -0500] rev 43811
merge with stable
Tue, 03 Dec 2019 17:17:57 -0800 py3: make a pycompat.osdevnull, use it in extdiff
Kyle Lippincott <spectral@google.com> [Tue, 03 Dec 2019 17:17:57 -0800] rev 43810
py3: make a pycompat.osdevnull, use it in extdiff Differential Revision: https://phab.mercurial-scm.org/D7545
Tue, 03 Dec 2019 17:10:10 -0800 subrepo: use pycompat.open directly instead of importing open from pycompat
Kyle Lippincott <spectral@google.com> [Tue, 03 Dec 2019 17:10:10 -0800] rev 43809
subrepo: use pycompat.open directly instead of importing open from pycompat Differential Revision: https://phab.mercurial-scm.org/D7544
Fri, 22 Nov 2019 10:39:05 +0100 rust-dirs: address failing tests for `dirs` impl with a temporary fix
Raphaël Gomès <rgomes@octobus.net> [Fri, 22 Nov 2019 10:39:05 +0100] rev 43808
rust-dirs: address failing tests for `dirs` impl with a temporary fix https://phab.mercurial-scm.org/D7252 (5d40317d42b7083b49467502549e25f144888cb3) introduced a regression in Rust tests. This is a temporary fix that replicates the behavior of the C and Python impl, pending the resolution of the discussion (in the phabricator link) about how we actually want to solve this problem. Differential Revision: https://phab.mercurial-scm.org/D7503
Sun, 01 Dec 2019 18:46:10 -0500 cleanup: fix docstring formatting
Matt Harbison <matt_harbison@yahoo.com> [Sun, 01 Dec 2019 18:46:10 -0500] rev 43807
cleanup: fix docstring formatting This is just removing the b'' prefix (except demandimportpy2), and making sure it is triple quoted. I skipped the mapping.py module in zope because that's 3rd party code. Differential Revision: https://phab.mercurial-scm.org/D7539
Wed, 13 Nov 2019 20:42:13 +0100 copies: split the combination of the copies mapping in its own function
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Nov 2019 20:42:13 +0100] rev 43806
copies: split the combination of the copies mapping in its own function In some case, this part take up to 95% of the copy tracing that take about a hundred second. This poor performance comes from the fact we keep duplciating and merging dictionary that are mostly similar. I want to experiment with smarter native code to do this, so I need to isolate the function first.
Wed, 13 Nov 2019 09:39:44 +0100 copies: do not initialize the dictionary with root in changeset copies
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Nov 2019 09:39:44 +0100] rev 43805
copies: do not initialize the dictionary with root in changeset copies We don't strictly need the dict to be prefiled with `{}`. Not doing so will make the next changeset simpler. This part of a preparation to use native code for this part of copy tracing.
Wed, 13 Nov 2019 20:42:08 +0100 copies: expand `_chain` variable name to make the function easier to read
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Nov 2019 20:42:08 +0100] rev 43804
copies: expand `_chain` variable name to make the function easier to read This came up while explaining what the function is about. I find the function easier to follow that way.
Wed, 13 Nov 2019 20:45:34 +0100 copies: show we can read data from the "first" mapping
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Nov 2019 20:45:34 +0100] rev 43803
copies: show we can read data from the "first" mapping In practice this make no difference since `t` is a copy of `a`. Having this change before hand will make the next cleanup changeset clearer. This is work on the road to using some native code for some performance critical part of copy tracing.
Wed, 13 Nov 2019 20:33:22 +0100 copies: return consistent type from revinfo
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Nov 2019 20:33:22 +0100] rev 43802
copies: return consistent type from revinfo The return is expected to be a list, so we should return a list. This make the use of this function from type-checked language (eg: rust) much simpler.
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip