Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 14208:d62d597b8974
revlog: compute correct deltaparent in the deltaparent function
It now returns nullrev for chain base revisions, since they are conceptually
deltas against nullrev. The revdiff function was updated accordingly.
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Thu, 05 May 2011 18:05:24 +0200 |
parents | e7483ec3c374 |
children | c33427080671 |
comparison
equal
deleted
inserted
replaced
14207:c1cca38818b9 | 14208:d62d597b8974 |
---|---|
828 def _chunkclear(self): | 828 def _chunkclear(self): |
829 self._chunkcache = (0, '') | 829 self._chunkcache = (0, '') |
830 | 830 |
831 def deltaparent(self, rev): | 831 def deltaparent(self, rev): |
832 """return deltaparent of the given revision""" | 832 """return deltaparent of the given revision""" |
833 return rev - 1 | 833 if self.index[rev][3] == rev: |
834 return nullrev | |
835 else: | |
836 return rev - 1 | |
834 | 837 |
835 def revdiff(self, rev1, rev2): | 838 def revdiff(self, rev1, rev2): |
836 """return or calculate a delta between two revisions""" | 839 """return or calculate a delta between two revisions""" |
837 if self.base(rev2) != rev2 and self.deltaparent(rev2) == rev1: | 840 if rev1 != nullrev and self.deltaparent(rev2) == rev1: |
838 return self._chunk(rev2) | 841 return self._chunk(rev2) |
839 | 842 |
840 return mdiff.textdiff(self.revision(self.node(rev1)), | 843 return mdiff.textdiff(self.revision(self.node(rev1)), |
841 self.revision(self.node(rev2))) | 844 self.revision(self.node(rev2))) |
842 | 845 |