Mercurial > hg-stable
view tests/test-debian-packages.t @ 50741:bca4037306da stable
rust-revlog: fix incorrect results with NULL_NODE prefixes
In case a short hash is a prefix of `NULL_NODE`, the correct revision
number lookup is `NULL_REVISION` only if there is no match in the nodemap.
Indeed, if there is a single nodemap match, then it is an ambiguity with the
always matching `NULL_NODE`.
Before this change, using the Mercurial development repository as a testbed (it
has public changesets with node ID starting with `0005` and `0009`), this is
what `rhg` did (plain `hg` provided for reference)
```
$ rust/target/debug/rhg cat -r 000 README
README: no such file in rev 000000000000
$ hg cat -r 000 README
abort: ambiguous revision identifier: 000
```
Here is the expected output for `rhg` on ambiguous prefixes (again, before
this change):
```
$ rust/target/debug/rhg cat -r 0001 README
abort: ambiguous revision identifier: 0001
```
The test provided by 8c29af0f6d6e in `test-rhg.t` could become flaky with
this change, unless all hashes are fixed. We expect reviewers to be more
sure about that than we are.
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Thu, 30 Mar 2023 11:34:30 +0200 |
parents | 7e5be4a7cda7 |
children |
line wrap: on
line source
#require test-repo slow debhelper debdeps $ . "$TESTDIR/helpers-testrepo.sh" $ testrepohgenv Ensure debuild doesn't run the testsuite, as that could get silly. $ DEB_BUILD_OPTIONS=nocheck $ export DEB_BUILD_OPTIONS $ OUTPUTDIR=`pwd` $ export OUTPUTDIR $ cd "$TESTDIR"/.. $ make deb > $OUTPUTDIR/build.log 2>&1 $ cd $OUTPUTDIR $ ls *.deb | grep -v 'dbg' mercurial_*.deb (glob) should have .so and .py $ dpkg --contents mercurial_*.deb | grep -E '(localrepo|parsers)' * ./usr/lib/python3/dist-packages/mercurial/cext/parsers*.so (glob) * ./usr/lib/python3/dist-packages/mercurial/localrepo.py (glob) * ./usr/lib/python3/dist-packages/mercurial/pure/parsers.py (glob) should have zsh completions $ dpkg --contents mercurial_*.deb | grep -E 'zsh.*[^/]$' * ./usr/share/zsh/vendor-completions/_hg (glob) should have chg $ dpkg --contents mercurial_*.deb | grep -E 'chg$' * ./usr/bin/chg (glob) chg should come with a man page $ dpkg --contents mercurial_*.deb | grep -E 'man.*chg' * ./usr/share/man/man1/chg.1.gz (glob)