Show More
@@ -42,17 +42,6 b' def read(repo):' | |||||
42 | partial = branchcache() |
|
42 | partial = branchcache() | |
43 | return partial |
|
43 | return partial | |
44 |
|
44 | |||
45 | def write(repo, cache): |
|
|||
46 | try: |
|
|||
47 | f = repo.opener("cache/branchheads", "w", atomictemp=True) |
|
|||
48 | f.write("%s %s\n" % (hex(cache.tipnode), cache.tiprev)) |
|
|||
49 | for label, nodes in cache.iteritems(): |
|
|||
50 | for node in nodes: |
|
|||
51 | f.write("%s %s\n" % (hex(node), encoding.fromlocal(label))) |
|
|||
52 | f.close() |
|
|||
53 | except (IOError, OSError): |
|
|||
54 | pass |
|
|||
55 |
|
||||
56 | def update(repo, partial, ctxgen): |
|
45 | def update(repo, partial, ctxgen): | |
57 | """Given a branchhead cache, partial, that may have extra nodes or be |
|
46 | """Given a branchhead cache, partial, that may have extra nodes or be | |
58 | missing heads, and a generator of nodes that are at least a superset of |
|
47 | missing heads, and a generator of nodes that are at least a superset of | |
@@ -133,7 +122,7 b' def updatecache(repo):' | |||||
133 | update(repo, partial, ctxgen) |
|
122 | update(repo, partial, ctxgen) | |
134 | partial.tipnode = cl.node(catip) |
|
123 | partial.tipnode = cl.node(catip) | |
135 | partial.tiprev = catip |
|
124 | partial.tiprev = catip | |
136 |
write(repo |
|
125 | partial.write(repo) | |
137 | # If cacheable tip were lower than actual tip, we need to update the |
|
126 | # If cacheable tip were lower than actual tip, we need to update the | |
138 | # cache up to tip. This update (from cacheable to actual tip) is not |
|
127 | # cache up to tip. This update (from cacheable to actual tip) is not | |
139 | # written to disk since it's not cacheable. |
|
128 | # written to disk since it's not cacheable. | |
@@ -152,3 +141,14 b' class branchcache(dict):' | |||||
152 | super(branchcache, self).__init__(entries) |
|
141 | super(branchcache, self).__init__(entries) | |
153 | self.tipnode = tipnode |
|
142 | self.tipnode = tipnode | |
154 | self.tiprev = tiprev |
|
143 | self.tiprev = tiprev | |
|
144 | ||||
|
145 | def write(self, repo): | |||
|
146 | try: | |||
|
147 | f = repo.opener("cache/branchheads", "w", atomictemp=True) | |||
|
148 | f.write("%s %s\n" % (hex(self.tipnode), self.tiprev)) | |||
|
149 | for label, nodes in self.iteritems(): | |||
|
150 | for node in nodes: | |||
|
151 | f.write("%s %s\n" % (hex(node), encoding.fromlocal(label))) | |||
|
152 | f.close() | |||
|
153 | except (IOError, OSError): | |||
|
154 | pass |
@@ -1440,7 +1440,7 b' class localrepository(object):' | |||||
1440 | branchmap.update(self, cache, ctxgen) |
|
1440 | branchmap.update(self, cache, ctxgen) | |
1441 | cache.tipnode = self.changelog.tip() |
|
1441 | cache.tipnode = self.changelog.tip() | |
1442 | cache.tiprev = self.changelog.rev(cache.tipnode) |
|
1442 | cache.tiprev = self.changelog.rev(cache.tipnode) | |
1443 |
|
|
1443 | cache.write(self) | |
1444 |
|
1444 | |||
1445 | # Ensure the persistent tag cache is updated. Doing it now |
|
1445 | # Ensure the persistent tag cache is updated. Doing it now | |
1446 | # means that the tag cache only has to worry about destroyed |
|
1446 | # means that the tag cache only has to worry about destroyed | |
@@ -2498,7 +2498,7 b' class localrepository(object):' | |||||
2498 | self[rtiprev].node(), |
|
2498 | self[rtiprev].node(), | |
2499 | rtiprev) |
|
2499 | rtiprev) | |
2500 | self._branchcache = cache |
|
2500 | self._branchcache = cache | |
2501 |
|
|
2501 | cache.write(self) | |
2502 | self.invalidate() |
|
2502 | self.invalidate() | |
2503 | return len(self.heads()) + 1 |
|
2503 | return len(self.heads()) + 1 | |
2504 | finally: |
|
2504 | finally: |
General Comments 0
You need to be logged in to leave comments.
Login now