--- 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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
--- 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]