Mercurial > hg
view tests/test-dirstate-race2.t @ 43611:27c25c0dc967
rust-matchers: remove default implementations for `Matcher` trait
We don't expect a whole lot of matchers to be defined, and this makes it more
obvious what a matcher does by reading its `impl Matcher for FooMatcher`.
This patch has the added benefit of fixing the `AlwaysMatcher`, its `matches`
function differs from the former default.
Differential Revision: https://phab.mercurial-scm.org/D7255
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 06 Nov 2019 16:24:24 +0100 |
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