Mercurial > hg
changeset 9164:b0d995b6b0a6
changelog: factor out _delayname
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 18 Jul 2009 11:25:55 -0500 |
parents | f193b643d1b1 |
children | 07f9b2f4a9aa |
files | mercurial/changelog.py |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/changelog.py Sat Jul 18 11:25:54 2009 -0500 +++ b/mercurial/changelog.py Sat Jul 18 11:25:55 2009 -0500 @@ -94,20 +94,19 @@ self._divert = False revlog.revlog.__init__(self, self._delayopener, "00changelog.i") - def delayupdate(self): "delay visibility of index updates to other readers" self._delayed = True self._divert = (len(self) == 0) self._delaybuf = [] - self._delayname = None def finalize(self, tr): "finalize index updates" self._delayed = False # move redirected index data back into place - if self._delayname: - util.rename(self._delayname + ".a", self._delayname) + if self._divert: + n = self._realopener(self.indexfile).name + util.rename(n + ".a", n) elif self._delaybuf: fp = self.opener(self.indexfile, 'a') fp.write("".join(self._delaybuf)) @@ -123,7 +122,6 @@ return fp # if we're doing an initial clone, divert to another file if self._divert: - self._delayname = fp.name if not len(self): # make sure to truncate the file mode = mode.replace('a', 'w') @@ -149,9 +147,9 @@ fp2.close() # switch modes so finalize can simply rename self._delaybuf = [] - self._delayname = fp1.name + self._divert = True - if self._delayname: + if self._divert: return True return False