Martin von Zweigbergk <martinvonz@google.com> [Wed, 23 Sep 2020 16:07:14 -0700] rev 45522
tests: demonstrate crash caused by pinning of non-existent mergestate node
If the mergestate somehow contains a reference to a non-existent node,
it causes most commands to crash since
aaeccdb6e654 (repoview: pin
revisions for `local` and `other` when a merge is active,
2020-09-04). This patch adds a test showing that.
Differential Revision: https://phab.mercurial-scm.org/D9077
Augie Fackler <augie@google.com> [Mon, 21 Sep 2020 10:23:25 -0400] rev 45521
git: also convert timezone to int (
issue6359)
Credit to moshez for testing this in the wild.
Differential Revision: https://phab.mercurial-scm.org/D9062
Jun Wu <quark@fb.com> [Fri, 18 Sep 2020 16:26:37 -0700] rev 45520
chg: fallback to original hg if stdio fds are missing
If stdio fds are missing (ex. fd 0 is not present), chg might open
fds that take the numbers 0, and attachio would send the wrong fds
to the client, which might cause unwanted behaviors. Avoid that by
detecting the missing fds and falling back to the original hg.
Differential Revision: https://phab.mercurial-scm.org/D9058
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Sep 2020 08:27:43 -0700] rev 45519
locking: remove support for inheriting locks in subprocess
This seems to have been added for merge driver, and since merge driver
is now gone...
Differential Revision: https://phab.mercurial-scm.org/D9053
Martin von Zweigbergk <martinvonz@google.com> [Thu, 17 Sep 2020 22:34:36 -0700] rev 45518
mergedriver: delete it
The merge driver code was added in late 2015. I think
'
406a654b::
6f045b56 & user("sid0")' is a reasonable revset for finding
the relevant commits, including preparation for it. The code is very
poorly tested, which makes it very hard to maintain. It seems it's
only used by FB and they don't use this code base anymore, so let's
remove the code to make it easier for us to maintain our product.
Differential Revision: https://phab.mercurial-scm.org/D9041
Raphaël Gomès <rgomes@octobus.net> [Sun, 06 Sep 2020 10:33:12 +0200] rev 45517
rust-cpython: switch logging facade from `simple_logger` to `env_logger`
`simple_logger` is just too simple. `env_logger` supports logging to `stderr`,
and logging filtering, for example, which are becoming necessary now. The
project is nicely active.
Differential Revision: https://phab.mercurial-scm.org/D8990
Connor Sheehan <sheehan@mozilla.com> [Tue, 22 Sep 2020 09:06:09 -0400] rev 45516
git: pass `id` attribute of `pygit2.Tree` object
`pygit2`'s Repository object expects an instance of `Oid`
to return the corresponding object, instead of the object
itself.
After this change and D9062, `hg commit -i` seems to work,
unless it hits a case folding assertion (ie trying to add
a file like `README.md`).
Differential Revision: https://phab.mercurial-scm.org/D9068
Kyle Lippincott <spectral@google.com> [Wed, 16 Sep 2020 12:13:46 -0700] rev 45515
branchmap: add a cache validation cache, avoid expensive re-hash on every use
In a pathological `hg log` case, we end up executing the branchmap validity
checking twice per commit displayed. Or maybe we always do, and I just noticed
because it's really slow in this repo for some reason.
Before:
```
Time (mean ± σ): 9.816 s ± 0.071 s [User: 9.435 s, System: 0.392 s]
Range (min … max): 9.709 s … 9.920 s
```
After:
```
Time (mean ± σ): 8.671 s ± 0.078 s [User: 8.309 s, System: 0.392 s]
Range (min … max): 8.594 s … 8.816 s
```
Differential Revision: https://phab.mercurial-scm.org/D9023
Augie Fackler <augie@google.com> [Mon, 21 Sep 2020 15:05:38 -0400] rev 45514
merge with stable
Antoine cezar<acezar@chwitlabs.fr> [Wed, 16 Sep 2020 19:32:53 +0200] rev 45513
run-test: allow relative path in `--blacklist` and `--whitelist` (
issue6351)
When specifying a test with `--blacklist` or `--whitelist` with path relatives
to the repository root (eg: `tests/test-check-commit.t`) the file is not taken
into account. It only works when the name of the test is given.
It would be better if `--blacklist` and `--whitelist` behaviors where compatible
with `--test-list`.
This patch allows to use relative path with `--blacklist` and `--whitelist`
while staying compatible with the old behavior by checking the test relative
path in addition to its name.
Differential Revision: https://phab.mercurial-scm.org/D9024
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Sep 2020 15:10:14 -0700] rev 45512
rebase: stop clearing on-disk mergestate when running in memory
In-memory merge no longer uses on-disk mergestate since
19590b126764
(merge: use in-memory mergestate when using in-memory context,
2020-09-15). This patch removes the clearing from two places in the
in-memory rebase code. I've verified that the one with a TODO was
indeed fixed by the aforementioned commit. The other instance doesn't
seem to have any test coverage, but I'm pretty confident it's also
safe to remove.
Differential Revision: https://phab.mercurial-scm.org/D9057
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Sep 2020 10:15:13 -0700] rev 45511
rebase: delete unused p1 argument to _concludenode()
Unused since
a0192a03216d (rebase: remove now unnecessary logic to
allow empty commit when branch changes, 2020-07-09).
Differential Revision: https://phab.mercurial-scm.org/D9055
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Sep 2020 10:04:02 -0700] rev 45510
rebase: fix an inconsistent hyphenation in a debug message
We used "rebasing on disk" but "rebasing in-memory". I believe the
former is correct, so I used that.
Differential Revision: https://phab.mercurial-scm.org/D9054
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 18 Sep 2020 12:20:28 +0200] rev 45509
strip: with --keep, consider all revs "removed" from the wcp (
issue6270)
The current code was blink to change from other branches when stripping merges
that are ancestors of the working copy parents.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 18 Sep 2020 12:10:12 +0200] rev 45508
test-strip: display more information highlight buggy behavior
When using `hg strip --keep` on a set of changeset that contains a merge, the
set of file considered when rebuilding the dirstate is missing files updated by
changeset that are not directly inside the `new-parent::old-parent` range.
We start with updating the test with new output highlighting the issue.
This issue was spotted because that dirstate inconsistency made the test flaky.
The new command make the test less flaky (but still wrong).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 15 Sep 2020 15:03:07 +0200] rev 45507
changing-files: implement equality checking
This makes debugging simpler.