Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 15:22:08 +0200] rev 48850
debugcommands: remove `debugdirstateignorepatternhash`
This is replaced by the more complete `--docket` option to `debugstate`.
Differential Revision: https://phab.mercurial-scm.org/D12591
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Apr 2022 15:19:19 +0200] rev 48849
dirstate-v2: add flag to `debugstate` to print docket information
This is useful information that we don't easily have access to currently,
unless you speak fluent xxd.
This replaces `debugdirstateignorepatternshash`, which I'll remove in the next
changeset.
Differential Revision: https://phab.mercurial-scm.org/D12590
Matt Harbison <matt_harbison@yahoo.com> [Mon, 02 May 2022 22:04:59 -0400] rev 48848
doc: use an absolute path in sys.path to work around a python DLL loading bug
This bug[1] was causing the zstd entry under "Available Compression Engines" to
be omitted from the documentation for some versions of python3. I could
upgrade, but past upgrades have broken venvs and clobbered installed packages.
It's a trivial workaround, so there's no sense in leaving this subtle issue. It
was flushed out by changing the module policy here from 'allow' to 'c', and
seeing this error:
ImportError: DLL load failed while importing parsers: The parameter is incorrect.
[1] https://github.com/python/cpython/issues/87271
Differential Revision: https://phab.mercurial-scm.org/D12599
Raphaël Gomès <rgomes@octobus.net> [Mon, 25 Apr 2022 16:45:03 +0200] rev 48847
rhg: fix dirstate-v2 data file removal system
In D12581 I introduced logic to remove the previous dirstate-v2 data file
after a new one is created (and its corresponding docket), but the logic was
flawed. I fixed it and made it simpler to understand by gather all logic in
a single expression.
Differential Revision: https://phab.mercurial-scm.org/D12586
Raphaël Gomès <rgomes@octobus.net> [Tue, 19 Apr 2022 12:27:40 +0200] rev 48846
rhg: use `Command::exec` instead of `Command::status`
`rhg` is supposed to be a transparent executable, using a subprocess defeats
that purpose. See inline comments for more details.
This also introduces the `which` crate to check if the fallback executable
actually exists to help debugging (plain `execve` doesn't give much
information).
The error code 253 is used to signify that the fallback is not found, but may
mean in the future that it is otherwise invalid if we start being more
specific.
Differential Revision: https://phab.mercurial-scm.org/D12578
Martin von Zweigbergk <martinvonz@google.com> [Wed, 27 Apr 2022 15:47:57 +0200] rev 48845
commit: don't use hard-coded `.hg/last-message.txt` path in error message
Whoever wrote D8463 just used a hard-coded path to
`.hg/last-message.text` instead of using the relative path that was
already available in the `msgfn` variable (and used just a few lines
up in related message). Let's fix that.
Differential Revision: https://phab.mercurial-scm.org/D12585
Raphaël Gomès <rgomes@octobus.net> [Thu, 21 Apr 2022 15:10:57 +0200] rev 48844
rust-dirstate-v2: clean up previous data file after the docket is written
This was overlooked before and caused many data files to keep living forever.
We could potentially consider adding a random cleanup of them in case they
slipped through one day.
Differential Revision: https://phab.mercurial-scm.org/D12581
Raphaël Gomès <rgomes@octobus.net> [Thu, 21 Apr 2022 14:47:13 +0200] rev 48843
rust-dirstate-v2: save proper data size if no new data on append
This is currently only triggered with the tests ran with `--rhg` without
`--rust`, by "luck", there probably always was something to write, like an
mtime when also using Rust extensions alongside `rhg`.
Differential Revision: https://phab.mercurial-scm.org/D12580
Matt Harbison <matt_harbison@yahoo.com> [Wed, 13 Apr 2022 14:46:22 -0400] rev 48842
procutil: avoid `+= None` when writing to full std{err,out} descriptor on py3
The write function returns `None` if there was no room to write the given
data[1]. I don't like that this is effectively an infinite loop if there's
never any progress emptying the underlying buffer, but we're no worse off than
before, and it fixes random stacktrace popups seen in the py3 build of
TortoiseHg.
[1] https://docs.python.org/3/library/io.html#io.RawIOBase.write
Differential Revision: https://phab.mercurial-scm.org/D12555
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Apr 2022 20:45:38 -0700] rev 48841
amend: don't remove unselected removals from memctx
When there are removed files in the working copy and they are not
selected to be amended into the parent, the `filectxfn` we create for
the `memctx` would still return `None` before this patch. That's
clearly incorrect; we should return the `filectx` from the unamended
commit. Somehow it seems to not matter much except for the case with
copies stored in changesets.
Thanks to Kyle Lippincott for doing all the debugging and identifying
the fix for this issue.
Differential Revision: https://phab.mercurial-scm.org/D12573
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Apr 2022 20:39:31 -0700] rev 48840
tests: demonstrate crash on partial amend with copies in changesets
See the fix in the next patch for explanation.
Differential Revision: https://phab.mercurial-scm.org/D12572
Kyle Lippincott <spectral@google.com> [Wed, 13 Apr 2022 12:14:17 -0700] rev 48839
rebase: while rewriting desc hashes, ignore ambiguous prefix "hashes"
If a repo is sufficiently large, a six digit number "hash prefix" can somewhat
easily reference an ambiguous hash prefix.
Differential Revision: https://phab.mercurial-scm.org/D12552
Kyle Lippincott <spectral@google.com> [Wed, 13 Apr 2022 13:15:33 -0700] rev 48838
tests: add test demonstrating issue with ambiguous has prefixes during rebase
Differential Revision: https://phab.mercurial-scm.org/D12551
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Apr 2022 15:53:48 +0200] rev 48837
help: set the large-file-limit to 10MB
This is a minor increase (5%) and makes the doc much clearer.
Differential Revision: https://phab.mercurial-scm.org/D12484
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Apr 2022 15:46:07 +0200] rev 48836
help: clarify the unit of `ui.large-file-limit` config
Its might be a bit confusing, especially since `large-file.min-size` uses MB.
Differential Revision: https://phab.mercurial-scm.org/D12483
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Apr 2022 18:39:15 +0200] rev 48835
debuglock: ignore ENOENT error when unlocking
This is consistent with the main `lock.release` code.
Differential Revision: https://phab.mercurial-scm.org/D12481
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Apr 2022 18:50:20 +0200] rev 48834
run-tests: introduce "forward-slash" version of everything on windows
This should be useful for some shell invocation.
Differential Revision: https://phab.mercurial-scm.org/D12480
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Apr 2022 18:44:21 +0200] rev 48833
tests-racy-mutation: pass the editor through config instead of env variable
On Windows msys seems to do awful mangling of the environment variable content
that confuses everything to the death. Going through the config works fine, so
we do that instead.
Differential Revision: https://phab.mercurial-scm.org/D12479
Raphaël Gomès <rgomes@octobus.net> [Tue, 05 Apr 2022 17:19:29 +0200] rev 48832
Added signature for changeset 5bd6bcd31dd1
Raphaël Gomès <rgomes@octobus.net> [Tue, 05 Apr 2022 17:19:22 +0200] rev 48831
Added tag 6.1.1 for changeset 5bd6bcd31dd1
Raphaël Gomès <rgomes@octobus.net> [Tue, 05 Apr 2022 17:11:36 +0200] rev 48830
relnotes: add notes for 6.1.1
This also fixes the header for 6.1 from 6.1rc0
Raphaël Gomès <rgomes@octobus.net> [Tue, 05 Apr 2022 10:55:28 +0200] rev 48829
rust-hgpath: add `repr(transparent)` to `HgPath`
It's been stabilized a long time ago, so let's not rely on an implementation
detail now.
Differential Revision: https://phab.mercurial-scm.org/D12433
Raphaël Gomès <rgomes@octobus.net> [Tue, 05 Apr 2022 10:55:28 +0200] rev 48828
rust-dirstatemap: correctly decrement the copies counter
This was caught when writing unit tests for the `DirstateMap`. We were always
setting `had_copy_source` to `false` since we erased the value just before.
Differential Revision: https://phab.mercurial-scm.org/D12432
Raphaël Gomès <rgomes@octobus.net> [Tue, 05 Apr 2022 10:55:28 +0200] rev 48827
rust-dirstatemap: properly decrement counter for tracked descendants
I found this bug when writing unit tests after the fact for the `DirstateMap`.
We never decremented the tracked descendants counter since we were always
resetting the node data before reading it. This also drops the use of `state`,
in favor of the new API to get that information.
Differential Revision: https://phab.mercurial-scm.org/D12431