merge with stable
authorAugie Fackler <augie@google.com>
Wed, 01 May 2019 14:30:25 -0400
changeset 42220 e64d8d73a98d
parent 42217 ca762c2bbe6b (current diff)
parent 42219 724dae82c4bd (diff)
child 42221 c83c08cf02b7
merge with stable
--- a/.hgsigs	Mon Apr 29 23:00:42 2019 -0400
+++ b/.hgsigs	Wed May 01 14:30:25 2019 -0400
@@ -178,3 +178,4 @@
 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
+07e479ef7c9639be0029f00e6a722b96dcc05fee 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAlzJ5QYQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91U0QD/4xQ00Suo+XNM/2v01NEALJA8pFxSaUcz1fBVQDwIQbApAHbjVDgIShuFlAXu7Jf582+C5wJu0J8L5Rb+Q9WJuM9sM+6cxUWclT3D3gB326LuQg86y5MYbzmwsSCOnBdRn/MY18on2XTa8t4Mxf0jAaHPUXEadmuwkOw4ds62eUD81lkakGoxgXrD1GUhAlGItNPOb0rp2XFj7i+LvazMX2mWOEXMXA5KPQrOvLsKnoESiPfONXumBfZNVSxVA7fJ3Vl1+PldBax+w9LQMgVGo+BkqPt7i+lPTcnlh2Nbf8y3zERTcItFBzrBxmuG6pINfNpZY/fi+9VL7mpMYlzlxs7VcLF8bVnpYpxpHfDR4hPjP0sq6+/nSSGUfzQXmfGHq0ZdoVGSzrDEv8UzYE9ehWUhHNE+sIU3MpwjC+WiW2YhYzPYN2KOlfSog3LuWLAcn3ZghWg1S4crsPt9CeE0vKxkNWNz9dzvhbniW7VGorXJKFCJzMu6pGaP/UjwpHxR+C6J1MGUW2TQwdIUyhPA8HfHJSVbifFJV+1CYEDcqRcFETpxm4YNrLJNL/Ns7zoWmdmEUXT1NEnK1r3Pe2Xi1o56FHGPffOWASmqFnF/coZCq6b4vmBWK/n8mI/JF1yxltfwacaY+1pEor92ztK34Lme1A+R7zyObGYNDcWiGZgA==
--- a/.hgtags	Mon Apr 29 23:00:42 2019 -0400
+++ b/.hgtags	Wed May 01 14:30:25 2019 -0400
@@ -191,3 +191,4 @@
 83377b4b4ae0e9a6b8e579f7b0a693b8cf5c3b10 4.9
 4ea21df312ec7159c5b3633096b6ecf68750b0dd 4.9.1
 4a8d9ed864754837a185a642170cde24392f9abf 5.0rc0
+07e479ef7c9639be0029f00e6a722b96dcc05fee 5.0
--- a/contrib/Makefile.python	Mon Apr 29 23:00:42 2019 -0400
+++ b/contrib/Makefile.python	Wed May 01 14:30:25 2019 -0400
@@ -1,4 +1,4 @@
-PYTHONVER=2.7.14
+PYTHONVER=2.7.16
 PYTHONNAME=python-
 PREFIX=$(HOME)/bin/prefix-$(PYTHONNAME)$(PYTHONVER)
 SYMLINKDIR=$(HOME)/bin
--- a/contrib/packaging/buildrpm	Mon Apr 29 23:00:42 2019 -0400
+++ b/contrib/packaging/buildrpm	Wed May 01 14:30:25 2019 -0400
@@ -20,8 +20,8 @@
         ;;
     --withpython | --with-python)
         shift
-        PYTHONVER=2.7.14
-        PYTHONMD5=cee2e4b33ad3750da77b2e85f2f8b724
+        PYTHONVER=2.7.16
+        PYTHONMD5=f1a2ace631068444831d01485466ece0
         ;;
     --rpmbuilddir )
         shift
--- a/contrib/packaging/inno/requirements.txt	Mon Apr 29 23:00:42 2019 -0400
+++ b/contrib/packaging/inno/requirements.txt	Wed May 01 14:30:25 2019 -0400
@@ -22,9 +22,9 @@
     --hash=sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19 \
     --hash=sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451 \
     # via keyring
-keyring==18.0.0 \
-    --hash=sha256:12833d2b05d2055e0e25931184af9cd6a738f320a2264853cabbd8a3a0f0b65d \
-    --hash=sha256:ca33f5ccc542b9ffaa196ee9a33488069e5e7eac77d5b81969f8a3ce74d0230c
+keyring==18.0.1 \
+    --hash=sha256:67d6cc0132bd77922725fae9f18366bb314fd8f95ff4d323a4df41890a96a838 \
+    --hash=sha256:7b29ebfcf8678c4da531b2478a912eea01e80007e5ddca9ee0c7038cb3489ec6
 pygments==2.3.1 \
     --hash=sha256:5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a \
     --hash=sha256:e8218dd399a61674745138520d0d4cf2621d7e032439341bc3f647bff125818d
--- a/hgext/narrow/narrowbundle2.py	Mon Apr 29 23:00:42 2019 -0400
+++ b/hgext/narrow/narrowbundle2.py	Wed May 01 14:30:25 2019 -0400
@@ -31,8 +31,9 @@
     stringutil,
 )
 
-_NARROWACL_SECTION = 'narrowhgacl'
+_NARROWACL_SECTION = 'narrowacl'
 _CHANGESPECPART = 'narrow:changespec'
+_RESSPECS = 'narrow:responsespec'
 _SPECPART = 'narrow:spec'
 _SPECPART_INCLUDE = 'include'
 _SPECPART_EXCLUDE = 'exclude'
@@ -142,6 +143,10 @@
 
 @bundle2.parthandler(_SPECPART, (_SPECPART_INCLUDE, _SPECPART_EXCLUDE))
 def _handlechangespec_2(op, inpart):
+    # XXX: This bundle2 handling is buggy and should be removed after hg5.2 is
+    # released. New servers will send a mandatory bundle2 part named
+    # 'Narrowspec' and will send specs as data instead of params.
+    # Refer to issue5952 and 6019
     includepats = set(inpart.params.get(_SPECPART_INCLUDE, '').splitlines())
     excludepats = set(inpart.params.get(_SPECPART_EXCLUDE, '').splitlines())
     narrowspec.validatepatterns(includepats)
@@ -153,6 +158,21 @@
     op.repo.setnarrowpats(includepats, excludepats)
     narrowspec.copytoworkingcopy(op.repo)
 
+@bundle2.parthandler(_RESSPECS)
+def _handlenarrowspecs(op, inpart):
+    data = inpart.read()
+    inc, exc = data.split('\0')
+    includepats = set(inc.splitlines())
+    excludepats = set(exc.splitlines())
+    narrowspec.validatepatterns(includepats)
+    narrowspec.validatepatterns(excludepats)
+
+    if repository.NARROW_REQUIREMENT not in op.repo.requirements:
+        op.repo.requirements.add(repository.NARROW_REQUIREMENT)
+        op.repo._writerequirements()
+    op.repo.setnarrowpats(includepats, excludepats)
+    narrowspec.copytoworkingcopy(op.repo)
+
 @bundle2.parthandler(_CHANGESPECPART)
 def _handlechangespec(op, inpart):
     repo = op.repo
--- a/mercurial/context.py	Mon Apr 29 23:00:42 2019 -0400
+++ b/mercurial/context.py	Wed May 01 14:30:25 2019 -0400
@@ -1824,7 +1824,7 @@
     def data(self, path):
         if self.isdirty(path):
             if self._cache[path]['exists']:
-                if self._cache[path]['data']:
+                if self._cache[path]['data'] is not None:
                     return self._cache[path]['data']
                 else:
                     # Must fallback here, too, because we only set flags.
--- a/mercurial/exchange.py	Mon Apr 29 23:00:42 2019 -0400
+++ b/mercurial/exchange.py	Wed May 01 14:30:25 2019 -0400
@@ -49,7 +49,7 @@
 urlerr = util.urlerr
 urlreq = util.urlreq
 
-_NARROWACL_SECTION = 'narrowhgacl'
+_NARROWACL_SECTION = 'narrowacl'
 
 # Maps bundle version human names to changegroup versions.
 _bundlespeccgversions = {'v1': '01',
@@ -2213,13 +2213,10 @@
 
     if (kwargs.get(r'narrow', False) and kwargs.get(r'narrow_acl', False)
         and (include or exclude)):
-        narrowspecpart = bundler.newpart('narrow:spec')
-        if include:
-            narrowspecpart.addparam(
-                'include', '\n'.join(include), mandatory=True)
-        if exclude:
-            narrowspecpart.addparam(
-                'exclude', '\n'.join(exclude), mandatory=True)
+        # this is mandatory because otherwise ACL clients won't work
+        narrowspecpart = bundler.newpart('Narrow:responsespec')
+        narrowspecpart.data = '%s\0%s' % ('\n'.join(include),
+                                           '\n'.join(exclude))
 
 @getbundle2partsgenerator('bookmarks')
 def _getbundlebookmarkpart(bundler, repo, source, bundlecaps=None,
--- a/tests/hghave.py	Mon Apr 29 23:00:42 2019 -0400
+++ b/tests/hghave.py	Wed May 01 14:30:25 2019 -0400
@@ -142,7 +142,7 @@
 
 @checkvers("bzr", "Canonical's Bazaar client >= %s", (1.14,))
 def has_bzr_range(v):
-    major, minor = v.split('.')[0:2]
+    major, minor = v.split('rc')[0].split('.')[0:2]
     try:
         import bzrlib
         return (bzrlib.__doc__ is not None
--- a/tests/test-narrow-acl.t	Mon Apr 29 23:00:42 2019 -0400
+++ b/tests/test-narrow-acl.t	Wed May 01 14:30:25 2019 -0400
@@ -10,7 +10,7 @@
   >   hg commit -m "Add $x"
   > done
   $ cat >> .hg/hgrc << EOF
-  > [narrowhgacl]
+  > [narrowacl]
   > default.includes=f1 f2
   > EOF
   $ hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid
--- a/tests/test-rebase-inmemory.t	Mon Apr 29 23:00:42 2019 -0400
+++ b/tests/test-rebase-inmemory.t	Wed May 01 14:30:25 2019 -0400
@@ -760,3 +760,46 @@
   rebasing 3:ca58782ad1e4 "b"
   rebasing 5:71cb43376053 "merge"
   note: not rebasing 5:71cb43376053 "merge", its destination already has all its changes
+
+  $ cd ..
+
+Test rebasing when the file we are merging in destination is empty
+
+  $ hg init test
+  $ cd test
+  $ echo a > foo
+  $ hg ci -Aqm 'added a to foo'
+
+  $ rm foo
+  $ touch foo
+  $ hg di
+  diff --git a/foo b/foo
+  --- a/foo
+  +++ b/foo
+  @@ -1,1 +0,0 @@
+  -a
+
+  $ hg ci -m "make foo an empty file"
+
+  $ hg up '.^'
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo b > foo
+  $ hg di
+  diff --git a/foo b/foo
+  --- a/foo
+  +++ b/foo
+  @@ -1,1 +1,1 @@
+  -a
+  +b
+  $ hg ci -m "add b to foo"
+  created new head
+
+  $ hg rebase -r . -d 1 --config ui.merge=internal:merge3
+  rebasing 2:fb62b706688e "add b to foo" (tip)
+  merging foo
+  hit merge conflicts; re-running rebase without in-memory merge
+  rebasing 2:fb62b706688e "add b to foo" (tip)
+  merging foo
+  warning: conflicts while merging foo! (edit, then use 'hg resolve --mark')
+  unresolved conflicts (see hg resolve, then hg rebase --continue)
+  [1]