rust-narrow: fix loop that never loops
authorRaphaël Gomès <rgomes@octobus.net>
Mon, 09 Jan 2023 17:48:54 +0100
changeset 49915 c8ef85ace216
parent 49914 58074252db3c
child 49916 321e2b7bc95c
rust-narrow: fix loop that never loops This was caught by `clippy`. I guess the narrow tests leave something to be desired, since this previously only checked the first valid pattern.
rust/hg-core/src/narrow.rs
tests/test-narrow-clone.t
--- a/rust/hg-core/src/narrow.rs	Mon Jan 09 17:40:03 2023 +0100
+++ b/rust/hg-core/src/narrow.rs	Mon Jan 09 17:48:54 2023 +0100
@@ -100,12 +100,12 @@
         }
         for prefix in VALID_PREFIXES.iter() {
             if pattern.starts_with(prefix.as_bytes()) {
-                break;
+                return Ok(());
             }
-            return Err(SparseConfigError::InvalidNarrowPrefix(
-                pattern.to_owned(),
-            ));
         }
+        return Err(SparseConfigError::InvalidNarrowPrefix(
+            pattern.to_owned(),
+        ));
     }
     Ok(())
 }
--- a/tests/test-narrow-clone.t	Mon Jan 09 17:40:03 2023 +0100
+++ b/tests/test-narrow-clone.t	Mon Jan 09 17:48:54 2023 +0100
@@ -28,6 +28,18 @@
   (narrow patterns must begin with one of the following: path:, rootfilesin:)
   [255]
 
+rootfilesin: patterns work
+
+  $ hg clone --narrow ssh://user@dummy/master rootfilesin --noupdate --include 'rootfilesin:dir'
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files
+  new changesets 26ce255d5b5d
+  $ hg tracked -R rootfilesin
+  I rootfilesin:dir
+
 narrow clone a file, f10
 
   $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/f10"