# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1558396934 -19800 # Node ID 21e77ede77abbbb299c7bab2a73dd144225a0ff9 # Parent 92f584065b4f15d411bff0ea39729855c3833668 narrow: factor out logic to build ellipses related b2parts in separate fn This will help us switch more cleanly to using wireprotocol commands instead of using exchange.pull() which exchanges more things then required. Differential Revision: https://phab.mercurial-scm.org/D6435 diff -r 92f584065b4f -r 21e77ede77ab hgext/narrow/narrowbundle2.py --- a/hgext/narrow/narrowbundle2.py Tue May 21 04:49:18 2019 +0530 +++ b/hgext/narrow/narrowbundle2.py Tue May 21 05:32:14 2019 +0530 @@ -57,11 +57,18 @@ raise ValueError(_('no common changegroup version')) version = max(cgversions) - include = sorted(filter(bool, kwargs.get(r'includepats', []))) - exclude = sorted(filter(bool, kwargs.get(r'excludepats', []))) - newmatch = narrowspec.match(repo.root, include=include, exclude=exclude) + oldinclude = sorted(filter(bool, kwargs.get(r'oldincludepats', []))) + oldexclude = sorted(filter(bool, kwargs.get(r'oldexcludepats', []))) + newinclude = sorted(filter(bool, kwargs.get(r'includepats', []))) + newexclude = sorted(filter(bool, kwargs.get(r'excludepats', []))) + generateellipsesbundle2(bundler, repo, oldinclude, oldexclude, newinclude, + newexclude, version, common, kwargs.get('known', []), + kwargs.get(r'depth', None), heads) - depth = kwargs.get(r'depth', None) +def generateellipsesbundle2(bundler, repo, oldinclude, oldexclude, newinclude, + newexclude, version, common, known, depth, heads): + newmatch = narrowspec.match(repo.root, include=newinclude, + exclude=newexclude) if depth is not None: depth = int(depth) if depth < 1: @@ -69,10 +76,8 @@ heads = set(heads or repo.heads()) common = set(common or [nullid]) - oldinclude = sorted(filter(bool, kwargs.get(r'oldincludepats', []))) - oldexclude = sorted(filter(bool, kwargs.get(r'oldexcludepats', []))) - known = {bin(n) for n in kwargs.get(r'known', [])} - if known and (oldinclude != include or oldexclude != exclude): + known = {bin(n) for n in known} + if known and (oldinclude != newinclude or oldexclude != newexclude): # Steps: # 1. Send kill for "$known & ::common" #