- Feb 22, 2025
-
-
Pierre-Yves David authored
Same rational as the parent changeset.
-
- Nov 18, 2024
-
-
Pierre-Yves David authored
The number of format to consider increase, this will make the command simpler to use in tests and debug. See test changes for some direct benefits.
-
- Oct 04, 2024
-
-
Matt Harbison authored
I have no idea why, but running the `hg -R auto-upgrade debuglock --set-lock` command near the end of `test-upgrade-repo.t` hangs the test. It does background the process and `killdaemons.py` runs without error, but control doesn't return to `run-tests.py` until the process is manually killed. I did notice that `$!` in MSYS is *not* the PID of the process that got backgrounded, even when a simple `sleep 60 &` is run in MSYS without the *.t file. When `killdaemons.py` is run manually with the PID in ProcessExplorer, the backgrounded process terminates immediately, and returns control to `run-tests.py`. This looks like it would be a race, but the test waits 10s for the lock file to appear before attempting to kill the process, so there's time. `hg serve` has a `--pid-file` option to write the pid to the file, but this is only a debug command, so I'm not bothering with cluttering the command line.
-
- Oct 03, 2024
-
-
Matt Harbison authored
While the command itself doesn't error out on Windows, it also doesn't make the filesystem readonly. Therefore the repo gets altered to drop dirstate-v2, and puts it out of sync with that happens on Linux.
-
- Dec 11, 2023
-
-
Pierre-Yves David authored
The test suite mostly use small repositories, that implies that most changelog in the tests are inlined. As a result, non-inlined changelog are quite poorly tested. Since non-inline changelog are most common case for serious repositories, this lack of testing is a significant problem that results in high profile issue like the one recently fixed by 66417f55ea33 and 849745d7da89. Inlining the changelog does not bring much to the table, the number of total file saved is negligible, and the changelog will be read by most operation anyway. So this changeset is make it so we never inline the changelog, and de-inline the one that are still inlined whenever we touch them. By doing that, we remove the "dual code path" situation for writing new entry to the changelog and move to a "single code path" situation. Having a single code path simplify the code and make sure it is covered by test (if test cover that situation obviously) This impact all tests that care about the number of file and the exchange size, but there is nothing too complicated in them just a lot of churn. The churn is made "worse" by the fact rust will use the persistent nodemap on any changelog now. Which is overall a win as it means testing the persistent nodemap more and having less special cases. In short, having inline changelog is mostly useless and an endless source of pain. We get rid of it.
-
- Sep 19, 2023
-
-
Pierre-Yves David authored
This is faster and simpler to read.
-
- Jun 26, 2023
-
-
kiilerix authored
Testing on Fedora 38 failed with: egrep: warning: egrep is obsolescent; using grep -E The warning comes from https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 . For further anecdotal evidence of the change, see https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep . This reverses the code check that goes back to e7d3b509af8b. grep -E is POSIX, but there is a risk that it doesn't work the same on all platforms - especially older Unix versions. It should however always be possible to put a GNU grep in $PATH before running the tests.
-
- Jun 17, 2023
-
-
Pierre-Yves David authored
-
- Jun 08, 2023
-
-
Pierre-Yves David authored
Since 6.4, we create a temporary index file to write the split data without overwriting the inline version too early. However, the store encoding does not prevent these new `.i.s` file to collide with a directory with the same name. While the odds for such a collision to happens are fairly low, the collision would prevent Mercurial from working. The store encoding have a mitigation solution in place to prevent such collisions from happening for `.i` and `.d` files, but not for other extensions. We cannot update this encoding scheme to solve the issue since it would diverge from older version of Mercurial. Instead, we create an alternative directory tree dedicated to such files. The use of the `.i` extension combined with store encoding will prevent collisions there.
-
- Feb 22, 2023
-
-
Pierre-Yves David authored
The transaction file generation is already dealing with the backup for this. So, no need to duplicate such backup.
-
- Jan 04, 2023
-
-
Matt Harbison authored
Presumably these were paired with `(no-py3 !)` at one point, but now they were unconditionally true. test-check-code.t required a couple of `(glob)` markers on the changed lines in test-lfs-serve-access.t, because of the `$LOCALIP` usage on those lines. Not sure how those lines slipped through the checks previously.
-
- May 02, 2022
-
-
Raphaël Gomès authored
This reduces a lot of the test output that was otherwise useless, and also makes it a lot easier to add things to verify without breaking the test suite because of additional output.
-
- Jul 05, 2022
-
-
Pierre-Yves David authored
In Python 3, the type are no longer comparable and this expose the error.
-
- Jun 14, 2022
-
-
Pierre-Yves David authored
For well tested case, the message can get in the way, so we add a way to disable it.
-
Pierre-Yves David authored
For well tested case, the message can get in the way, so we add a way to disable it.
-
Pierre-Yves David authored
For well tested case, the message can get in the way, so we add a way to disable it.
-
Pierre-Yves David authored
We will add options to suppress the message in the coming changeset. The changes will be clearer if the full test is already in place.
-
- May 18, 2022
-
-
Pierre-Yves David authored
Looking at the parents is a common need when trying to understanding why a delta was chosen, having it readily available helps a lot.
-
Pierre-Yves David authored
Snapshot are expected to be healthy behavior, while "other" is a bit more suspicious. So we distinct between the two to make it easier to inspect repositories.
-
- Apr 05, 2022
-
-
Pierre-Yves David authored
This seems like a fine default behavior for now. If some users wants something more aggressive we can make the behavior configurable in the future. Differential Revision: https://phab.mercurial-scm.org/D12619
-
Pierre-Yves David authored
This show the current behavior when the repository to auto-upgrade is already locked. The current behavior is to abort, which is probably not great. Now that we have a proper test, we can think about the behavior we wants in a later tests. Differential Revision: https://phab.mercurial-scm.org/D12618
-
Pierre-Yves David authored
This show the current behavior when the repository is unlockable. The current behavior is to abort, which is probably not great. Now that we have a proper test, we can think about the behavior we want in a later changeset. Differential Revision: https://phab.mercurial-scm.org/D12615
-
- Mar 22, 2022
-
-
Pierre-Yves David authored
This is similar to what we introduced for `share-safe`, but apply to the tracked-hint feature. Differential Revision: https://phab.mercurial-scm.org/D12614
-
- Feb 20, 2022
-
-
Gregory Szorc authored
These are no longer needed after dropping support for Python 2. Differential Revision: https://phab.mercurial-scm.org/D12258
-
Gregory Szorc authored
I simply did a search for `^.* \(no-py3 !\)\n` and removed all matched lines. There are still some references to no-py3. But these were the simpler ones to match against. Differential Revision: https://phab.mercurial-scm.org/D12253
-
- Feb 17, 2022
-
-
Pierre-Yves David authored
The dual-write approach was mostly useless. As explained in the previous version of the help, the key had to be read twice before we could cache a value. However this "read twice" limitation actually also apply to any usage of the key. If some operation wants to rely of the "same value == same tracked set" property it would need to read the value before, and after running that operation (or at least, after, in all cases). So it cannot be sure the operation it did is "valid" until checking the key after the operation. As a resultat such operation can only be read-only or rollbackable. This reduce the utility of the "same value == same tracked set" a lot. So it seems simpler to drop the double write and to update the documentation to highlight that this file does not garantee race-free operation. As a result the "key" is demoted to a "hint". Documentation is updated accordingly. Differential Revision: https://phab.mercurial-scm.org/D12201
-
Pierre-Yves David authored
This seems rather important if we want people to start using it. Differential Revision: https://phab.mercurial-scm.org/D12198
-
- Feb 15, 2022
-
-
Pierre-Yves David authored
This only affects the dirstate and is safe to upgrade in the share. Differential Revision: https://phab.mercurial-scm.org/D12197
-
Pierre-Yves David authored
This would work for a subset of action only. Our first target is dirstate-v2. Differential Revision: https://phab.mercurial-scm.org/D12196
-
- Feb 02, 2022
-
-
Raphaël Gomès authored
-
- Feb 01, 2022
-
-
Pierre-Yves David authored
The rename of the old experimental name was overlooked before the 6.0 release. We rename everything to use the new name (and keep the released name as an alias for compatibility). Differential Revision: https://phab.mercurial-scm.org/D12129
-
- Jan 11, 2022
-
-
Pierre-Yves David authored
The feature have been around for a year (4 version) and is quite important. Lets make it enabled by default. Differential Revision: https://phab.mercurial-scm.org/D11997
-
- Jan 07, 2022
-
-
Pierre-Yves David authored
With `share-safe`, the requirements are stored in multiple files so it seems better to use the command that retrieve the information wherever it is. Differential Revision: https://phab.mercurial-scm.org/D11985
-
- Jan 11, 2022
-
-
Pierre-Yves David authored
Whenever possible, we use the `hg debugrequires` command instead of directly grepping the file. Differential Revision: https://phab.mercurial-scm.org/D11984
-
- Dec 08, 2021
-
-
Pierre-Yves David authored
This give the "same" result, while taking in account that the requirement file might be in different location, like what `share-safe` is doing. Differential Revision: https://phab.mercurial-scm.org/D11895
-
- Dec 06, 2021
-
-
Pierre-Yves David authored
We have more and more requirement that does not affect revlog or that only affect some of them. It is silly to force a full processing of all revlog to juste move the requirement around, or to simply rewrite the dirstate. So now, only the revlog that needs to be touched will be touched. Unless the --changelog & al flags are used. Differential Revision: https://phab.mercurial-scm.org/D11871
-
Pierre-Yves David authored
This is more explicite and prepare for a smoother transition to smarter picking of the revlog we will process. Differential Revision: https://phab.mercurial-scm.org/D11870
-
Pierre-Yves David authored
Some format upgrade/downgrades -needs- revlog to be recomputed. So we now detect that individually and warn when it contradict explicitly passed flag. This is part of a larger series to make `debugupgraderepo` smarter about which revlog it picks by default. Differential Revision: https://phab.mercurial-scm.org/D11869
-
Pierre-Yves David authored
This used to crash as the dirstate file does not exist in this case. Differential Revision: https://phab.mercurial-scm.org/D11866
-
Pierre-Yves David authored
There is no reason to gate this anymore. Differential Revision: https://phab.mercurial-scm.org/D11865
-