Show More
@@ -95,9 +95,9 b' def trywritehiddencache(repo, hideable, ' | |||||
95 | fh.write(newhash) |
|
95 | fh.write(newhash) | |
96 | fh.write(data) |
|
96 | fh.write(data) | |
97 | except (IOError, OSError): |
|
97 | except (IOError, OSError): | |
98 | ui.debug('error writing hidden changesets cache') |
|
98 | repo.ui.debug('error writing hidden changesets cache') | |
99 | except error.LockHeld: |
|
99 | except error.LockHeld: | |
100 | ui.debug('cannot obtain lock to write hidden changesets cache') |
|
100 | repo.ui.debug('cannot obtain lock to write hidden changesets cache') | |
101 | finally: |
|
101 | finally: | |
102 | if fh: |
|
102 | if fh: | |
103 | fh.close() |
|
103 | fh.close() | |
@@ -128,12 +128,24 b' def computehidden(repo):' | |||||
128 |
|
128 | |||
129 | During most operation hidden should be filtered.""" |
|
129 | During most operation hidden should be filtered.""" | |
130 | assert not repo.changelog.filteredrevs |
|
130 | assert not repo.changelog.filteredrevs | |
|
131 | ||||
131 | hidden = frozenset() |
|
132 | hidden = frozenset() | |
132 | hideable = hideablerevs(repo) |
|
133 | hideable = hideablerevs(repo) | |
133 | if hideable: |
|
134 | if hideable: | |
134 | cl = repo.changelog |
|
135 | cl = repo.changelog | |
135 | blocked = cl.ancestors(_getstaticblockers(repo), inclusive=True) |
|
136 | hidden = tryreadcache(repo, hideable) | |
136 | hidden = frozenset(r for r in hideable if r not in blocked) |
|
137 | if hidden is None: | |
|
138 | blocked = cl.ancestors(_getstaticblockers(repo), inclusive=True) | |||
|
139 | hidden = frozenset(r for r in hideable if r not in blocked) | |||
|
140 | trywritehiddencache(repo, hideable, hidden) | |||
|
141 | elif repo.ui.configbool('experimental', 'verifyhiddencache', True): | |||
|
142 | blocked = cl.ancestors(_getstaticblockers(repo), inclusive=True) | |||
|
143 | computed = frozenset(r for r in hideable if r not in blocked) | |||
|
144 | if computed != hidden: | |||
|
145 | trywritehiddencache(repo, hideable, computed) | |||
|
146 | repo.ui.warn(_('Cache inconsistency detected. Please ' + | |||
|
147 | 'open an issue on http://bz.selenic.com.\n')) | |||
|
148 | hidden = computed | |||
137 |
|
149 | |||
138 | # check if we have wd parents, bookmarks or tags pointing to hidden |
|
150 | # check if we have wd parents, bookmarks or tags pointing to hidden | |
139 | # changesets and remove those. |
|
151 | # changesets and remove those. |
General Comments 0
You need to be logged in to leave comments.
Login now