push: test the checks preventing pushing orphaness to a server
This is introduce a simple example, more are coming. See inline documentation
for details.
tests: add tests trying to use dir as style, as %include, and as __base__
Differential Revision: https://phab.mercurial-scm.org/D8800
tests: fix mistaken copy&paste from commit
4489e9a22763
Differential Revision: https://phab.mercurial-scm.org/D8802
manifest: kill one more instance of the old merge hash hack
Differential Revision: https://phab.mercurial-scm.org/D8766
dirstate: isolate node len dependency for the pure version
When switching to a 256bit hash function, this still needs adjustment,
but concentrates the change in one place.
Differential Revision: https://phab.mercurial-scm.org/D8815
fix: update documentation to reflect preference for --source over --rev
I should have updated the documentation in
5205b46bd887 (fix: add a -s
option to format a revision and its descendants, 2020-03-13) and/or
a6ef1e8e2f6d (fix: mark -r as advanced, 2020-03-13)...
Differential Revision: https://phab.mercurial-scm.org/D8808
tests: make check-py3-compat.py actually load the specified files correctly
For most uses, this change is essentially a no-op, as this script is generally
only run by test-check-py3-compat.t, which will already put `$TESTDIR/..` in
`$PYTHONPATH`.
When running outside of tests, however, `$PYTHONPATH` is likely not set, causing
check-py3-compat.py to parse the file from the repo, but then import the
installed version, and raise any errors about the installed version, not the one
currently in the repo.
Additionally, this helps users (like me) who have a strange set up where their
home directory (and thus their hg repos) happen to be in a subdirectory of
sys.prefix (which is /usr on my system). Since the '.' entry added to sys.path
takes precedence over the absolute path of `$TESTDIR/..` in `$PYTHONPATH`, the
path to the modules that it imports (and that show up in any stack trace) are
*relative*, meaning that we don't detect them as starting with `sys.prefix`.
Sample non-test invocation, and the difference this change makes (the path for
'error at <path>:<line>' is correct now)::
Before:
```
$ python3 contrib/check-py3-compat.py mercurial/win*.py
mercurial/win32.py: error importing: <ValueError> _type_ 'v' not supported (error at check-py3-compat.py:65)
mercurial/windows.py: error importing: <ModuleNotFoundError> No module named 'msvcrt' (error at check-py3-compat.py:65)
```
After:
```
$ python3 contrib/check-py3-compat.py mercurial/win*.py
mercurial/win32.py: error importing: <ValueError> _type_ 'v' not supported (error at win32.py:11)
mercurial/windows.py: error importing: <ModuleNotFoundError> No module named 'msvcrt' (error at windows.py:12)
```
Differential Revision: https://phab.mercurial-scm.org/D8814