Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Dec 2021 10:03:00 +0100] rev 48435
upgrade: don't use `dd status=none` in the test
This breaks on Windows, so lets use `>2 /dev/null` like in the other tests.
Differential Revision: https://phab.mercurial-scm.org/D11873
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Dec 2021 10:23:51 +0100] rev 48434
test-upgrade: narrow the `debugformat` call when upgrading to dirstate-v2
This will make the test less noisy when new requirement are added.
Differential Revision: https://phab.mercurial-scm.org/D11864
Martin von Zweigbergk <martinvonz@google.com> [Mon, 06 Dec 2021 12:30:54 -0800] rev 48433
filemerge: remove `premerge` argument from `_makebackup()`
We now always pass `True`, so there's no need to pass it.
Differential Revision: https://phab.mercurial-scm.org/D11863
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 Dec 2021 22:45:35 -0800] rev 48432
filemerge: inline `_filemerge()` into `filemerge()`
The caller is now trivial, so the indirection is pointless.
Differential Revision: https://phab.mercurial-scm.org/D11860
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 Dec 2021 21:41:43 -0800] rev 48431
filemerge: make `_filemerge()` do both premerge and merge
This patch removes the `premerge` argument from `_filemerge()` and
makes it do both the "premerge" and "merge" steps without the caller
having to call it twice.
Differential Revision: https://phab.mercurial-scm.org/D11859
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 Dec 2021 16:21:46 -0800] rev 48430
filemerge: merge `premerge()` into `filemerge()`
Differential Revision: https://phab.mercurial-scm.org/D11858
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 Dec 2021 15:43:54 -0800] rev 48429
mergestate: inline `_resolve()` into `resolve()`
The caller is now trivial, so the indirection is pointless.
Differential Revision: https://phab.mercurial-scm.org/D11857
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 Dec 2021 13:53:02 -0800] rev 48428
mergestate: make `_resolve()` do both preresolve and resolve
This patch removes the `preresolve` argument from `_resolve()` and
makes it do both the "preresolve" and "resolve" steps without the
caller having to call it twice.
Differential Revision: https://phab.mercurial-scm.org/D11856
Martin von Zweigbergk <martinvonz@google.com> [Thu, 02 Dec 2021 22:59:36 -0800] rev 48427
mergestate: merge `preresolve()` into `resolve()`
The separation between `preresolve()` and `resolve()` was something
added for the "merge driver" feature. Since we removed that in
32ce4cbaec4b (mergedriver: delete it, 2020-09-17), we don't need the
separation anymore. More cleanups will follow.
Differential Revision: https://phab.mercurial-scm.org/D11855
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 Dec 2021 21:50:25 -0800] rev 48426
tests: remove unnecessary explicit args from `failfilemerge.py`
The `failfilemerge()` function always raises an exception without
looking at its arguments, so let's use `*args` and `**kwargs`.
Differential Revision: https://phab.mercurial-scm.org/D11854
Martin von Zweigbergk <martinvonz@google.com> [Mon, 29 Nov 2021 23:00:29 -0800] rev 48425
simplemerge: set `conflicts` earlier for :union tool
Differential Revision: https://phab.mercurial-scm.org/D11853
Raphaël Gomès <rgomes@octobus.net> [Thu, 25 Nov 2021 18:26:50 +0100] rev 48424
downgrade: don't assume existence of nodemap files when downgrading
Persistent nodemap files might not exist on a fresh repository, so ignore the
potential missing file errors.
Differential Revision: https://phab.mercurial-scm.org/D11806
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 11:53:54 +0100] rev 48423
typo: s/unkown/unknown across the codebase
Differential Revision: https://phab.mercurial-scm.org/D11807
Simon Sapin <simon.sapin@octobus.net> [Thu, 25 Nov 2021 18:33:51 +0100] rev 48422
rhg: Update the dirstate on disk after status
Differential Revision: https://phab.mercurial-scm.org/D11840
Simon Sapin <simon.sapin@octobus.net> [Thu, 02 Dec 2021 15:10:03 +0100] rev 48421
rhg: Add Repo::write_dirstate
This method is not used yet. It saves to disk any mutation that was done to
the `Repo`’s dirstate through `Repo::dirstate_map_mut`. It takes care of
dirstate-v1 v.s. dirstate-v2, dockets, data files, appending when possible,
etc.
Differential Revision: https://phab.mercurial-scm.org/D11839
Simon Sapin <simon.sapin@octobus.net> [Thu, 02 Dec 2021 12:05:36 +0100] rev 48420
rhg: Add lazy/cached dirstate data file ID parsing on Repo
The `dirstate_parents`, `dirstate_data_file_uuid`, and `dirstate_map` members
of `Repo` can be access in any order and the `.hg/dirstate` file should only
be opened once.
Differential Revision: https://phab.mercurial-scm.org/D11838
Simon Sapin <simon.sapin@octobus.net> [Mon, 29 Nov 2021 19:00:11 +0100] rev 48419
rhg: Make Repo::dirstate_parents a LazyCell
Unify with the same abstraction used for other lazily-initialized components
Differential Revision: https://phab.mercurial-scm.org/D11837
Simon Sapin <simon.sapin@octobus.net> [Mon, 29 Nov 2021 18:46:04 +0100] rev 48418
rust: Add Vfs::write_atomic
This method writes to a temporary file then renames in place
Differential Revision: https://phab.mercurial-scm.org/D11836
Simon Sapin <simon.sapin@octobus.net> [Mon, 22 Mar 2021 09:07:10 +0100] rev 48417
rhg: Initial repository locking
Initial Rust implementation of locking based on the `.hg/wlock` symlink (or file),
with lock breaking when the recorded pid and hostname show that a lock was
left by a local process that is not running anymore (as it might have been
killed).
Differential Revision: https://phab.mercurial-scm.org/D11835
Simon Sapin <simon.sapin@octobus.net> [Mon, 29 Nov 2021 17:37:08 +0100] rev 48416
rust: Serializing a DirstateMap does not mutate it anymore
Differential Revision: https://phab.mercurial-scm.org/D11834
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 15:07:59 +0100] rev 48415
rhg: don't run `blackbox` if not activated
You currently have no way of turning off blackbox. Aside from being a bug, this
can be annoying if you use `rhg` in your shell prompt, but also because the
current implementation of blackbox is quite slow due to `user` querying.
Differential Revision: https://phab.mercurial-scm.org/D11813
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 15:05:58 +0100] rev 48414
rust: add function to check if an extension is enabled
This will be used in the next patch
Differential Revision: https://phab.mercurial-scm.org/D11812
Raphaël Gomès <rgomes@octobus.net> [Fri, 03 Dec 2021 15:06:40 +0100] rev 48413
dirstate: remove unused method
Its last usage was inlined in `merge.py`.
Differential Revision: https://phab.mercurial-scm.org/D11849
Raphaël Gomès <rgomes@octobus.net> [Tue, 07 Dec 2021 15:01:30 +0100] rev 48412
fsmonitor: fix criteria for nonnormalset computation
... oops.
Differential Revision: https://phab.mercurial-scm.org/D11875
Raphaël Gomès <rgomes@octobus.net> [Mon, 06 Dec 2021 11:10:59 +0100] rev 48411
fsmonitor: incorporate fixes for Python 3.10 (
issue6612)
Differential Revision: https://phab.mercurial-scm.org/D11862
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 04 Dec 2021 03:51:33 +0100] rev 48410
python2-compat: fix extensions' tests on python2
They are minor output different to be taken in account.
Differential Revision: https://phab.mercurial-scm.org/D11861
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 16 Nov 2021 11:53:58 +0000] rev 48409
rhg: add support for narrow clones and sparse checkouts
This adds a minimal support that can be implemented without parsing the narrowspec.
We can parse the narrowspec and add support for more operations later.
The reason we need so few code changes is as follows:
Most operations need no special treatment of sparse because
some of them only read dirstate (`rhg files` without `-r`),
which bakes in the filtering,
some of them only read store (`rhg files -r`, `rhg cat`),
and some of them read no data at all (`rhg root`, `rhg debugrequirements`).
`status` is the command that might care about sparse, so we just disable
rhg on it.
For narrow clones, `rhg files` clearly needs the narrowspec to work
correctly, so we fall back.
`rhg cat` seems to work consistently with `hg cat` if the file exists.
If the file is hidden by narrow spec, the error message is different and confusing, so
that's something that we should improve in follow-up patches.
Differential Revision: https://phab.mercurial-scm.org/D11764
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Dec 2021 14:36:40 +0100] rev 48408
update: reformat the `commands.update.check` help
This make the various option clearer.
Differential Revision: https://phab.mercurial-scm.org/D11852
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Dec 2021 12:03:23 +0100] rev 48407
update: properly overwrite `check` config with `--no-` variants
Before this change `--merge` override `commands.update.check=abort/noconflict`,
and `--check` "override" `commands.update.check=none/linear`. However the
`--no-merge` and `--no-check` version where not doing anything.
The `--no-` two flags now behave properly.
Differential Revision: https://phab.mercurial-scm.org/D11851
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Dec 2021 12:19:36 +0100] rev 48406
update: add a test for `--merge` overriding the "abort" config
I don't see this behavior tested anywhere.
Differential Revision: https://phab.mercurial-scm.org/D11850