##// END OF EJS Templates
branchmap: stop writing cache for uncommitted data...
marmoute -
r49526:8e5effbf stable
parent child Browse files
Show More
@@ -149,6 +149,13 b' class BranchMapCache(object):'
149 149 def clear(self):
150 150 self._per_filter.clear()
151 151
152 def write_delayed(self, repo):
153 unfi = repo.unfiltered()
154 for filtername, cache in self._per_filter.items():
155 if cache._delayed:
156 repo = unfi.filtered(filtername)
157 cache.write(repo)
158
152 159
153 160 def _unknownnode(node):
154 161 """raises ValueError when branchcache found a node which does not exists"""
@@ -199,6 +206,7 b' class branchcache(object):'
199 206 has a given node or not. If it's not provided, we assume that every node
200 207 we have exists in changelog"""
201 208 self._repo = repo
209 self._delayed = False
202 210 if tipnode is None:
203 211 self.tipnode = repo.nullid
204 212 else:
@@ -403,6 +411,13 b' class branchcache(object):'
403 411 )
404 412
405 413 def write(self, repo):
414 tr = repo.currenttransaction()
415 if not getattr(tr, 'finalized', True):
416 # Avoid premature writing.
417 #
418 # (The cache warming setup by localrepo will update the file later.)
419 self._delayed = True
420 return
406 421 try:
407 422 f = repo.cachevfs(self._filename(repo), b"w", atomictemp=True)
408 423 cachekey = [hex(self.tipnode), b'%d' % self.tiprev]
@@ -427,6 +442,7 b' class branchcache(object):'
427 442 len(self._entries),
428 443 nodecount,
429 444 )
445 self._delayed = False
430 446 except (IOError, OSError, error.Abort) as inst:
431 447 # Abort may be raised by read only opener, so log and continue
432 448 repo.ui.debug(
@@ -2830,6 +2830,8 b' class localrepository(object):'
2830 2830 self.ui.debug(b'updating the branch cache\n')
2831 2831 self.filtered(b'served').branchmap()
2832 2832 self.filtered(b'served.hidden').branchmap()
2833 # flush all possibly delayed write.
2834 self._branchcaches.write_delayed(self)
2833 2835
2834 2836 if repository.CACHE_CHANGELOG_CACHE in caches:
2835 2837 self.changelog.update_caches(transaction=tr)
@@ -1336,7 +1336,5 b' aborted Unbundle should not update the o'
1336 1336 abort: pretxnclose hook failed
1337 1337 [40]
1338 1338 $ cat branchmap-update-02/.hg/cache/branch2-served
1339 99ba08759bc7f6fdbe5304e83d0387f35c082479 1 (missing-correct-output !)
1340 99ba08759bc7f6fdbe5304e83d0387f35c082479 o A (missing-correct-output !)
1341 71ca9a6d524ed3c2a215119b2086ac3b8c4c8286 3 (known-bad-output !)
1342 71ca9a6d524ed3c2a215119b2086ac3b8c4c8286 o A (known-bad-output !)
1339 99ba08759bc7f6fdbe5304e83d0387f35c082479 1
1340 99ba08759bc7f6fdbe5304e83d0387f35c082479 o A
General Comments 0
You need to be logged in to leave comments. Login now