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

Reply via email to