diff -r 8e030168b09e -r f1b7683f3f95 mercurial/localrepo.py --- a/mercurial/localrepo.py Wed Jul 11 18:35:14 2012 -0500 +++ b/mercurial/localrepo.py Wed Jul 04 02:00:36 2012 +0200 @@ -193,10 +193,7 @@ @storecache('obsstore') def obsstore(self): - store = obsolete.obsstore() - data = self.sopener.tryread('obsstore') - if data: - store.loadmarkers(data) + store = obsolete.obsstore(self.sopener) return store @storecache('00changelog.i') @@ -990,16 +987,8 @@ self.store.write() if '_phasecache' in vars(self): self._phasecache.write() - if 'obsstore' in vars(self) and self.obsstore._new: - # XXX: transaction logic should be used here. But for - # now rewriting the whole file is good enough. - f = self.sopener('obsstore', 'wb', atomictemp=True) - try: - self.obsstore.flushmarkers(f) - f.close() - except: # re-raises - f.discard() - raise + if 'obsstore' in vars(self): + self.obsstore.flushmarkers() for k, ce in self._filecache.items(): if k == 'dirstate': continue