equal
deleted
inserted
replaced
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) |