- Jan 04, 2023
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Jan 03, 2023
-
-
Martin von Zweigbergk authored
Without this patch, you'd get `mercurial.error.ProgrammingError: fileset expression with no context`.
-
Matt Harbison authored
This was deprecated in 5.9.
-
Matt Harbison authored
This was deprecated in 5.9.
-
Matt Harbison authored
This was deprecated since 5.8.
-
- Dec 06, 2022
-
-
Matt Harbison authored
Otherwise, we get a bunch of test failures for missing things like pygments, or tests skipped entirely. The input file is a copy/paste from the equivalent Windows file, but with dulwich, pygit2, and pytest-vcr commented out because the build process errors out with them, flagging them as incompatible with loading from memory. I have no idea if that's actually true or not, because I've noticed that if I don't `make clean` after every build, the next build flags the watchman stuff as incompatible with loading from memory. The remaining failures are: Failed test-alias.t: output changed Failed test-basic.t: output changed Failed test-check-help.t: output changed Failed test-commit-interactive.t: output changed Failed test-extension.t: output changed Failed test-help.t: output changed Failed test-i18n.t: output changed Failed test-log.t: output changed Failed test-qrecord.t: output changed Failed test-share-safe.t: output changed Most of the issues seem related to loading help for disabled extensions from `hgext.__index__`, namely the full extension help being unavailable, not being able to resolve what commands are provided by what extension, and not having the command level help available. test-log.t, test-commit-interactive.t, and test-i18n.t look like i18n (or lack thereof) issues. test-basic.t is just odd: @@ -55,7 +55,7 @@ On Python 3, stdio may be None: $ hg debuguiprompt --config ui.interactive=true 0<&- - abort: Bad file descriptor (no-rhg !) + abort: response expected abort: response expected (rhg !) [255] $ hg version -q 0<&-
-
Matt Harbison authored
-
Matt Harbison authored
The in-memory pyoxidizer builds apparently behave as expected.
-
Matt Harbison authored
There are a handful of tests with different output between the two flavors of pyoxidizer builds (like the location of the modules and templates), and a few others that avoid `known-bad-output` cases with the embedded resources that shouldn't cause the tests to fail.
-
- Dec 05, 2022
-
-
Matt Harbison authored
We should definitely be able to test this before releasing it with an installer.
-
Matt Harbison authored
The resources seem to be embedded inside the binary, but for some reasons they aren't read there. And since they are embedded, they aren't staged by the build in the `lib` directory like on Windows. So copy them from the repo. We can figure out what's going wrong later.
-
- Jan 02, 2023
-
-
Matt Harbison authored
-
Anton Shestakov authored
By using a custom cmdhint message here we're avoiding automatic hint generation in _statecheck.hint(), which would suggest 'hg bisect --continue' and 'hg bisect --abort' (neither of which is a valid option). This patch is only fixing the message about in-progress bisect, it doesn't modify the unfinished state checking logic.
-
- Dec 22, 2022
-
-
Arseniy Alekseyev authored
-
- Dec 21, 2022
-
-
Raphaël Gomès authored
This will help with debugging.
-
- May 02, 2022
-
-
Raphaël Gomès authored
The dirstate already is capable of verifying its integrity (although v2 features are not yet checked), let's run that code in `hg verify`.
-
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.
-
- Dec 21, 2022
-
-
Raphaël Gomès authored
-
- May 02, 2022
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
This will be called later in the series by the `verify` command.
-
Raphaël Gomès authored
Use the new API instead of the deprecated one. The next changeset will remove the use of `state` in this method altogether (currently still in the messages)
-
Raphaël Gomès authored
This was already done in the Rust implementation and is a useful primitive. The C implementation had this called `merged`, but wasn't used anywhere. It will be used in the next changeset.
-
- Dec 19, 2022
-
-
Franck Bret authored
Display statistics about revlogs in the store. Useful to get an approximate size of a repository, etc. More statistics will be added in the future.
-
- Dec 17, 2022
-
-
Matt Harbison authored
This is mostly successful, as examining util.pyi, posix.pyi, and windows.pyi after a pytype run shows that the type overloads for `oslink`, `readlink`, `removedirs`, `rename`, `split`, and `unlink` have been removed. (Some of these still have an @overload, but the differences are the variable names, not the types.) However, @overloads remain for `abspath` and `normpath` for some reason. It's useful to redefine these methods for the type checking phase because in addition to excluding str and PathLike variants, some of these functions have optional args in stdlib that aren't implemented in the custom implementation on Windows, and we want the type checking to flag that instead of assuming it's an allowable overload everywhere. One last quirk I noticed that I can't explain- `pycompat.TYPE_CHECKING` is always False, so the conditionals need to check `typing.TYPE_CHECKING` directly. I tried dropping the custom code for assigning `pycompat.TYPE_CHECKING` and simply did `from typing import TYPE_CHECKING` directly in pycompat.py, and used `pycompat.TYPE_CHECKING` for the conditional here... and pytype complained that `pycompat` doesn't have the `TYPE_CHECKING` variable.
-
Matt Harbison authored
Skipping the file wrappers for now because there's interplay with C code, and making them subclass `typing.BinaryIO_Proxy` confuses PyCharm a bit.
-
- Dec 16, 2022
-
-
Matt Harbison authored
These methods either don't have an analog in the windows module, or are aliased in the windows module from something else (like os.path.xxx).
-
Matt Harbison authored
-
Matt Harbison authored
Flagged by PyCharm, since it didn't match the signature of the method being overridden. The default value in the superclass is also `_chunksize`, and I suspect that the amount read from `osread` should be limited to what is passed in. Only one caller (`bufferedinputpipe.unbufferedread()`) passes this argument, and it passes the max of `_chunksize` and whatever it was passed.
-
Matt Harbison authored
Flagged by PyCharm while inspecting imports from the platform modules.
-
Matt Harbison authored
These are done in sync because some platforms have empty implementations, and it isn't obvious what the types should be without examining the other. We want the types aligned, so @overload definitions that differ aren't generated. The only differences here are the few methods that unconditionally raise an error are marked as `NoReturn`, which doesn't seem to bother pytype. A couple of the posix module functions needed to be updated with a modern ternary operator, because pytype seems to want to use the type of the second object in the old `return x and y` style.
-
Matt Harbison authored
-
- Dec 15, 2022
-
-
Matt Harbison authored
These are the low level functions that are imported by the mercurial.windows module, which is in turn imported by mercurial.utils as the platform module. Pretty straightforward, but pytype inferred very little of it, likely because of the heavy ctypes usage. It also seems to trigger a pytype bug in procutil, now that it has an idea of the underlying function type, so disable that warning to maintain a working test.
-
Matt Harbison authored
The comment was actually backwards- `winreg` is importable on py3, and is already imported by mercurial/windows.py.
-
Matt Harbison authored
Surprisingly, pytype struggled to figure out the return types in the posix functions.
-
Matt Harbison authored
The `rapply` methods are left out because it's not `rapply(f, xs: _T0) -> _T0` as I first thought- it's used somewhere to walk a collection and convert between bytes and str. Also, the `open()` call is partially untyped because I'm not sure what its purpose is at this point- both the name and mode can be either bytes or str as it is currently constituted. It might make sense to assert that the file is being opened in binary mode (like `namedtempfile()`) and cast the result to `BinaryIO`, but that shouldn't be smuggled in with these other changes. The return is currently typed as `Any` because something suddenly got smarter and a few uses in util.py (like readfile()) suddenly think it returns `IO[str]` instead of `IO[bytes]` (BinaryIO), and it flags the type mismatch there.
-
Matt Harbison authored
Found by typing the global functions in mercurial.pycompat.
-