##// END OF EJS Templates
changegroup: drop special-casing of flat manifests...
Martin von Zweigbergk -
r28241:a4286175 default
parent child Browse files
Show More
@@ -656,8 +656,7 b' class cg1packer(object):'
656 656 clrevorder = {}
657 657 mfs = {} # needed manifests
658 658 fnodes = {} # needed file nodes
659 # maps manifest node id -> set(changed files)
660 mfchangedfiles = {}
659 changedfiles = set()
661 660
662 661 # Callback for the changelog, used to collect changed files and manifest
663 662 # nodes.
@@ -670,7 +669,7 b' class cg1packer(object):'
670 669 mfs.setdefault(n, x)
671 670 # Record a complete list of potentially-changed files in
672 671 # this manifest.
673 mfchangedfiles.setdefault(n, set()).update(c[3])
672 changedfiles.update(c[3])
674 673 return x
675 674
676 675 self._verbosenote(_('uncompressed size of bundle content:\n'))
@@ -703,7 +702,7 b' class cg1packer(object):'
703 702 'treemanifest' not in repo.requirements)
704 703
705 704 for chunk in self.generatemanifests(commonrevs, clrevorder,
706 fastpathlinkrev, mfs, mfchangedfiles, fnodes):
705 fastpathlinkrev, mfs, fnodes):
707 706 yield chunk
708 707 mfs.clear()
709 708 clrevs = set(cl.rev(x) for x in clnodes)
@@ -719,9 +718,6 b' class cg1packer(object):'
719 718 revs = ((r, llr(r)) for r in filerevlog)
720 719 return dict((fln(r), cln(lr)) for r, lr in revs if lr in clrevs)
721 720
722 changedfiles = set()
723 for x in mfchangedfiles.itervalues():
724 changedfiles.update(x)
725 721 for chunk in self.generatefiles(changedfiles, linknodes, commonrevs,
726 722 source):
727 723 yield chunk
@@ -732,7 +728,7 b' class cg1packer(object):'
732 728 repo.hook('outgoing', node=hex(clnodes[0]), source=source)
733 729
734 730 def generatemanifests(self, commonrevs, clrevorder, fastpathlinkrev, mfs,
735 mfchangedfiles, fnodes):
731 fnodes):
736 732 repo = self._repo
737 733 dirlog = repo.manifest.dirlog
738 734 tmfnodes = {'': mfs}
@@ -763,28 +759,15 b' class cg1packer(object):'
763 759 """
764 760 clnode = tmfnodes[dir][x]
765 761 mdata = dirlog(dir).readshallowfast(x)
766 if 'treemanifest' in repo.requirements:
767 for p, n, fl in mdata.iterentries():
768 if fl == 't': # subdirectory manifest
769 subdir = dir + p + '/'
770 tmfclnodes = tmfnodes.setdefault(subdir, {})
771 tmfclnode = tmfclnodes.setdefault(n, clnode)
772 if clrevorder[clnode] < clrevorder[tmfclnode]:
773 tmfclnodes[n] = clnode
774 else:
775 f = dir + p
776 fclnodes = fnodes.setdefault(f, {})
777 fclnode = fclnodes.setdefault(n, clnode)
778 if clrevorder[clnode] < clrevorder[fclnode]:
779 fclnodes[n] = clnode
780 else:
781 for f in mfchangedfiles[x]:
782 try:
783 n = mdata[f]
784 except KeyError:
785 continue
786 # record the first changeset introducing this filelog
787 # version
762 for p, n, fl in mdata.iterentries():
763 if fl == 't': # subdirectory manifest
764 subdir = dir + p + '/'
765 tmfclnodes = tmfnodes.setdefault(subdir, {})
766 tmfclnode = tmfclnodes.setdefault(n, clnode)
767 if clrevorder[clnode] < clrevorder[tmfclnode]:
768 tmfclnodes[n] = clnode
769 else:
770 f = dir + p
788 771 fclnodes = fnodes.setdefault(f, {})
789 772 fclnode = fclnodes.setdefault(n, clnode)
790 773 if clrevorder[clnode] < clrevorder[fclnode]:
General Comments 0
You need to be logged in to leave comments. Login now