hgext3rd/evolve/stablesort.py
branchstable
changeset 4103 1c0a09668709
parent 3975 68d414cde579
child 4104 a023abd12f3b
--- a/hgext3rd/evolve/stablesort.py	Thu Sep 13 19:09:48 2018 +0200
+++ b/hgext3rd/evolve/stablesort.py	Thu Sep 13 19:22:39 2018 +0200
@@ -634,21 +634,24 @@
         """
         if self._cachekey is None or self._cachekey == self._ondiskkey:
             return
-        cachevfs = compat.getcachevfs(repo)
-        cachefile = cachevfs(self._filepath, 'w', atomictemp=True)
+        try:
+            cachevfs = compat.getcachevfs(repo)
+            cachefile = cachevfs(self._filepath, 'w', atomictemp=True)
 
-        # data to write
-        headerdata = self._serializecachekey()
-        indexdata = self._index.tostring()
-        data = self._data.tostring()
-        indexsize = S_INDEXSIZE.pack(len(indexdata))
+            # data to write
+            headerdata = self._serializecachekey()
+            indexdata = self._index.tostring()
+            data = self._data.tostring()
+            indexsize = S_INDEXSIZE.pack(len(indexdata))
 
-        # writing
-        cachefile.write(headerdata)
-        cachefile.write(indexsize)
-        cachefile.write(indexdata)
-        cachefile.write(data)
-        cachefile.close()
+            # writing
+            cachefile.write(headerdata)
+            cachefile.write(indexsize)
+            cachefile.write(indexdata)
+            cachefile.write(data)
+            cachefile.close()
+        except (IOError, OSError) as exc:
+            repo.ui.debug('stablesortcache: could not write update %s\n' % exc)
 
 @eh.reposetup
 def setupcache(ui, repo):