changeset 39571:cb675e95a2c2

hg: write narrow patterns after repo creation Now that hg.clone() knows when a narrow clone is requested, it makes sense to have it update the narrow patterns for the repo soon after the repo is created, before any exchange occurs. Previously, the narrow extension was monkeypatching an exchange function to do this. The old code is redundant and has been removed. Differential Revision: https://phab.mercurial-scm.org/D4541
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 11 Sep 2018 17:22:15 -0700
parents 841c82d1a973
children c8ea5c7ec99d
files hgext/narrow/narrowcommands.py mercurial/hg.py
diffstat 2 files changed, 4 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/narrow/narrowcommands.py	Tue Sep 11 16:59:17 2018 -0700
+++ b/hgext/narrow/narrowcommands.py	Tue Sep 11 17:22:15 2018 -0700
@@ -92,19 +92,6 @@
 
     if opts['narrow']:
         def pullbundle2extraprepare_widen(orig, pullop, kwargs):
-            # Create narrow spec patterns from clone flags
-            includepats = narrowspec.parsepatterns(opts['include'])
-            excludepats = narrowspec.parsepatterns(opts['exclude'])
-
-            if not includepats and excludepats:
-                # If nothing was included, we assume the user meant to include
-                # everything, except what they asked to exclude.
-                includepats = {'path:.'}
-
-            pullop.repo.setnarrowpats(includepats, excludepats)
-
-            # This will populate 'includepats' etc with the values from the
-            # narrowspec we just saved.
             orig(pullop, kwargs)
 
             if opts.get('depth'):
--- a/mercurial/hg.py	Tue Sep 11 16:59:17 2018 -0700
+++ b/mercurial/hg.py	Tue Sep 11 17:22:15 2018 -0700
@@ -737,6 +737,10 @@
                 revs = None
             local = destpeer.local()
             if local:
+                if narrow:
+                    with local.lock():
+                        local.setnarrowpats(storeincludepats, storeexcludepats)
+
                 u = util.url(abspath)
                 defaulturl = bytes(u)
                 local.ui.setconfig('paths', 'default', defaulturl, 'clone')