Yep, your reasoning here makes sense. While I'm glad that you discovered after some investigation that we're doing the right thing already, it's a little troubling that this wasn't easy to understand from reading the code, and that (from my interpretation of what you wrote) you had to think and rethink your reading a couple of times to figure out what was going on. Sounds a bit like a latent future bug, doesn't it?
On Tue, Nov 22, 2016 at 12:19 PM, Ryan McElroy <r...@fb.com> wrote: > I think that fixing the read open ordering is not sufficient. > > I was just chatting with Jun Wu (quark) about this, and after that > discussion, it seems that we also have to ensure the write order is > correct. Specifically, bookmarks must be written only after the changelog > is written, otherwise, regardless of the order that we open files for read, > we can have a bookmarks file that points to commits that no reader can see > yet. > > Based on a very quick look at the transaction code, it looks like > filegenerators in transactions are stored in a dict, so we have no > guarantees about what order they will be called in, so it's very likely > that we often call the write of the bookmarks file before the write of the > changelog, making it so that no read-side fix alone can be sufficient to > solve this problem. >
_______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel