mercurial/changelog.py
changeset 28490 959eadae589a
parent 28489 8939a95064f1
child 28491 f57f7500a095
equal deleted inserted replaced
28489:8939a95064f1 28490:959eadae589a
   153     __slots__ = (
   153     __slots__ = (
   154         'date',
   154         'date',
   155         '_rawdesc',
   155         '_rawdesc',
   156         'extra',
   156         'extra',
   157         'files',
   157         'files',
   158         'manifest',
   158         '_rawmanifest',
   159         'user',
   159         'user',
   160     )
   160     )
   161 
   161 
   162     def __new__(cls, text):
   162     def __new__(cls, text):
   163         if not text:
   163         if not text:
   186         # changelog v0 doesn't use extra
   186         # changelog v0 doesn't use extra
   187 
   187 
   188         doublenl = text.index('\n\n')
   188         doublenl = text.index('\n\n')
   189         self._rawdesc = text[doublenl + 2:]
   189         self._rawdesc = text[doublenl + 2:]
   190 
   190 
       
   191         nl1 = text.index('\n')
       
   192         self._rawmanifest = text[0:nl1]
       
   193 
   191         l = text[:doublenl].split('\n')
   194         l = text[:doublenl].split('\n')
   192         self.manifest = bin(l[0])
       
   193         self.user = encoding.tolocal(l[1])
   195         self.user = encoding.tolocal(l[1])
   194 
   196 
   195         tdata = l[2].split(' ', 2)
   197         tdata = l[2].split(' ', 2)
   196         if len(tdata) != 3:
   198         if len(tdata) != 3:
   197             time = float(tdata[0])
   199             time = float(tdata[0])
   207 
   209 
   208         self.date = (time, timezone)
   210         self.date = (time, timezone)
   209         self.files = l[3:]
   211         self.files = l[3:]
   210 
   212 
   211         return self
   213         return self
       
   214 
       
   215     @property
       
   216     def manifest(self):
       
   217         return bin(self._rawmanifest)
   212 
   218 
   213     @property
   219     @property
   214     def description(self):
   220     def description(self):
   215         return encoding.tolocal(self._rawdesc)
   221         return encoding.tolocal(self._rawdesc)
   216 
   222