repoview: ignore unwritable hidden cache
The atomictemp.close() file attempts to do a rename, which can fail.
Moving the close inside the exception handler fixes it.
This doesn't fit well with the with: pattern, as it's the finalizer
that's failing.
--- a/mercurial/repoview.py Thu Apr 28 15:40:43 2016 -0500
+++ b/mercurial/repoview.py Thu Apr 28 16:26:18 2016 -0500
@@ -130,13 +130,12 @@
newhash = cachehash(repo, hideable)
fh = repo.vfs.open(cachefile, 'w+b', atomictemp=True)
_writehiddencache(fh, newhash, hidden)
+ fh.close()
except (IOError, OSError):
repo.ui.debug('error writing hidden changesets cache\n')
except error.LockHeld:
repo.ui.debug('cannot obtain lock to write hidden changesets cache\n')
finally:
- if fh:
- fh.close()
if wlock:
wlock.release()