Mercurial > hg
view tests/test-dirstate-race2.t @ 48347:1eeec02cd919
filemerge: rename _formatconflictmarker() since it formats a label
`_formatconflictmarker()`'s name made me think that it would create
something like `<<<<<<<` and maybe some more stuff after it, but it's
actually just the label that comes after on the same line. So let's
rename it to `_formatlabel()`. That's better aligned with the
variables the result is assigned it.
Differential Revision: https://phab.mercurial-scm.org/D11801
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 19 Nov 2021 18:14:25 -0800 |
parents | bf11ff22a9af |
children | a4a5d123fb03 f7086f6173f8 |
line wrap: on
line source
#testcases dirstate-v1 dirstate-v2 #if dirstate-v2 $ cat >> $HGRCPATH << EOF > [format] > exp-rc-dirstate-v2=1 > [storage] > dirstate-v2.slow-path=allow > EOF #endif 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