##// END OF EJS Templates
narrow: start returning bundle2 from widen_bundle()...
Pulkit Goyal -
r40107:e8132a88 default
parent child Browse files
Show More
@@ -51,7 +51,7 b' def getrepocaps_narrow(orig, repo, **kwa'
51 return caps
51 return caps
52
52
53 def widen_bundle(repo, diffmatcher, common, known, cgversion, ellipses):
53 def widen_bundle(repo, diffmatcher, common, known, cgversion, ellipses):
54 """generates changegroup for widening a narrow clone
54 """generates bundle2 for widening a narrow clone
55
55
56 repo is the localrepository instance
56 repo is the localrepository instance
57 diffmatcher is a differencemacther of '(newincludes, newexcludes) -
57 diffmatcher is a differencemacther of '(newincludes, newexcludes) -
@@ -61,11 +61,9 b' def widen_bundle(repo, diffmatcher, comm'
61 cgversion is the changegroup version to send
61 cgversion is the changegroup version to send
62 ellipses is boolean value telling whether to send ellipses data or not
62 ellipses is boolean value telling whether to send ellipses data or not
63
63
64 returns changegroup data of the changegroup built or return None if there
64 returns bundle2 of the data required for extending
65 are no common revs
66 """
65 """
67 # XXX: This patch will start sending bundle2 after couple of patches when
66 bundler = bundle2.bundle20(repo.ui)
68 # called from the wireprotocol command
69 commonnodes = set()
67 commonnodes = set()
70 cl = repo.changelog
68 cl = repo.changelog
71 for r in repo.revs("::%ln", common):
69 for r in repo.revs("::%ln", common):
@@ -79,9 +77,12 b' def widen_bundle(repo, diffmatcher, comm'
79 cgdata = packer.generate(set([nullid]), list(commonnodes), False,
77 cgdata = packer.generate(set([nullid]), list(commonnodes), False,
80 'narrow_widen', changelog=False)
78 'narrow_widen', changelog=False)
81
79
82 return cgdata
80 part = bundler.newpart('changegroup', data=cgdata)
81 part.addparam('version', cgversion)
82 if 'treemanifest' in repo.requirements:
83 part.addparam('treemanifest', '1')
83
84
84 return None
85 return bundler
85
86
86 # Serve a changegroup for a client with a narrow clone.
87 # Serve a changegroup for a client with a narrow clone.
87 def getbundlechangegrouppart_narrow(bundler, repo, source,
88 def getbundlechangegrouppart_narrow(bundler, repo, source,
@@ -69,7 +69,6 b' def narrow_widen(repo, proto, oldinclude'
69 ellipses: whether to send ellipses data or not
69 ellipses: whether to send ellipses data or not
70 """
70 """
71
71
72 bundler = bundle2.bundle20(repo.ui)
73 try:
72 try:
74 oldincludes = wireprototypes.decodelist(oldincludes)
73 oldincludes = wireprototypes.decodelist(oldincludes)
75 newincludes = wireprototypes.decodelist(newincludes)
74 newincludes = wireprototypes.decodelist(newincludes)
@@ -96,15 +95,10 b' def narrow_widen(repo, proto, oldinclude'
96 exclude=oldexcludes)
95 exclude=oldexcludes)
97 diffmatch = matchmod.differencematcher(newmatch, oldmatch)
96 diffmatch = matchmod.differencematcher(newmatch, oldmatch)
98
97
99 # get changegroup data
98 bundler = narrowbundle2.widen_bundle(repo, diffmatch, common, known,
100 cg = narrowbundle2.widen_bundle(repo, diffmatch, common, known,
101 cgversion, ellipses)
99 cgversion, ellipses)
102 if cg is not None:
103 part = bundler.newpart('changegroup', data=cg)
104 part.addparam('version', cgversion)
105 if 'treemanifest' in repo.requirements:
106 part.addparam('treemanifest', '1')
107 except error.Abort as exc:
100 except error.Abort as exc:
101 bundler = bundle2.bundle20(repo.ui)
108 manargs = [('message', pycompat.bytestr(exc))]
102 manargs = [('message', pycompat.bytestr(exc))]
109 advargs = []
103 advargs = []
110 if exc.hint is not None:
104 if exc.hint is not None:
General Comments 0
You need to be logged in to leave comments. Login now