Mercurial > hg
view tests/test-dirstate-race2.t @ 47063:1d075b857c90 stable
tests: ensure `$PYTHON` is quoted for Windows
Global installs of python3 go into "Program Files", and tons of tests fail with
mysterious errors if this isn't quoted. Most of this is a followup to
0826d684a1b5, but a some of these were existing issues. Shebang lines are
ignored because quoting breaks direct execution- these will need to be launched
indirectly with the quoted `$PYTHON` command.
Differential Revision: https://phab.mercurial-scm.org/D10633
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 01 May 2021 00:41:43 -0400 |
parents | 87a34c767384 |
children | 93eb6c8035a9 |
line wrap: on
line source
Checking the size/permissions/file-type of files stored in the dirstate after an update where the files are changed concurrently outside of hg's control. $ hg init repo $ cd repo $ echo a > a $ hg commit -qAm _ $ echo aa > a $ hg commit -m _ $ hg debugdirstate --no-dates n 644 3 (set |unset) a (re) $ cat >> $TESTTMP/dirstaterace.py << EOF > from mercurial import ( > extensions, > merge, > ) > def extsetup(ui): > extensions.wrapfunction(merge, 'applyupdates', wrap) > def wrap(orig, *args, **kwargs): > res = orig(*args, **kwargs) > with open("a", "w"): > pass # just truncate the file > return res > EOF Do an update where file 'a' is changed between hg writing it to disk and hg writing the dirstate. The dirstate is correct nonetheless, and so hg status correctly shows a as clean. $ hg up -r 0 --config extensions.race=$TESTTMP/dirstaterace.py 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg debugdirstate --no-dates n 644 2 (set |unset) a (re) $ echo a > a; hg status; hg diff