Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 5450:c728424d44c6
revlog: fix caching of buffer objects
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 11 Oct 2007 00:46:53 -0500 |
parents | e038738714fd |
children | 0a43875677b1 |
comparison
equal
deleted
inserted
replaced
5449:17a4b20eda7b | 5450:c728424d44c6 |
---|---|
901 def revision(self, node): | 901 def revision(self, node): |
902 """return an uncompressed revision of a given""" | 902 """return an uncompressed revision of a given""" |
903 if node == nullid: | 903 if node == nullid: |
904 return "" | 904 return "" |
905 if self._cache and self._cache[0] == node: | 905 if self._cache and self._cache[0] == node: |
906 return self._cache[2] | 906 return str(self._cache[2]) |
907 | 907 |
908 # look up what we need to read | 908 # look up what we need to read |
909 text = None | 909 text = None |
910 rev = self.rev(node) | 910 rev = self.rev(node) |
911 base = self.base(rev) | 911 base = self.base(rev) |
922 df = self.opener(self.datafile) | 922 df = self.opener(self.datafile) |
923 | 923 |
924 # do we have useful data cached? | 924 # do we have useful data cached? |
925 if self._cache and self._cache[1] >= base and self._cache[1] < rev: | 925 if self._cache and self._cache[1] >= base and self._cache[1] < rev: |
926 base = self._cache[1] | 926 base = self._cache[1] |
927 text = self._cache[2] | 927 text = str(self._cache[2]) |
928 self._loadindex(base, rev + 1) | 928 self._loadindex(base, rev + 1) |
929 else: | 929 else: |
930 self._loadindex(base, rev + 1) | 930 self._loadindex(base, rev + 1) |
931 text = self.chunk(base, df=df) | 931 text = self.chunk(base, df=df) |
932 | 932 |