On 11/2/16 2:09 PM, Durham Goode wrote:
There's currently no defined order in which Mercurial should open
files in the .hg directory. For instance, it's possible to read the
changelog first, then several seconds later read the bookmark file. If
during those several seconds the repo receives new commits and a
bookmark moves, then it will read a bookmark that points at a node
that doesn't exist in the inmemory changelog.
We're seeing this on our server, which causes certain bookmarks to
disappear for users in some situations (until they pull again).
To clarify (as Jun has brought up outside of email), we could also solve
this by special casing our various dependencies. Like make
localrepo.changelog manually load the bookmarks first (we can't do it
right now because the bookmarkstore constructor requires the changelog
so it can check if each bookmark exists). So we wouldn't necessarily
need a new layer for it, but it would require more diligence to make
sure all reads happen in the right order across the code base.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel