D6218: narrow: send specs as bundle2 data instead of param (issue5952) (issue6019)

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Fri Apr 12 10:25:13 EDT 2019


pulkit updated this revision to Diff 14711.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D6218?vs=14691&id=14711

REVISION DETAIL
  https://phab.mercurial-scm.org/D6218

AFFECTED FILES
  hgext/narrow/narrowbundle2.py
  mercurial/exchange.py

CHANGE DETAILS

diff --git a/mercurial/exchange.py b/mercurial/exchange.py
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -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,
diff --git a/hgext/narrow/narrowbundle2.py b/hgext/narrow/narrowbundle2.py
--- a/hgext/narrow/narrowbundle2.py
+++ b/hgext/narrow/narrowbundle2.py
@@ -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)
 



To: pulkit, durin42, martinvonz, #hg-reviewers
Cc: idlsoft, mercurial-devel


More information about the Mercurial-devel mailing list