Show More
@@ -724,6 +724,28 class treemanifest(object): | |||
|
724 | 724 | loadlazy(k + '/') |
|
725 | 725 | return visit |
|
726 | 726 | |
|
727 | def _loaddifflazy(self, t1, t2): | |
|
728 | """load items in t1 and t2 if they're needed for diffing. | |
|
729 | ||
|
730 | The criteria currently is: | |
|
731 | - if it's not present in _lazydirs in either t1 or t2, load it in the | |
|
732 | other (it may already be loaded or it may not exist, doesn't matter) | |
|
733 | - if it's present in _lazydirs in both, compare the nodeid; if it | |
|
734 | differs, load it in both | |
|
735 | """ | |
|
736 | toloadlazy = [] | |
|
737 | for d, v1 in t1._lazydirs.iteritems(): | |
|
738 | v2 = t2._lazydirs.get(d) | |
|
739 | if not v2 or v2[1] != v1[1]: | |
|
740 | toloadlazy.append(d) | |
|
741 | for d, v1 in t2._lazydirs.iteritems(): | |
|
742 | if d not in t1._lazydirs: | |
|
743 | toloadlazy.append(d) | |
|
744 | ||
|
745 | for d in toloadlazy: | |
|
746 | t1._loadlazy(d) | |
|
747 | t2._loadlazy(d) | |
|
748 | ||
|
727 | 749 | def __len__(self): |
|
728 | 750 | self._load() |
|
729 | 751 | size = len(self._files) |
@@ -957,8 +979,7 class treemanifest(object): | |||
|
957 | 979 | return |
|
958 | 980 | t1._load() |
|
959 | 981 | t2._load() |
|
960 |
t1 |
|
|
961 | t2._loadalllazy() | |
|
982 | self._loaddifflazy(t1, t2) | |
|
962 | 983 | for d, m1 in t1._dirs.iteritems(): |
|
963 | 984 | if d in t2._dirs: |
|
964 | 985 | m2 = t2._dirs[d] |
@@ -1113,18 +1134,7 class treemanifest(object): | |||
|
1113 | 1134 | return |
|
1114 | 1135 | t1._load() |
|
1115 | 1136 | t2._load() |
|
1116 |
|
|
|
1117 | for d, v1 in t1._lazydirs.iteritems(): | |
|
1118 | v2 = t2._lazydirs.get(d) | |
|
1119 | if not v2 or v2[1] != v1[1]: | |
|
1120 | toloadlazy.append(d) | |
|
1121 | for d, v1 in t2._lazydirs.iteritems(): | |
|
1122 | if d not in t1._lazydirs: | |
|
1123 | toloadlazy.append(d) | |
|
1124 | ||
|
1125 | for d in toloadlazy: | |
|
1126 | t1._loadlazy(d) | |
|
1127 | t2._loadlazy(d) | |
|
1137 | self._loaddifflazy(t1, t2) | |
|
1128 | 1138 | |
|
1129 | 1139 | for d, m1 in t1._dirs.iteritems(): |
|
1130 | 1140 | m2 = t2._dirs.get(d, emptytree) |
General Comments 0
You need to be logged in to leave comments.
Login now