# HG changeset patch # User Martin von Zweigbergk # Date 2019-10-11 07:18:34 # Node ID 63d440bef72aa7e8c65783423ccce8130b810051 # Parent 2673f9a74968b7c75666c4fff29f1f7d24d105b2 widening: pass in matchers instead of patterns This matches how it's done for the non-ellipsis case. The oldmatch is not used yet, but it should be used eventually when widening no longer resends manifests and files the client already has. Differential Revision: https://phab.mercurial-scm.org/D7099 diff --git a/hgext/narrow/narrowbundle2.py b/hgext/narrow/narrowbundle2.py --- a/hgext/narrow/narrowbundle2.py +++ b/hgext/narrow/narrowbundle2.py @@ -112,20 +112,8 @@ def generateellipsesbundle2( def generate_ellipses_bundle2_for_widening( - bundler, - repo, - oldinclude, - oldexclude, - newinclude, - newexclude, - version, - common, - known, + bundler, repo, oldmatch, newmatch, version, common, known, ): - newmatch = narrowspec.match( - repo.root, include=newinclude, exclude=newexclude - ) - common = set(common or [nullid]) # Steps: # 1. Send kill for "$known & ::common" diff --git a/hgext/narrow/narrowwirepeer.py b/hgext/narrow/narrowwirepeer.py --- a/hgext/narrow/narrowwirepeer.py +++ b/hgext/narrow/narrowwirepeer.py @@ -102,13 +102,13 @@ def narrow_widen( cgversion = cgversion bundler = bundle2.bundle20(repo.ui) + newmatch = narrowspec.match( + repo.root, include=newincludes, exclude=newexcludes + ) + oldmatch = narrowspec.match( + repo.root, include=oldincludes, exclude=oldexcludes + ) if not ellipses: - newmatch = narrowspec.match( - repo.root, include=newincludes, exclude=newexcludes - ) - oldmatch = narrowspec.match( - repo.root, include=oldincludes, exclude=oldexcludes - ) bundle2.widen_bundle( bundler, repo, @@ -121,15 +121,7 @@ def narrow_widen( ) else: narrowbundle2.generate_ellipses_bundle2_for_widening( - bundler, - repo, - oldincludes, - oldexcludes, - newincludes, - newexcludes, - cgversion, - common, - known, + bundler, repo, oldmatch, newmatch, cgversion, common, known, ) except error.Abort as exc: bundler = bundle2.bundle20(repo.ui)