mercurial/changelog.py
branchstable
changeset 14687 15200b46165b
parent 14643 7e295dd10d40
child 15661 20ae902c43ec
equal deleted inserted replaced
14508:07722bb8a08c 14687:15200b46165b
    98     return o
    98     return o
    99 
    99 
   100 class changelog(revlog.revlog):
   100 class changelog(revlog.revlog):
   101     def __init__(self, opener):
   101     def __init__(self, opener):
   102         revlog.revlog.__init__(self, opener, "00changelog.i")
   102         revlog.revlog.__init__(self, opener, "00changelog.i")
       
   103         if self._initempty:
       
   104             # changelogs don't benefit from generaldelta
       
   105             self.version &= ~revlog.REVLOGGENERALDELTA
       
   106             self._generaldelta = False
   103         self._realopener = opener
   107         self._realopener = opener
   104         self._delayed = False
   108         self._delayed = False
   105         self._divert = False
   109         self._divert = False
       
   110         # hiddenrevs: revs that should be hidden by command and tools
       
   111         self.hiddenrevs = set()
   106 
   112 
   107     def delayupdate(self):
   113     def delayupdate(self):
   108         "delay visibility of index updates to other readers"
   114         "delay visibility of index updates to other readers"
   109         self._delayed = True
   115         self._delayed = True
   110         self._divert = (len(self) == 0)
   116         self._divert = (len(self) == 0)
   116         "finalize index updates"
   122         "finalize index updates"
   117         self._delayed = False
   123         self._delayed = False
   118         self.opener = self._realopener
   124         self.opener = self._realopener
   119         # move redirected index data back into place
   125         # move redirected index data back into place
   120         if self._divert:
   126         if self._divert:
   121             n = self.opener(self.indexfile + ".a").name
   127             nfile = self.opener(self.indexfile + ".a")
       
   128             n = nfile.name
       
   129             nfile.close()
   122             util.rename(n, n[:-2])
   130             util.rename(n, n[:-2])
   123         elif self._delaybuf:
   131         elif self._delaybuf:
   124             fp = self.opener(self.indexfile, 'a')
   132             fp = self.opener(self.indexfile, 'a')
   125             fp.write("".join(self._delaybuf))
   133             fp.write("".join(self._delaybuf))
   126             fp.close()
   134             fp.close()
   183         if len(extra_data) != 3:
   191         if len(extra_data) != 3:
   184             time = float(extra_data.pop(0))
   192             time = float(extra_data.pop(0))
   185             try:
   193             try:
   186                 # various tools did silly things with the time zone field.
   194                 # various tools did silly things with the time zone field.
   187                 timezone = int(extra_data[0])
   195                 timezone = int(extra_data[0])
   188             except:
   196             except ValueError:
   189                 timezone = 0
   197                 timezone = 0
   190             extra = {}
   198             extra = {}
   191         else:
   199         else:
   192             time, timezone, extra = extra_data
   200             time, timezone, extra = extra_data
   193             time, timezone = float(time), int(timezone)
   201             time, timezone = float(time), int(timezone)