734 else: |
735 else: |
735 deltabase = chainbase |
736 deltabase = chainbase |
736 chainlen, compresseddeltalen = revlog._chaininfo(base) |
737 chainlen, compresseddeltalen = revlog._chaininfo(base) |
737 chainlen += 1 |
738 chainlen += 1 |
738 compresseddeltalen += deltalen |
739 compresseddeltalen += deltalen |
|
740 |
|
741 revlog = self.revlog |
|
742 snapshotdepth = None |
|
743 if deltabase == nullrev: |
|
744 snapshotdepth = 0 |
|
745 elif revlog._sparserevlog and revlog.issnapshot(deltabase): |
|
746 # A delta chain should always be one full snapshot, |
|
747 # zero or more semi-snapshots, and zero or more deltas |
|
748 p1, p2 = revlog.rev(revinfo.p1), revlog.rev(revinfo.p2) |
|
749 if deltabase not in (p1, p2) and revlog.issnapshot(deltabase): |
|
750 snapshotdepth = len(revlog._deltachain(deltabase)[0]) |
|
751 |
739 return _deltainfo(dist, deltalen, (header, data), deltabase, |
752 return _deltainfo(dist, deltalen, (header, data), deltabase, |
740 chainbase, chainlen, compresseddeltalen) |
753 chainbase, chainlen, compresseddeltalen, |
|
754 snapshotdepth) |
741 |
755 |
742 def finddeltainfo(self, revinfo, fh): |
756 def finddeltainfo(self, revinfo, fh): |
743 """Find an acceptable delta against a candidate revision |
757 """Find an acceptable delta against a candidate revision |
744 |
758 |
745 revinfo: information about the revision (instance of _revisioninfo) |
759 revinfo: information about the revision (instance of _revisioninfo) |