Mercurial > hg
changeset 43770:44b605638918
exchange: guard against method invocation on `b2caps=None` args
I couldn't figure out how these are called, but the value is pretty obviously
set at least for the cases that have tests.
Differential Revision: https://phab.mercurial-scm.org/D7512
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 23 Nov 2019 00:03:18 -0500 |
parents | 27c6d6f53d46 |
children | f79377f24487 |
files | mercurial/exchange.py |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/exchange.py Fri Nov 22 23:58:25 2019 -0500 +++ b/mercurial/exchange.py Sat Nov 23 00:03:18 2019 -0500 @@ -2474,7 +2474,7 @@ **kwargs ): """add a changegroup part to the requested bundle""" - if not kwargs.get('cg', True): + if not kwargs.get('cg', True) or not b2caps: return version = b'01' @@ -2536,7 +2536,7 @@ """add a bookmark part to the requested bundle""" if not kwargs.get('bookmarks', False): return - if b'bookmarks' not in b2caps: + if not b2caps or b'bookmarks' not in b2caps: raise error.Abort(_(b'no common bookmarks exchange method')) books = bookmod.listbinbookmarks(repo) data = bookmod.binaryencode(books) @@ -2577,7 +2577,7 @@ ): """add phase heads part to the requested bundle""" if kwargs.get('phases', False): - if not b'heads' in b2caps.get(b'phases'): + if not b2caps or not b'heads' in b2caps.get(b'phases'): raise error.Abort(_(b'no common phases exchange method')) if heads is None: heads = repo.heads() @@ -2641,7 +2641,7 @@ # Don't send unless: # - changeset are being exchanged, # - the client supports it. - if not (kwargs.get('cg', True) and b'hgtagsfnodes' in b2caps): + if not b2caps or not (kwargs.get('cg', True) and b'hgtagsfnodes' in b2caps): return outgoing = _computeoutgoing(repo, heads, common) @@ -2675,6 +2675,7 @@ # - narrow bundle isn't in play (not currently compatible). if ( not kwargs.get('cg', True) + or not b2caps or b'rev-branch-cache' not in b2caps or kwargs.get('narrow', False) or repo.ui.has_section(_NARROWACL_SECTION)