narrow: validate spec files are well-formed during clone (BC)
authorGregory Szorc <gregory.szorc@gmail.com>
Tue, 11 Sep 2018 11:47:10 -0700
changeset 39541 8301741e1f89
parent 39540 ce20caecacbd
child 39542 0a5f7e16ec96
narrow: validate spec files are well-formed during clone (BC) Previously, specfiles would get read then normalized. We want specfiles to be normalized on read so there is no confusion about what the format of specfiles should be. This commit validates the parsed result of --specfile. If entries aren't prefixed, an error is raised. Previously, validation would occur at exchange time, hence why we dropped a line of test output related to server iteraction. Differential Revision: https://phab.mercurial-scm.org/D4526
hgext/narrow/narrowcommands.py
tests/test-narrow-clone-no-ellipsis.t
tests/test-narrow-clone.t
--- a/hgext/narrow/narrowcommands.py	Tue Sep 11 10:59:21 2018 -0700
+++ b/hgext/narrow/narrowcommands.py	Tue Sep 11 11:47:10 2018 -0700
@@ -102,6 +102,9 @@
             raise error.Abort(_("cannot specify other files using '%include' in"
                                 " narrowspec"))
 
+        narrowspec.validatepatterns(includes)
+        narrowspec.validatepatterns(excludes)
+
         # narrowspec is passed so we should assume that user wants narrow clone
         opts_narrow = True
         opts['include'].extend(includes)
--- a/tests/test-narrow-clone-no-ellipsis.t	Tue Sep 11 10:59:21 2018 -0700
+++ b/tests/test-narrow-clone-no-ellipsis.t	Tue Sep 11 11:47:10 2018 -0700
@@ -130,7 +130,7 @@
   > %include foo
   > [include]
   > path:dir/tests/
-  > file:dir/src/f12
+  > path:file:dir/src/f12
   > EOF
 
   $ hg clone ssh://user@dummy/master specfile --narrowspec narrowspecs
@@ -141,7 +141,7 @@
   $ cat > narrowspecs <<EOF
   > [include]
   > path:dir/tests/
-  > file:dir/src/f12
+  > path:file:dir/src/f12
   > EOF
 
   $ hg clone ssh://user@dummy/master specfile --narrowspec narrowspecs
--- a/tests/test-narrow-clone.t	Tue Sep 11 10:59:21 2018 -0700
+++ b/tests/test-narrow-clone.t	Tue Sep 11 11:47:10 2018 -0700
@@ -239,7 +239,7 @@
   > %include foo
   > [include]
   > path:dir/tests/
-  > dir/src/f12
+  > path:file:dir/src/f12
   > EOF
 
   $ hg clone ssh://user@dummy/master specfile --narrowspec narrowspecs
@@ -250,7 +250,7 @@
   $ cat > narrowspecs <<EOF
   > [include]
   > path:dir/tests/
-  > file:dir/src/f12
+  > path:file:dir/src/f12
   > EOF
 
   $ hg clone ssh://user@dummy/master specfile --narrowspec narrowspecs
@@ -278,7 +278,6 @@
 
   $ hg clone ssh://user@dummy/master badspecfile --narrowspec narrowspecs
   reading narrowspec from '$TESTTMP/narrowspecs'
-  requesting all changes
   abort: invalid prefix on narrow pattern: glob:**
   (narrow patterns must begin with one of the following: path:, rootfilesin:)
   [255]