Mercurial > hg
changeset 42324:2338bdea4474 stable
bookmark: also make bookmark cache depends of the changelog
Since the changelog is also used during the parsing of bookmark data, it should
be listed as a file cache dependency. This fix the race condition we just
introduced a test for.
This is a simple fix that might lead bookmark data to be invalidated more often
than necessary. We could have more complicated code to deal with this race in a
more "optimal" way. I feel it would be unsuitable for stable.
In addition, the performance impact of this is probably minimal and I don't
foresee the more advanced fix to actually be necessary.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 20 May 2019 10:08:28 +0200 |
parents | c2b83c957621 |
children | ffab9eed3921 89c0c8edc9d4 |
files | mercurial/localrepo.py tests/test-bookmarks-corner-case.t |
diffstat | 2 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Mon May 20 10:08:17 2019 +0200 +++ b/mercurial/localrepo.py Mon May 20 10:08:28 2019 +0200 @@ -1219,7 +1219,8 @@ cls = repoview.newtype(self.unfiltered().__class__) return cls(self, name, visibilityexceptions) - @repofilecache('bookmarks', 'bookmarks.current') + @mixedrepostorecache(('bookmarks', ''), ('bookmarks.current', ''), + ('00changelog.i', 'store')) def _bookmarks(self): return bookmarks.bmstore(self)
--- a/tests/test-bookmarks-corner-case.t Mon May 20 10:08:17 2019 +0200 +++ b/tests/test-bookmarks-corner-case.t Mon May 20 10:08:28 2019 +0200 @@ -212,7 +212,7 @@ | summary: A1 | | o changeset: 3:f26c3b5167d1 - | | bookmark: book-B (false !) + | | bookmark: book-B | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: B1 @@ -235,4 +235,4 @@ $ hg -R bookrace-server book book-A 4:9ce3b28c16de - book-B 3:f26c3b5167d1 (false !) + book-B 3:f26c3b5167d1