hgext3rd/evolve/stablesort.py
branchstable
changeset 4103 1c0a09668709
parent 3975 68d414cde579
child 4104 a023abd12f3b
equal deleted inserted replaced
4102:3895f6fcd35c 4103:1c0a09668709
   632 
   632 
   633         (crude version, rewrite everything all the time)
   633         (crude version, rewrite everything all the time)
   634         """
   634         """
   635         if self._cachekey is None or self._cachekey == self._ondiskkey:
   635         if self._cachekey is None or self._cachekey == self._ondiskkey:
   636             return
   636             return
   637         cachevfs = compat.getcachevfs(repo)
   637         try:
   638         cachefile = cachevfs(self._filepath, 'w', atomictemp=True)
   638             cachevfs = compat.getcachevfs(repo)
   639 
   639             cachefile = cachevfs(self._filepath, 'w', atomictemp=True)
   640         # data to write
   640 
   641         headerdata = self._serializecachekey()
   641             # data to write
   642         indexdata = self._index.tostring()
   642             headerdata = self._serializecachekey()
   643         data = self._data.tostring()
   643             indexdata = self._index.tostring()
   644         indexsize = S_INDEXSIZE.pack(len(indexdata))
   644             data = self._data.tostring()
   645 
   645             indexsize = S_INDEXSIZE.pack(len(indexdata))
   646         # writing
   646 
   647         cachefile.write(headerdata)
   647             # writing
   648         cachefile.write(indexsize)
   648             cachefile.write(headerdata)
   649         cachefile.write(indexdata)
   649             cachefile.write(indexsize)
   650         cachefile.write(data)
   650             cachefile.write(indexdata)
   651         cachefile.close()
   651             cachefile.write(data)
       
   652             cachefile.close()
       
   653         except (IOError, OSError) as exc:
       
   654             repo.ui.debug('stablesortcache: could not write update %s\n' % exc)
   652 
   655 
   653 @eh.reposetup
   656 @eh.reposetup
   654 def setupcache(ui, repo):
   657 def setupcache(ui, repo):
   655 
   658 
   656     class stablesortrepo(repo.__class__):
   659     class stablesortrepo(repo.__class__):