Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Jul 2021 19:31:52 +0200] rev 47589
dirstate: introduce an internal `_add` method
We want to split current user of `dirstate.add` between `hg add`-like cases and
update of the dirstate coming from update/merge.
To do this we will introduce new API. The first step is to introduces an
internal function that these new API migh use (or not use) to distinct between
the migrated users and the others.
Differential Revision: https://phab.mercurial-scm.org/D11010
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 22:37:24 +0200] rev 47588
run-tests: rely on an actual executable in PATH instead of alias for `hg`
The alias approach is poorly inherited by other process that the test might
spawn.
To solve this we use the same approach as for `python`/`python3` we write an
executable file explicitly. Doing this fixes `which hg` invocation that now
returns the same location as `hg`.
Using chg server side has some minor effect on some stdout/stderr ordering when
using `chg` as the server too.
Differential Revision: https://phab.mercurial-scm.org/D11053
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 20:42:26 +0200] rev 47587
tests: blacklist a handful of test with `rhg` or `chg`
The use of `alias` to enforce `chg` and `rhg` means we are actually using a mix
of `rhg`/`chg` and `hg` when calling `hg` in the test. Fixing this breaks
various tests. This would be a large detour to fix that. I am disabling
them for now with an appropriate comment.
We would hopefully get back to them by the 5.8 release.
Differential Revision: https://phab.mercurial-scm.org/D11052
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 01:58:34 +0200] rev 47586
run-tests: use more explicit signaling for `chg`
Using a dedicated variable is clearer and less fragile. It cannot hurt.
Differential Revision: https://phab.mercurial-scm.org/D11051
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 01:57:35 +0200] rev 47585
run-tests: drop the `rhg` flag for `hghave.py` if unset
This seems cleaner.
Differential Revision: https://phab.mercurial-scm.org/D11050
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 20:03:46 +0200] rev 47584
run-tests: introduce a `HGTEST_REAL_HG` variable for test
It turns out that currently, `hg` and `which hg` can point to different things
because `hg` is an alias… This is annoying because script and pieces of test
are unknowingly using the wrong `hg`.
We will fix it in another changeset. However some test actually need to use a
real `hg` binary and not some `chg` or `rhg` equivalent. So we introduce a new
variable with the right value and we put it to us in the appropriate location.
Differential Revision: https://phab.mercurial-scm.org/D11049
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 17:06:53 +0200] rev 47583
run-test: clarify the error with a bad --with-hg is passed
This helped me to understand what was going on when I got into trouble.
Differential Revision: https://phab.mercurial-scm.org/D11046
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 17:19:07 +0200] rev 47582
windows: make sure we fully read and cleanly close the connection
Maybe this will prevent server on Windows to sometimes complains about the
client closing the connection too soon. So we make sure we read everything and
we officially close the connection.
Hopefully Windows will be happier and the test will stop being flaky.
Differential Revision: https://phab.mercurial-scm.org/D11073
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 02:42:09 +0200] rev 47581
test-bookmark: clarify the path involved in a pull creating divergence
This make the test easier to follow. Especially because this part is currently
failing on windows.
Differential Revision: https://phab.mercurial-scm.org/D11056
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 02:25:06 +0200] rev 47580
test-removeemptydirs: adjust to Windows behavior for the `histedit` case
Windows stay in the "same" directory and the warning message is not applicable.
This make `tests/test-removeemptydirs.t` pass on Windows.
Differential Revision: https://phab.mercurial-scm.org/D11055
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 02:18:56 +0200] rev 47579
test-removeemptydirs: clarify the state of things in the `histedit` case
This make the test easier to follow and will help to compare with the behavior
on windows.
Differential Revision: https://phab.mercurial-scm.org/D11054
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 20:09:46 +0200] rev 47578
test-infinitepush: drop unused helper
They are unused since
de4c2f3af97f. We drop them for clarity.
Differential Revision: https://phab.mercurial-scm.org/D11048
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 17:02:01 +0200] rev 47577
run-tests: setup "correct" python earlier
I don't see any good reason to wait. This result in slightly simpler code.
Differential Revision: https://phab.mercurial-scm.org/D11047
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 16:28:45 +0200] rev 47576
run-tests: cleanup windows generation of the python / python3 pointeur
They are no need to generate then in RUNTESTDIR and we don't need a python2
executable. (because not test ever use `python2` explicitly).
This is probably still not perfect, but at least it is better.
Differential Revision: https://phab.mercurial-scm.org/D11045
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 15:29:58 +0200] rev 47575
run-tests: always define a custom-bin directory
We are always generating `python` / `python3` executable and we will soon often
generate a `hg` executable. So let's always make it a thing. This will help us
to make sure we have the appropriate binary available to all script. On both
linux and Windows.
Differential Revision: https://phab.mercurial-scm.org/D11044
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 16:18:41 +0200] rev 47574
run-tests: explicitly track that `pythondir` was inferred
If we want to know that something happened, we should simply track that this
things happened.
This will be useful to start using `tmpbindir` more in a different form.
Differential Revision: https://phab.mercurial-scm.org/D11043
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 15:39:43 +0200] rev 47573
run-tests: use a global WINDOWS constant instead of multiple tests
This should make the code clearer.
This required the adjustement of a hack in the code testing this code.
Differential Revision: https://phab.mercurial-scm.org/D11041
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 13:36:39 +0200] rev 47572
test-run-test: use explicit variables to clarify paths
Since $TESTTMP and $TESTDIR are defined for both the main scope and the test
run during the test, the situation get confusing. To work around that, we
define some new, explicit, variables with the values we needs to keep track
of.
Differential Revision: https://phab.mercurial-scm.org/D11034
Raphaël Gomès <rgomes@octobus.net> [Wed, 23 Jun 2021 14:34:55 +0200] rev 47571
run-tests: also catch double-escapes for $TESTTMP
On Windows the `$TESTTMP` string "repr" is different than its value, because `\`
become `\\`. We introduce a new `$STR_REPR_TESTTMP` substitution to match that
too.
Differential Revision: https://phab.mercurial-scm.org/D11001
Raphaël Gomès <rgomes@octobus.net> [Thu, 08 Jul 2021 17:13:18 +0200] rev 47570
ci-windows: introduce manual windows CI
Note: most of the foundational work of this commit was done by Matt Harbison,
but enough has changed that I don't feel comfortable sending this patch as his.
In our quest to remove Python 2 from Mercurial, we need to get Windows CI going
to check that Python 3 support is up to an acceptable standard.
This is the first step: adding a manual step to run a full Windows CI, with a
certain definition of "full" since some things are not installed yet, like SVN.
Differential Revision: https://phab.mercurial-scm.org/D11025
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 23:41:54 +0200] rev 47569
dirstate-item: deprecate tuple access on the class
This should help us to catch and update the last user of this, especially in
extensions.
People will need to run the test with --pure to actually catch it, but this is
better than nothing.
Differential Revision: https://phab.mercurial-scm.org/D10992
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 06:44:49 +0200] rev 47568
dirstate-item: use the v1_serialization method in debugstate
I am assuming the debug command are looking into the serialized format so I am
using the `v1_` variants. This assumption might be wrong.
Differential Revision: https://phab.mercurial-scm.org/D10988
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 10:32:49 +0200] rev 47567
dirstate-item: also build DistateItem in dirstate.directories()
The rust code was building tuple.
Differential Revision: https://phab.mercurial-scm.org/D10983
Augie Fackler <augie@google.com> [Thu, 08 Jul 2021 17:09:57 -0400] rev 47566
parsers: move DirstateItem to attr.s
This is the followup I requested on D10949 - it was easy, so I just
did it.
Differential Revision: https://phab.mercurial-scm.org/D11030
Daniel Ploch <dploch@google.com> [Fri, 02 Jul 2021 11:44:13 -0700] rev 47565
cmdutil: fix newandmodified file accounting for --interactive commits
`originalchunks` is a misleading name, because it only contains header objects, which are flattened to selected hunks by the filter function. As such, `chunks not in originalchunks` is always True and misleading, because hunk objects never compare equal to header objects. This change fixes the internal naming and removes the useless parameter from the method.
This change also fixes
issue6533, by considering the filtered headers, rather than the hunks, when determining new and modified files. If a file is renamed + edited, and the edited hunks are deselected (but the file is not), the filtered chunks will contain a header for the file (because it's .special()) but but no hunks.
Differential Revision: https://phab.mercurial-scm.org/D10936
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Jul 2021 15:09:26 +0200] rev 47564
test-run-tests: add missing backslash for Windows
Differential Revision: https://phab.mercurial-scm.org/D11004
Raphaël Gomès <rgomes@octobus.net> [Thu, 24 Jun 2021 12:54:55 +0200] rev 47563
windows: use cpu-intensive task instead of real time in test
Windows profiling breaks when using real time instead of cpu, but we need the
extension function to show up, so make it do something instead of waiting.
I've also duplicated the test cases so that explicit real and CPU times are
tested (on platforms other than Windows)
Differential Revision: https://phab.mercurial-scm.org/D11003
Raphaël Gomès <rgomes@octobus.net> [Thu, 24 Jun 2021 12:51:53 +0200] rev 47562
windows: use shell function instead of variable substitution
This makes it compatible with Windows
Differential Revision: https://phab.mercurial-scm.org/D11002
Raphaël Gomès <rgomes@octobus.net> [Tue, 06 Jul 2021 10:51:41 +0200] rev 47561
compat: normalise path before comparison in revlog splitting test
This fixes the test on Window.
Differential Revision: https://phab.mercurial-scm.org/D10999
Raphaël Gomès <rgomes@octobus.net> [Thu, 08 Jul 2021 15:55:15 +0200] rev 47560
windows: replicate the normalizing behavior of os.environ
On Windows, `os.environ` normalizes environment variables to uppercase. Our
current bytes-based environ substitution object is a simple dict, so we add
the normalization behavior.
This fixes test-http-peer.t on Windows.
Differential Revision: https://phab.mercurial-scm.org/D10998
Raphaël Gomès <rgomes@octobus.net> [Thu, 08 Jul 2021 15:55:04 +0200] rev 47559
encoding: move case-related utils up
This will be useful for the next commit that needs this code earlier.
Differential Revision: https://phab.mercurial-scm.org/D11024
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:24:15 +0200] rev 47558
dirstate: drop the last explicit `state` usage in the module
The internal detail of the `state` bytes is not longer exposed to the dirstate
layer.
Differential Revision: https://phab.mercurial-scm.org/D10977
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 20:20:37 +0200] rev 47557
test: use a python script in `test-transaction-rollback-on-sigpipe.t`
This still does not work on Windows, but at least this is a python script now.
Differential Revision: https://phab.mercurial-scm.org/D10947
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 20:53:23 +0200] rev 47556
test: make sure we hit the SIGPIPE in test-transaction-rollback-on-sigpipe
With a coming change, we might not hit the sig pipe without issue and extra line
of output. We do this early to make the next change clearer.
Differential Revision: https://phab.mercurial-scm.org/D10946
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 20:22:56 +0200] rev 47555
test: clarify some output in `test-transaction-rollback-on-sigpipe`
We don't want a dirty transaction to remain, but need to check the transaction
was aborted. Otherwise it is easy to have no abandoned transaction if the
transaction succeed.
Differential Revision: https://phab.mercurial-scm.org/D10945
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Jun 2021 13:58:18 -0700] rev 47554
tests: add test case for issue 6262
If you split a commit, prune one of the sides, and then try to revive
that commit by adding a successor, it will incorrectly be considered
divergence.
Differential Revision: https://phab.mercurial-scm.org/D10916
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Jun 2021 14:02:34 -0700] rev 47553
rewriteutil: look up common predecessor on unfiltered repo
Before this patch, the code looking for divergence could crash when
tried to look up a common predecessor in the filtered repo. This patch
fixes that by looking up the common predecessor in an unfiltered repo.
Differential Revision: https://phab.mercurial-scm.org/D10917
Martin von Zweigbergk <martinvonz@google.com> [Wed, 07 Jul 2021 10:07:28 -0700] rev 47552
tests: demonstrate crash when common predecessor of divergence is hidden
Differential Revision: https://phab.mercurial-scm.org/D11009
Augie Fackler <augie@google.com> [Wed, 07 Jul 2021 11:48:08 -0400] rev 47551
shallowutil: dedent code after the previous change
Differential Revision: https://phab.mercurial-scm.org/D11008
Augie Fackler <augie@google.com> [Wed, 07 Jul 2021 11:47:02 -0400] rev 47550
shallowutil: narrow scope of try/except block
This will make this code easier to understand in the future.
Differential Revision: https://phab.mercurial-scm.org/D11007
Augie Fackler <augie@google.com> [Wed, 07 Jul 2021 11:45:17 -0400] rev 47549
remotefilelog: stop using RuntimeError for control flow
We introduce a new exception to handle the various failure categories,
rather than relying on RuntimeError.
Differential Revision: https://phab.mercurial-scm.org/D11006
Augie Fackler <augie@google.com> [Wed, 07 Jul 2021 13:20:47 -0400] rev 47548
remotefilelog: tweak corrupt cache test to grep more flexibly
I'm about to fix the abuse of RuntimeError here, which breaks the test
if I don't do this.
Differential Revision: https://phab.mercurial-scm.org/D11005
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 06:39:29 +0200] rev 47547
dirstatenonnormalcheck: fix some bytes formating on python3
Passing any object to `%s` no longer works, we need to explicitely convert the
representation to bytes.
Differential Revision: https://phab.mercurial-scm.org/D10993
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 06:38:58 +0200] rev 47546
dirstate-item: use the properties in `contrib/dirstatenonnormalcheck.py`
Differential Revision: https://phab.mercurial-scm.org/D10991
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 06:27:26 +0200] rev 47545
dirstate-item: use the properties in largefiles
I am now sure what large file is doing with then, but at least it is no longer
using the tuple API to access data.
Differential Revision: https://phab.mercurial-scm.org/D10990
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 06:45:32 +0200] rev 47544
dirstate-item: use the `state` property in debugpathcomplete
Ideally we would use narrower property, but this is a good start.
Differential Revision: https://phab.mercurial-scm.org/D10989
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 06:24:51 +0200] rev 47543
dirstate-item: use the properties in fakedirstatewritetime
Differential Revision: https://phab.mercurial-scm.org/D10987
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 03:58:38 +0200] rev 47542
dirstate-item: use the properties in dirstatemap
Differential Revision: https://phab.mercurial-scm.org/D10986
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 03:57:40 +0200] rev 47541
dirstate-item: use the properties in pathutil
Differential Revision: https://phab.mercurial-scm.org/D10985
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jul 2021 03:57:11 +0200] rev 47540
dirstate-item: use need_delay when packing dirstate
Differential Revision: https://phab.mercurial-scm.org/D10984
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 22:27:29 +0200] rev 47539
dirstate-item: rename the class to DirstateItem
The object is no longer a tuple, so it seems clearer to rename it (and its
associated method)
Differential Revision: https://phab.mercurial-scm.org/D10982
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:37:38 +0200] rev 47538
dirstate-entry: add a `mtime` property
This is clearer than "tuple" indexing.
Differential Revision: https://phab.mercurial-scm.org/D10981
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:34:24 +0200] rev 47537
dirstate-entry: add a `size` property
This is clearer than "tuple" indexing.
Differential Revision: https://phab.mercurial-scm.org/D10980
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:33:21 +0200] rev 47536
dirstate-entry: add a `mode` property
This is clearer than "tuple" indexing.
Differential Revision: https://phab.mercurial-scm.org/D10979
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:28:08 +0200] rev 47535
dirstate: no longer pass `oldstate` to the `dropfile`
The `oldstate` value come literally from `_map` so we don't need to pass tha
information along.
Differential Revision: https://phab.mercurial-scm.org/D10978
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:21:59 +0200] rev 47534
dirstate: drop last explicite `state` usage in status
Given that the previous conditional we can safely use `tracked` here.
Differential Revision: https://phab.mercurial-scm.org/D10976
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:15:41 +0200] rev 47533
dirstate: reorder "state" checking conditional
This is easier to read and will make this simpler to update in the next
changeset.
Differential Revision: https://phab.mercurial-scm.org/D10975
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:13:53 +0200] rev 47532
dirstate-entry: add a `need_delay` method
This abstract the internal processing need for entry that would have an
ambiguous mtime (If I understand things correctly).
Differential Revision: https://phab.mercurial-scm.org/D10974
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 02:12:54 +0200] rev 47531
dirstate-entry: add a `tracked` property
This abstract the individual `state` value and has a clear semantic.
Differential Revision: https://phab.mercurial-scm.org/D10973
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:59:41 +0200] rev 47530
dirstate: drop `state` to `_addpath`
All its value are inferred within the dirstatemap now.
Differential Revision: https://phab.mercurial-scm.org/D10972
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:58:03 +0200] rev 47529
dirstate: infer the 'n' state from `from_p2`
This flag is only used with 'n' so lets set the state based on that parameter in
this case.
Differential Revision: https://phab.mercurial-scm.org/D10971
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:57:28 +0200] rev 47528
dirstate: infer the 'n' state from `possibly_dirty`
This flag is only used with 'n' so lets set the state based on that parameter in
this case.
Differential Revision: https://phab.mercurial-scm.org/D10970
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:48:11 +0200] rev 47527
dirstate: use a `merged` parameter to _addpath
Differential Revision: https://phab.mercurial-scm.org/D10969
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:44:43 +0200] rev 47526
dirstate-entry: add a `added` property
Lets use more semantic property instead of the `state` implementation details.
Differential Revision: https://phab.mercurial-scm.org/D10968
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:42:10 +0200] rev 47525
dirstate: use a `added` parameter to _addpath
My next target are the explicit `state` byte, so let start with abstracting
their initial storage.
Differential Revision: https://phab.mercurial-scm.org/D10967
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 20:59:26 +0200] rev 47524
dirstate: no longer pass the `oldstate` value to the dirstatemap
The dirstatemap already have this information.
Differential Revision: https://phab.mercurial-scm.org/D10966
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 20:57:44 +0200] rev 47523
dirstate: stop using `oldstate` in `dirstate._addpath`
We don't need to pass the oldstate around, so lets use the new property
instead.
Differential Revision: https://phab.mercurial-scm.org/D10965
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 20:53:52 +0200] rev 47522
dirstate: drop the now unused magic constants for the dirstate module
We no longer need them for the dirstate logic. We only need them in the
dirstate map (and parsers) logic.
This smell like progress.
Differential Revision: https://phab.mercurial-scm.org/D10964
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 20:23:19 +0200] rev 47521
dirstate: move the handling of special case within the dirstatemap
The dirstatemap is as well, if not better, suited to decided how to encode the
various case. So we move the associated code in the dirstatemap `addfile`
method.
This means the dirstate no longer need to know about the various magic value
used in the dirstate V1 format.
The pain of the messy API start to be quite palpable in Rust, we should clean
this up once the current large refactoring is dealt with.
Differential Revision: https://phab.mercurial-scm.org/D10963
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 20:41:27 +0200] rev 47520
rust: bump rust-cpython version for 0.6.0
That function as a nice `is_none` method on `PyObject` that we will put to use.
Differential Revision: https://phab.mercurial-scm.org/D10962
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 20:40:10 +0200] rev 47519
rust-dirstate: make the MTIME_UNSET public
We will use it in the cpython layer soon.
Differential Revision: https://phab.mercurial-scm.org/D10961
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 19:42:03 +0200] rev 47518
rust-dirstatemap: expand the wrapping code a bit
This is easier to read.
Differential Revision: https://phab.mercurial-scm.org/D10960
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 01:14:15 +0200] rev 47517
dirstate-entry: restrict `from_p2` property to tracked file
The other case is now handled in `from_p2_removed`, and should ideally be moved
to a lower level. So we can drop the `state == 'n'` narrowing and move it in the
property itself.
Differential Revision: https://phab.mercurial-scm.org/D10959
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 20:34:09 +0200] rev 47516
dirstate-entry: `merged_removed` and `from_p2_removed` properties
Lets start to define and use more semantic property. These two might be a bit
too low level and could be shaved off later, however this seems an improvement
for now.
Differential Revision: https://phab.mercurial-scm.org/D10958
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 04:18:54 +0200] rev 47515
dirstate-entry: add a `removed` property
Lets start to define and use more semantic property.
Differential Revision: https://phab.mercurial-scm.org/D10957
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 04:26:28 +0200] rev 47514
dirstate-entry: add a `from_p2` property
Lets start to define and use more semantic property.
Differential Revision: https://phab.mercurial-scm.org/D10956
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 04:07:21 +0200] rev 47513
dirstate-entry: add a `merged` property
Lets start to define and use more semantic property.
Differential Revision: https://phab.mercurial-scm.org/D10955
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Jul 2021 03:29:20 +0200] rev 47512
dirstate-entry: add a `state` property (and use it)
This replace the [0] access. Ultimately is we should probably get ride of this
in its current form. However this is a good transitional solution to move away
for tuple indexing for now.
Differential Revision: https://phab.mercurial-scm.org/D10954
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 19:52:00 +0200] rev 47511
dirstate: move most of the `remove` logic with dirstatemap `removefile`
This code deal with special logic to preserving "merged" and "from_p2" information when removing a file. These are implementation details that are more suitable for the dirstatemap layer. Since the dirstatemap layer alreaday have most of the information necessary to do so, the move is easy.
This move helps us to encapsulate more implementation details within the dirstatemap and its entry. Easing the use of a different storage for dirstate v2.
Differential Revision: https://phab.mercurial-scm.org/D10953
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 20:12:46 +0200] rev 47510
dirstate: add a `in_merge` property
This factor the "p2 is not null" check and is fairly simpler to read.
Differential Revision: https://phab.mercurial-scm.org/D10952
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 04:01:17 +0200] rev 47509
dirstate-entry: introduce dedicated accessors for v1 serialization
In the spirit of changing the content and storage of the dirstate entry, we add
new method that the code doing v1 serialisation can use.
Adding such method to the C object is quite trivial.
Differential Revision: https://phab.mercurial-scm.org/D10951
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 03:55:23 +0200] rev 47508
dirstate-entry: goes through the `dirstatetuple` constructor in all cases
We need to make sure we build an object.
Differential Revision: https://phab.mercurial-scm.org/D10950
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Jul 2021 03:48:35 +0200] rev 47507
dirstate-entry: turn dirstate tuple into a real object (like in C)
With dirstate V2, the stored information and actual format will change. This mean we need to start an a better abstraction for a dirstate entry that a tuple directly accessed.
By chance, the C code is already doing this and pretend to be a tuple. So it
should be fairly easy. We start with turning the tuple into an object, we will
slowly migrate the dirstate code to no longer use the tuple directly in later
changesets.
Differential Revision: https://phab.mercurial-scm.org/D10949
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 09 Jul 2021 00:25:14 +0530] rev 47506
Added signature for changeset
411dc27fd9fd
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 09 Jul 2021 00:25:07 +0530] rev 47505
Added tag 5.8.1 for changeset
411dc27fd9fd
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Jul 2021 16:12:09 +0200] rev 47504
corruption: backout changeset
49fd21f32695 (
issue6528)
inverting the parent is masking copy information leading to bad content being
fetched and bad status result.
Since
49fd21f32695, exchange can actively swap these parent corrupting existing
changesets and triggering the corruption.
Data corruption are considered critical so backing this out and doing and
unscheduled release seems in order.
Differential Revision: https://phab.mercurial-scm.org/D10995
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Jul 2021 19:22:50 +0200] rev 47503
corruption: add a test for
issue6528
The initial reproduction script was provided by Charles Chamberlain from Jane
Street.
Differential Revision: https://phab.mercurial-scm.org/D10996
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 24 Jun 2021 03:22:03 +0200] rev 47502
stream: double check that self.vfs is *not* in the vfsmap
The stream clone logic allows for writing any content to any file under various
vfs. This is *not* suitable for *vfs*, since writing in `.hg/` directly allow to
modify the configuration and is a great and simple gateway for remote code
execution.
Differential Revision: https://phab.mercurial-scm.org/D10905
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 02:27:48 +0200] rev 47501
dirstate: split dirstatemap in its own file
The dirstate file is large enough and the dirstatemap is quite insulated logic
already.
Differential Revision: https://phab.mercurial-scm.org/D10934
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 23:09:44 +0200] rev 47500
run-tests: stop writing a `python3` symlink pointing to python2
Having `python3` actually pointing to `python2` is bad. So we stop doing so.
In addition we need to re-introduce a `python` executable since some of the
script really need to be able to say "current python" in their shbang. For
example, `hghave` is one of such script.
The faulty changes where introduced by
c102b704edb5.
Differential Revision: https://phab.mercurial-scm.org/D10943
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Jul 2021 12:42:32 +0200] rev 47499
check-code: stop forbidding return code result
There is no explication of what is the intend of that check and what is the
alternative.
I suspect this comes from the transition to the "unified test" format circa
2010. With the non zero return explicitly listed in the output explicit $?
checking became Redundant. However there is valid use case for checking $? so I
am dropping this check.
Differential Revision: https://phab.mercurial-scm.org/D10994
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 22:58:04 +0200] rev 47498
run-tests: avoid an early return
To fix the "python3 pointing to python2" we will also need to create a "python"
pointer. So we will need to create multiple pointer. So we need to stop using
early return.
We replace the early return with a loop and a continue, since the next
changeset will introduce that loop anyway.
Differential Revision: https://phab.mercurial-scm.org/D10942
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 22:53:17 +0200] rev 47497
run-tests: clarify pyexename assignement
That assignement is wrong, we clarify that it is wrong before starting to fix
it. This will make the fix clearer.
Differential Revision: https://phab.mercurial-scm.org/D10941
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 22:50:43 +0200] rev 47496
run-tests: factor appdata out
This is a gratuitous readability change.
Differential Revision: https://phab.mercurial-scm.org/D10940
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 22:48:47 +0200] rev 47495
run-tests: unroll a non-so-one-liner
This is shorter and clearer.
Differential Revision: https://phab.mercurial-scm.org/D10939
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Jul 2021 22:48:35 +0200] rev 47494
run-tests: unroll a non-so-one-liner
This is shorter and clearer.
Differential Revision: https://phab.mercurial-scm.org/D10938