Comments
Patch
@@ -2214,12 +2214,14 @@
if (kwargs.get(r'narrow', False) and kwargs.get(r'narrow_acl', False)
and (include or exclude)):
narrowspecpart = bundler.newpart('narrow:spec')
+ data = ''
if include:
- narrowspecpart.addparam(
- 'include', '\n'.join(include), mandatory=True)
+ data += '\n'.join(include)
+ data += '\0'
if exclude:
- narrowspecpart.addparam(
- 'exclude', '\n'.join(exclude), mandatory=True)
+ data += '\n'.join(exclude)
+
+ narrowspecpart.data = data
@getbundle2partsgenerator('bookmarks')
def _getbundlebookmarkpart(bundler, repo, source, bundlecaps=None,
@@ -144,6 +144,15 @@
def _handlechangespec_2(op, inpart):
includepats = set(inpart.params.get(_SPECPART_INCLUDE, '').splitlines())
excludepats = set(inpart.params.get(_SPECPART_EXCLUDE, '').splitlines())
+ data = inpart.read()
+ # old servers don't send includes and excludes using bundle2 data, they use
+ # bundle2 parameters instead.
+ if data:
+ inc, exc = data.split('\0')
+ if inc:
+ includepats |= set(inc.splitlines())
+ if exc:
+ excludepats |= set(exc.splitlines())
narrowspec.validatepatterns(includepats)
narrowspec.validatepatterns(excludepats)