Mercurial > hg
view tests/test-issue6642.t @ 50242:379a78001d8e stable
dirstate: set identity whenever we read the dirstate's v2 docket
The docket can be loaded outside of a full read (for exemple when
pre-fetching parents), so the current code would read/set the identity
after loading the data, opening a race condition:
A0: first process docket is read
B0: other process appends new data to the dirstate (and changes the docket)
A1: first process sets the identity (based on pre-B content, but with post-B identity)
A1: first process loads the dirstatemap from the data file
A1: first process does not detect the race and overwrites the update from B.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 01 Mar 2023 02:38:20 +0100 |
parents | 2f326ea19fbc |
children | 7e5be4a7cda7 |
line wrap: on
line source
hg log --debug shouldn't show different data than {file_*} template keywords https://bz.mercurial-scm.org/show_bug.cgi?id=6642 $ hg init issue6642 $ cd issue6642 $ echo a > a $ hg ci -qAm a $ echo b > b $ hg ci -qAm b $ hg up 0 -q $ echo c > c $ hg ci -qAm c $ hg merge -q $ hg ci -m merge $ hg log -GT '{rev} {desc} file_adds: [{file_adds}], file_mods: [{file_mods}], file_dels: [{file_dels}], files: [{files}]\n' @ 3 merge file_adds: [], file_mods: [], file_dels: [], files: [] |\ | o 2 c file_adds: [c], file_mods: [], file_dels: [], files: [c] | | o | 1 b file_adds: [b], file_mods: [], file_dels: [], files: [b] |/ o 0 a file_adds: [a], file_mods: [], file_dels: [], files: [a] $ hg log -r . --debug | grep files [1] $ hg log -r . --debug -T json | egrep '(added|removed|modified)' "added": [], "modified": [], "removed": [], $ hg log -r . --debug -T xml | grep path <paths> </paths>