##// END OF EJS Templates
revlog: move index file opening in a method...
Boris Feld -
r35986:91b3b115 default
parent child Browse files
Show More
@@ -621,7 +621,7 b' class revlog(object):'
621 indexdata = ''
621 indexdata = ''
622 self._initempty = True
622 self._initempty = True
623 try:
623 try:
624 f = self.opener(self.indexfile)
624 f = self._indexfp()
625 if (mmapindexthreshold is not None and
625 if (mmapindexthreshold is not None and
626 self.opener.fstat(f).st_size >= mmapindexthreshold):
626 self.opener.fstat(f).st_size >= mmapindexthreshold):
627 indexdata = util.buffer(util.mmapread(f))
627 indexdata = util.buffer(util.mmapread(f))
@@ -682,6 +682,15 b' class revlog(object):'
682 def _compressor(self):
682 def _compressor(self):
683 return util.compengines[self._compengine].revlogcompressor()
683 return util.compengines[self._compengine].revlogcompressor()
684
684
685 def _indexfp(self, mode='r'):
686 """file object for the revlog's index file"""
687 args = {r'mode': mode}
688 if mode != 'r':
689 args[r'checkambig'] = self._checkambig
690 if mode == 'w':
691 args[r'atomictemp'] = True
692 return self.opener(self.indexfile, **args)
693
685 def _datafp(self, mode='r'):
694 def _datafp(self, mode='r'):
686 """file object for the revlog's data file"""
695 """file object for the revlog's data file"""
687 return self.opener(self.datafile, mode=mode)
696 return self.opener(self.datafile, mode=mode)
@@ -1498,7 +1507,7 b' class revlog(object):'
1498 closehandle = False
1507 closehandle = False
1499 else:
1508 else:
1500 if self._inline:
1509 if self._inline:
1501 df = self.opener(self.indexfile)
1510 df = self._indexfp()
1502 else:
1511 else:
1503 df = self._datafp()
1512 df = self._datafp()
1504 closehandle = True
1513 closehandle = True
@@ -1858,8 +1867,7 b' class revlog(object):'
1858 finally:
1867 finally:
1859 df.close()
1868 df.close()
1860
1869
1861 fp = self.opener(self.indexfile, 'w', atomictemp=True,
1870 fp = self._indexfp('w')
1862 checkambig=self._checkambig)
1863 self.version &= ~FLAG_INLINE_DATA
1871 self.version &= ~FLAG_INLINE_DATA
1864 self._inline = False
1872 self._inline = False
1865 for i in self:
1873 for i in self:
@@ -1928,7 +1936,7 b' class revlog(object):'
1928 dfh = None
1936 dfh = None
1929 if not self._inline:
1937 if not self._inline:
1930 dfh = self._datafp("a+")
1938 dfh = self._datafp("a+")
1931 ifh = self.opener(self.indexfile, "a+", checkambig=self._checkambig)
1939 ifh = self._indexfp("a+")
1932 try:
1940 try:
1933 return self._addrevision(node, rawtext, transaction, link, p1, p2,
1941 return self._addrevision(node, rawtext, transaction, link, p1, p2,
1934 flags, cachedelta, ifh, dfh,
1942 flags, cachedelta, ifh, dfh,
@@ -2157,7 +2165,7 b' class revlog(object):'
2157 end = 0
2165 end = 0
2158 if r:
2166 if r:
2159 end = self.end(r - 1)
2167 end = self.end(r - 1)
2160 ifh = self.opener(self.indexfile, "a+", checkambig=self._checkambig)
2168 ifh = self._indexfp("a+")
2161 isize = r * self._io.size
2169 isize = r * self._io.size
2162 if self._inline:
2170 if self._inline:
2163 transaction.add(self.indexfile, end + isize, r)
2171 transaction.add(self.indexfile, end + isize, r)
@@ -2229,8 +2237,7 b' class revlog(object):'
2229 # reopen the index
2237 # reopen the index
2230 ifh.close()
2238 ifh.close()
2231 dfh = self._datafp("a+")
2239 dfh = self._datafp("a+")
2232 ifh = self.opener(self.indexfile, "a+",
2240 ifh = self._indexfp("a+")
2233 checkambig=self._checkambig)
2234 finally:
2241 finally:
2235 if dfh:
2242 if dfh:
2236 dfh.close()
2243 dfh.close()
General Comments 0
You need to be logged in to leave comments. Login now