Show More
@@ -895,21 +895,27 b' class localrepository:' | |||||
895 | def changegroupsubset(self, bases, heads): |
|
895 | def changegroupsubset(self, bases, heads): | |
896 | cl = self.changelog |
|
896 | cl = self.changelog | |
897 | # msng = missing |
|
897 | # msng = missing | |
898 |
msng_cl_lst, bases, heads = cl.nodesbetween(base |
|
898 | msng_cl_lst, bases, heads = cl.nodesbetween(bases, heads) | |
899 | junk = None |
|
899 | junk = None | |
900 | knownheads = {} |
|
900 | knownheads = {} | |
901 |
for n in base |
|
901 | for n in bases: | |
902 | for p in cl.parents(n): |
|
902 | for p in cl.parents(n): | |
903 | if p != nullid: |
|
903 | if p != nullid: | |
904 | knownheads[p] = 1 |
|
904 | knownheads[p] = 1 | |
905 | knownheads = knownheads.keys() |
|
905 | knownheads = knownheads.keys() | |
|
906 | if knownheads: | |||
906 | has_cl_set, junk, junk = cl.nodesbetween(None, knownheads) |
|
907 | has_cl_set, junk, junk = cl.nodesbetween(None, knownheads) | |
907 | has_cl_set = dict.fromkeys(hasnodeset) |
|
908 | has_cl_set = dict.fromkeys(hasnodeset) | |
|
909 | else: | |||
|
910 | has_cl_set = {} | |||
908 |
|
911 | |||
909 | mnfst = self.manifest |
|
912 | mnfst = self.manifest | |
910 | msng_mnfst_set = {} |
|
913 | msng_mnfst_set = {} | |
911 | msng_filenode_set = {} |
|
914 | msng_filenode_set = {} | |
912 |
|
915 | |||
|
916 | junk = mnfst.index[mnfst.count() - 1] # Get around a bug in lazyindex | |||
|
917 | junk = None | |||
|
918 | ||||
913 | def identity(x): |
|
919 | def identity(x): | |
914 | return x |
|
920 | return x | |
915 |
|
921 | |||
@@ -938,8 +944,8 b' class localrepository:' | |||||
938 | for f in c[3]: |
|
944 | for f in c[3]: | |
939 | # This is to make sure we only have one instance of each |
|
945 | # This is to make sure we only have one instance of each | |
940 | # filename string for each filename. |
|
946 | # filename string for each filename. | |
941 |
changedfileset.set |
|
947 | changedfileset.setdefault(f, f) | |
942 |
msng_mnfst_set.set |
|
948 | msng_mnfst_set.setdefault(c[0], clnode) | |
943 | return collect_manifests_and_files |
|
949 | return collect_manifests_and_files | |
944 |
|
950 | |||
945 | def prune_manifests(): |
|
951 | def prune_manifests(): | |
@@ -961,7 +967,8 b' class localrepository:' | |||||
961 | if fnode is not None: |
|
967 | if fnode is not None: | |
962 | clnode = msng_mnfst_set[mnfstnode] |
|
968 | clnode = msng_mnfst_set[mnfstnode] | |
963 | ndset = msng_filenode_set.setdefault(f, {}) |
|
969 | ndset = msng_filenode_set.setdefault(f, {}) | |
964 |
ndset.set |
|
970 | ndset.setdefault(fnode, clnode) | |
|
971 | return collect_msng_filenodes | |||
965 |
|
972 | |||
966 | def prune_filenodes(f, filerevlog): |
|
973 | def prune_filenodes(f, filerevlog): | |
967 | msngset = msng_filenode_set[f] |
|
974 | msngset = msng_filenode_set[f] | |
@@ -989,7 +996,7 b' class localrepository:' | |||||
989 | msng_mnfst_lst.sort(cmp_by_rev_func(mnfst)) |
|
996 | msng_mnfst_lst.sort(cmp_by_rev_func(mnfst)) | |
990 | changedfiles = changedfiles.keys() |
|
997 | changedfiles = changedfiles.keys() | |
991 | changedfiles.sort() |
|
998 | changedfiles.sort() | |
992 | group = mnfst.group(mnfst, lookup_manifest_link, |
|
999 | group = mnfst.group(msng_mnfst_lst, lookup_manifest_link, | |
993 | filenode_collector(changedfiles)) |
|
1000 | filenode_collector(changedfiles)) | |
994 | for chnk in group: |
|
1001 | for chnk in group: | |
995 | yield chnk |
|
1002 | yield chnk | |
@@ -1000,10 +1007,10 b' class localrepository:' | |||||
1000 | prune_filenodes(fname, filerevlog) |
|
1007 | prune_filenodes(fname, filerevlog) | |
1001 | msng_filenode_lst = msng_filenode_set[fname].keys() |
|
1008 | msng_filenode_lst = msng_filenode_set[fname].keys() | |
1002 | if len(msng_filenode_lst) > 0: |
|
1009 | if len(msng_filenode_lst) > 0: | |
1003 | yield struct.pack(">l", len(f) + 4) + f |
|
1010 | yield struct.pack(">l", len(fname) + 4) + fname | |
1004 | msng_filenode_lst.sort(cmp_by_rev_func(filerevlog)) |
|
1011 | msng_filenode_lst.sort(cmp_by_rev_func(filerevlog)) | |
1005 | group = filerevlog.group(msng_filenode_lst, |
|
1012 | group = filerevlog.group(msng_filenode_lst, | |
1006 | lookup_filenode_link) |
|
1013 | lookup_filenode_link_func(fname)) | |
1007 | for chnk in group: |
|
1014 | for chnk in group: | |
1008 | yield chnk |
|
1015 | yield chnk | |
1009 | del msng_filenode_set[fname] |
|
1016 | del msng_filenode_set[fname] | |
@@ -1048,9 +1055,6 b' class localrepository:' | |||||
1048 | changedfiles.sort() |
|
1055 | changedfiles.sort() | |
1049 |
|
1056 | |||
1050 | mnfst = self.manifest |
|
1057 | mnfst = self.manifest | |
1051 | def nodegen(revlog, reviter): |
|
|||
1052 | for r in reviter: |
|
|||
1053 | yield revlog.node(r) |
|
|||
1054 | nodeiter = gennodelst(mnfst) |
|
1058 | nodeiter = gennodelst(mnfst) | |
1055 | for chnk in mnfst.group(nodeiter, lookuprevlink_func(mnfst)): |
|
1059 | for chnk in mnfst.group(nodeiter, lookuprevlink_func(mnfst)): | |
1056 | yield chnk |
|
1060 | yield chnk |
General Comments 0
You need to be logged in to leave comments.
Login now