# HG changeset patch # User Augie Fackler # Date 2019-05-01 18:30:25 # Node ID e64d8d73a98d86bcd8ac81ab6cb4ac4829410fa3 # Parent ca762c2bbe6b00a4af999eb77a3f6daf48acb0cd # Parent 724dae82c4bd935c19377c666bb5ef230aa32dd3 merge with stable diff --git a/.hgsigs b/.hgsigs --- a/.hgsigs +++ b/.hgsigs @@ -178,3 +178,4 @@ 593718ff5844cad7a27ee3eb5adad89ac8550949 83377b4b4ae0e9a6b8e579f7b0a693b8cf5c3b10 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAlxUk3gQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91aT7EACaycWeal53ShxaNyTNOa5IPZ71+iyWA9xEh7hK6cDDirpItarWLRVWoWqBlWRBBs6uU4BxnpPSCLFkJLu6ts/5p4R6/0Z04Pasd6sFi14bCGslmPJFlwrpfFDpQvFR6xZAtv1xGb8n+rjpK+wfstjRgyf84zn4//0dOdylY5EUXOk4/3zcXKAzPgZHBRper+PlQ0ICgYHiKQUlyDWrFrdSEis6OqBa+PbxdmgzLYbhXi0bvS5XRWM9EVJZa+5ITEVOEGPClRcoA7SJE5DiapMYlwNnB3U6TEazJoj5yuvGhrJzj9lx7/jx9tzZ/mhdOVsSRiSCBu46B/E63fnUDqaMw8KKlFKBRuzKnqnByZD8fuD34YJ6A82hta56W4SJ4pusa/X2nAJn1QbRjESY4wN4FEaNdYiMbpgbG2uBDhmEowAyhXtiuQAPCUra5o42a+E+tAgV5uNUAal8vk0DcPRmzc4UntQiQGwxL0fsTEpMQtG5ryxWRmOIBq6aKGuLVELllPCwOh8UIGLlpAoEynlNi9qJNT6kHpSmwquiU6TG6R1dA/ckBK2H90hewtb/jwLlenGugpylLQ2U/NsDdoWRyHNrdB4eUJiWD/BBPXktZQJVja97Js+Vn44ctCkNjui/53xcBQfIYdHGLttIEq56v/yZiSviCcTUhBPRSEdoUg== 4ea21df312ec7159c5b3633096b6ecf68750b0dd 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAlyQ7VYQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91aziD/4uI/Nr+UJgOri1zfa6ObXuMVO2FeadAolKemMDE/c4ddPUN2AwysZyJaOHmqj5VR0nf4a9CpTBc8Ciq9tfaFSWN6XFIJ2s3GPHhsnyhsPbF56c2bpl2W/csxor9eDGpv9TrQOK0qgI4wGxSQVFW0uUgHtZ5Yd6JWupHuyDfWopJf3oonissKI9ykRLeZEQ3sPIP6vTWMM3pdavAmDii3qKVEaCEGWmXgnM/vfBJ/tA1U5LSXpxwkJB7Pi/6Xc6OnGHWmCpsA4L6TSRkoyho4a6tLUA1Qlqm6sMxJjXAer8dmDLpmXL7gF3JhZgkiX74i2zDZnM4i42E6EhO52l3uorF5gtsw85dY20MSoBOmn5bM7k40TCA+vriNZJgmDrTYgY3B00mNysioEuSpDkILPJIV4U9LTazsxR49h3/mH2D1Sdxu6YtCIPE8ggThmveW/dZQy6W1xLfS66pFmDvq8ND0WjDa/Fi9dmjMcQtzA9CZL8AMlSc2aLJs++KjCuN+t6tn/tLhLz1nHaSitqgsIoJmBWb00QjOilnAQq7H8gUpUqMdLyEeL2B9HfJobQx6A8Op2xohjI7qD5gLGAxh+QMmuUmf7wx1h2UuQvrNW5di7S3k3nxfhm87Gkth3j0M/aMy0P6irPOKcKns55r6eOzItC+ezQayXc4A10F+x6Ew== 4a8d9ed864754837a185a642170cde24392f9abf 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAly3aLkQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91bpXD/0Qdx3lNv6230rl369PnGM7o56BFywJtGtQ0FjBj81/Q6IKNJkAus/FXA02MevAxnKhyCMPHbiWQn4cn+Fpt9Y7FOFl3MTdoY5v4rGDAbAaJsjyK3BNqSwWD1uFaOnFDzA/112MJ6nDciVaOzeD7qakMj8zdVhvyEfFszN7f7xT1JyGc+cOWfbvcIv/IXWZNrSZC0EzcZspfwxYQwFscgDL3AHeKeYqihJ6vgWxgEg4V8ZnJ6roJeERTp2wwvIj/pKSEpgzfLQfHiEwvH9MKMaJHGx4huzWJxYX2DB83LaK7cgkKqzyQ+z8rsb27oFPMVgb1Kg78+6sRujFdkahFWYYGPT6sFBDWkRQ/J7DRnBzHH2wbBoyNkApmLEfaRGJpxX8wojPFGJkNr6GF12uF7E+djsuE8ZL7l4p2YD33NBSzcEjNTlgruRauj/7SoSC3BgDlrqCypCkNgn5nDDjvf6oJx16qGqZsglHJOl0S2LRiGaMQTpBhpDWAyVIAQBRW/vF1IRnNJaQ+dX7M9VqlVsXnfh8WD+FPKDgpiSLO8hIuvlYlcrtU9rXyWu1njKvCs744G836k4SNBoi+y6bi6XbmU0Uv0GSCLyj1BIsqglfXuac0QHlz5RNmS6LVf7z13ZIn/ePXehYoKHu+PNDmbVGGwAVoZP4HLEqonD3SVpVcQ== +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== diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -191,3 +191,4 @@ 593718ff5844cad7a27ee3eb5adad89ac8550949 83377b4b4ae0e9a6b8e579f7b0a693b8cf5c3b10 4.9 4ea21df312ec7159c5b3633096b6ecf68750b0dd 4.9.1 4a8d9ed864754837a185a642170cde24392f9abf 5.0rc0 +07e479ef7c9639be0029f00e6a722b96dcc05fee 5.0 diff --git a/contrib/Makefile.python b/contrib/Makefile.python --- a/contrib/Makefile.python +++ b/contrib/Makefile.python @@ -1,4 +1,4 @@ -PYTHONVER=2.7.14 +PYTHONVER=2.7.16 PYTHONNAME=python- PREFIX=$(HOME)/bin/prefix-$(PYTHONNAME)$(PYTHONVER) SYMLINKDIR=$(HOME)/bin diff --git a/contrib/packaging/buildrpm b/contrib/packaging/buildrpm --- a/contrib/packaging/buildrpm +++ b/contrib/packaging/buildrpm @@ -20,8 +20,8 @@ while [ "$1" ]; do ;; --withpython | --with-python) shift - PYTHONVER=2.7.14 - PYTHONMD5=cee2e4b33ad3750da77b2e85f2f8b724 + PYTHONVER=2.7.16 + PYTHONMD5=f1a2ace631068444831d01485466ece0 ;; --rpmbuilddir ) shift diff --git a/contrib/packaging/inno/requirements.txt b/contrib/packaging/inno/requirements.txt --- a/contrib/packaging/inno/requirements.txt +++ b/contrib/packaging/inno/requirements.txt @@ -22,9 +22,9 @@ entrypoints==0.3 \ --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 diff --git a/hgext/narrow/narrowbundle2.py b/hgext/narrow/narrowbundle2.py --- a/hgext/narrow/narrowbundle2.py +++ b/hgext/narrow/narrowbundle2.py @@ -31,8 +31,9 @@ from mercurial.utils import ( 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 @@ def getbundlechangegrouppart_narrow(bund @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 @@ def _handlechangespec_2(op, inpart): 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 diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1824,7 +1824,7 @@ class overlayworkingctx(committablectx): 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. diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -49,7 +49,7 @@ from .utils import ( 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 @@ def _getbundlechangegrouppart(bundler, r 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, diff --git a/tests/hghave.py b/tests/hghave.py --- a/tests/hghave.py +++ b/tests/hghave.py @@ -142,7 +142,7 @@ def has_bzr(): @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 diff --git a/tests/test-narrow-acl.t b/tests/test-narrow-acl.t --- a/tests/test-narrow-acl.t +++ b/tests/test-narrow-acl.t @@ -10,7 +10,7 @@ Make a narrow clone then archive it > 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 diff --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t +++ b/tests/test-rebase-inmemory.t @@ -760,3 +760,46 @@ Test rebasing a commit with copy informa 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]