##// 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 51 return caps
52 52
53 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 56 repo is the localrepository instance
57 57 diffmatcher is a differencemacther of '(newincludes, newexcludes) -
@@ -61,11 +61,9 b' def widen_bundle(repo, diffmatcher, comm'
61 61 cgversion is the changegroup version to send
62 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
65 are no common revs
64 returns bundle2 of the data required for extending
66 65 """
67 # XXX: This patch will start sending bundle2 after couple of patches when
68 # called from the wireprotocol command
66 bundler = bundle2.bundle20(repo.ui)
69 67 commonnodes = set()
70 68 cl = repo.changelog
71 69 for r in repo.revs("::%ln", common):
@@ -79,9 +77,12 b' def widen_bundle(repo, diffmatcher, comm'
79 77 cgdata = packer.generate(set([nullid]), list(commonnodes), False,
80 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 87 # Serve a changegroup for a client with a narrow clone.
87 88 def getbundlechangegrouppart_narrow(bundler, repo, source,
@@ -69,7 +69,6 b' def narrow_widen(repo, proto, oldinclude'
69 69 ellipses: whether to send ellipses data or not
70 70 """
71 71
72 bundler = bundle2.bundle20(repo.ui)
73 72 try:
74 73 oldincludes = wireprototypes.decodelist(oldincludes)
75 74 newincludes = wireprototypes.decodelist(newincludes)
@@ -96,15 +95,10 b' def narrow_widen(repo, proto, oldinclude'
96 95 exclude=oldexcludes)
97 96 diffmatch = matchmod.differencematcher(newmatch, oldmatch)
98 97
99 # get changegroup data
100 cg = narrowbundle2.widen_bundle(repo, diffmatch, common, known,
101 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')
98 bundler = narrowbundle2.widen_bundle(repo, diffmatch, common, known,
99 cgversion, ellipses)
107 100 except error.Abort as exc:
101 bundler = bundle2.bundle20(repo.ui)
108 102 manargs = [('message', pycompat.bytestr(exc))]
109 103 advargs = []
110 104 if exc.hint is not None:
General Comments 0
You need to be logged in to leave comments. Login now