Show More
@@ -89,19 +89,20 b' class appender:' | |||||
89 |
|
89 | |||
90 | class changelog(revlog.revlog): |
|
90 | class changelog(revlog.revlog): | |
91 | def __init__(self, opener): |
|
91 | def __init__(self, opener): | |
92 | revlog.revlog.__init__(self, opener, "00changelog.i") |
|
92 | self._realopener = opener | |
|
93 | self._delayed = False | |||
|
94 | revlog.revlog.__init__(self, self._delayopener, "00changelog.i") | |||
93 |
|
95 | |||
94 | def delayupdate(self): |
|
96 | def delayupdate(self): | |
95 | "delay visibility of index updates to other readers" |
|
97 | "delay visibility of index updates to other readers" | |
96 |
self._ |
|
98 | self._delayed = True | |
97 | self.opener = self._delayopener |
|
|||
98 | self._delaycount = len(self) |
|
99 | self._delaycount = len(self) | |
99 | self._delaybuf = [] |
|
100 | self._delaybuf = [] | |
100 | self._delayname = None |
|
101 | self._delayname = None | |
101 |
|
102 | |||
102 | def finalize(self, tr): |
|
103 | def finalize(self, tr): | |
103 | "finalize index updates" |
|
104 | "finalize index updates" | |
104 | self.opener = self._realopener |
|
105 | self._delayed = False | |
105 | # move redirected index data back into place |
|
106 | # move redirected index data back into place | |
106 | if self._delayname: |
|
107 | if self._delayname: | |
107 | util.rename(self._delayname + ".a", self._delayname) |
|
108 | util.rename(self._delayname + ".a", self._delayname) | |
@@ -116,7 +117,7 b' class changelog(revlog.revlog):' | |||||
116 | def _delayopener(self, name, mode='r'): |
|
117 | def _delayopener(self, name, mode='r'): | |
117 | fp = self._realopener(name, mode) |
|
118 | fp = self._realopener(name, mode) | |
118 | # only divert the index |
|
119 | # only divert the index | |
119 | if not name == self.indexfile: |
|
120 | if not self._delayed or not name == self.indexfile: | |
120 | return fp |
|
121 | return fp | |
121 | # if we're doing an initial clone, divert to another file |
|
122 | # if we're doing an initial clone, divert to another file | |
122 | if self._delaycount == 0: |
|
123 | if self._delaycount == 0: |
General Comments 0
You need to be logged in to leave comments.
Login now