Mercurial > hg
view tests/test-dirstate-race2.t @ 44724:5c2a4f37eace
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems
BSD-derived systems will use "ls -A" when running as root. Adjust the
test cases to always use the flag and include .hg and related output as
appropiately.
Differential Revision: https://phab.mercurial-scm.org/D8397
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Fri, 10 Apr 2020 19:58:34 +0200 |
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