bazel_roll: Better handle trimming around rules

The code for extracting the center of a match used to trim a bunch of
lines from the end, then recalculate the center and trim a bunch of
stuff from the beginning. If many lines were removed from the end, then
the updated center could be on a different rule and the parsing would
fail.

Change-Id: I8eda8e7004a3ae28c048c0687177c0448b8dce38
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/424032
diff --git a/recipe_modules/bazel_roll/api.py b/recipe_modules/bazel_roll/api.py
index 5a0ef38..7b1e656 100644
--- a/recipe_modules/bazel_roll/api.py
+++ b/recipe_modules/bazel_roll/api.py
@@ -65,21 +65,24 @@
 
 
 def trim_nearby_lines(lines: Sequence[LineProxy]) -> list[LineProxy]:
-    # If there's a blank line in the second half, remove any following lines.
+    start = 0
+    end = -1
+
+    # Find the first blank line in the second half.
     for i in range(len(lines) // 2, len(lines)):
         text = lines[i].text or ''
         if not text.strip():
-            lines = lines[0:i]
+            end = i
             break
 
-    # If there's a blank line in the first half, remove any preceding lines.
+    # Find the last blank line in the first half.
     for i in range(len(lines) // 2, 0, -1):
         text = lines[i].text or ''
         if not text.strip():
-            lines = lines[i:]
+            start = i
             break
 
-    return lines
+    return lines[start:end]
 
 
 def proximity_sort_nearby_lines(
@@ -561,7 +564,7 @@
         project_value: str,
         path: config_types.Path,
         search_key: str,
-        num_nearby_lines: int = 10,
+        num_nearby_lines: int = 20,
         title_keys: Sequence[str] = ('name', 'module_name'),
         matches: Callable[[str, str], bool] | None = None,
     ) -> list[dict[str, str]]:
diff --git a/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json b/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json
index f6b1554..265d37e 100644
--- a/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json
+++ b/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json
@@ -43,19 +43,39 @@
       "@@@STEP_LOG_LINE@lines@7 @@@",
       "@@@STEP_LOG_LINE@lines@8 @@@",
       "@@@STEP_LOG_LINE@lines@9 @@@",
-      "@@@STEP_LOG_LINE@lines@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@11   name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@lines@12   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@lines@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@lines@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@lines@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@lines@16   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@lines@17   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@lines@18 )@@@",
+      "@@@STEP_LOG_LINE@lines@10 @@@",
+      "@@@STEP_LOG_LINE@lines@11 @@@",
+      "@@@STEP_LOG_LINE@lines@12 @@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
+      "@@@STEP_LOG_LINE@lines@15 @@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
       "@@@STEP_LOG_LINE@lines@19 @@@",
-      "@@@STEP_LOG_LINE@lines@20 @@@",
-      "@@@STEP_LOG_LINE@lines@21 @@@",
-      "@@@STEP_LOG_LINE@lines@22 @@@",
+      "@@@STEP_LOG_LINE@lines@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21   name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@lines@22   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@lines@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@lines@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@lines@26   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@lines@27   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@lines@28 )@@@",
+      "@@@STEP_LOG_LINE@lines@29 @@@",
+      "@@@STEP_LOG_LINE@lines@30 @@@",
+      "@@@STEP_LOG_LINE@lines@31 @@@",
+      "@@@STEP_LOG_LINE@lines@32 @@@",
+      "@@@STEP_LOG_LINE@lines@33 @@@",
+      "@@@STEP_LOG_LINE@lines@34 @@@",
+      "@@@STEP_LOG_LINE@lines@35 @@@",
+      "@@@STEP_LOG_LINE@lines@36 @@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 @@@",
+      "@@@STEP_LOG_LINE@lines@39 @@@",
+      "@@@STEP_LOG_LINE@lines@40 @@@",
+      "@@@STEP_LOG_LINE@lines@41 @@@",
+      "@@@STEP_LOG_LINE@lines@42 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -64,7 +84,7 @@
     "name": "clang.lines",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@0_center@12@@@",
+      "@@@STEP_LOG_LINE@0_center@22@@@",
       "@@@STEP_LOG_END@0_center@@@",
       "@@@STEP_LOG_LINE@1_orig@2 @@@",
       "@@@STEP_LOG_LINE@1_orig@3 @@@",
@@ -74,41 +94,61 @@
       "@@@STEP_LOG_LINE@1_orig@7 @@@",
       "@@@STEP_LOG_LINE@1_orig@8 @@@",
       "@@@STEP_LOG_LINE@1_orig@9 @@@",
-      "@@@STEP_LOG_LINE@1_orig@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@1_orig@11   name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@12   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@1_orig@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@1_orig@16   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@17   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@18 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@10 @@@",
+      "@@@STEP_LOG_LINE@1_orig@11 @@@",
+      "@@@STEP_LOG_LINE@1_orig@12 @@@",
+      "@@@STEP_LOG_LINE@1_orig@13 @@@",
+      "@@@STEP_LOG_LINE@1_orig@14 @@@",
+      "@@@STEP_LOG_LINE@1_orig@15 @@@",
+      "@@@STEP_LOG_LINE@1_orig@16 @@@",
+      "@@@STEP_LOG_LINE@1_orig@17 @@@",
+      "@@@STEP_LOG_LINE@1_orig@18 @@@",
       "@@@STEP_LOG_LINE@1_orig@19 @@@",
-      "@@@STEP_LOG_LINE@1_orig@20 @@@",
-      "@@@STEP_LOG_LINE@1_orig@21 @@@",
-      "@@@STEP_LOG_LINE@1_orig@22 @@@",
+      "@@@STEP_LOG_LINE@1_orig@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@21   name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@22   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@1_orig@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@1_orig@26   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@27   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@28 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@29 @@@",
+      "@@@STEP_LOG_LINE@1_orig@30 @@@",
+      "@@@STEP_LOG_LINE@1_orig@31 @@@",
+      "@@@STEP_LOG_LINE@1_orig@32 @@@",
+      "@@@STEP_LOG_LINE@1_orig@33 @@@",
+      "@@@STEP_LOG_LINE@1_orig@34 @@@",
+      "@@@STEP_LOG_LINE@1_orig@35 @@@",
+      "@@@STEP_LOG_LINE@1_orig@36 @@@",
+      "@@@STEP_LOG_LINE@1_orig@37 @@@",
+      "@@@STEP_LOG_LINE@1_orig@38 @@@",
+      "@@@STEP_LOG_LINE@1_orig@39 @@@",
+      "@@@STEP_LOG_LINE@1_orig@40 @@@",
+      "@@@STEP_LOG_LINE@1_orig@41 @@@",
+      "@@@STEP_LOG_LINE@1_orig@42 @@@",
       "@@@STEP_LOG_END@1_orig@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@9 @@@",
-      "@@@STEP_LOG_LINE@2_trimmed@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@11   name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@12   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@16   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@17   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@18 )@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@19 @@@",
+      "@@@STEP_LOG_LINE@2_trimmed@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@21   name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@22   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@26   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@27   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@28 )@@@",
       "@@@STEP_LOG_END@2_trimmed@@@",
-      "@@@STEP_LOG_LINE@3_sorted@12   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@11   name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@3_sorted@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@9 @@@",
-      "@@@STEP_LOG_LINE@3_sorted@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@16   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@17   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@18 )@@@",
+      "@@@STEP_LOG_LINE@3_sorted@22   path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@21   name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@3_sorted@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@19 @@@",
+      "@@@STEP_LOG_LINE@3_sorted@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@26   tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@27   build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@28 )@@@",
       "@@@STEP_LOG_END@3_sorted@@@"
     ]
   },
diff --git a/recipe_modules/bazel_roll/tests/retrieve_attributes.expected/success.json b/recipe_modules/bazel_roll/tests/retrieve_attributes.expected/success.json
index f3f2662..600b572 100644
--- a/recipe_modules/bazel_roll/tests/retrieve_attributes.expected/success.json
+++ b/recipe_modules/bazel_roll/tests/retrieve_attributes.expected/success.json
@@ -837,19 +837,39 @@
       "@@@STEP_LOG_LINE@lines@7 @@@",
       "@@@STEP_LOG_LINE@lines@8 @@@",
       "@@@STEP_LOG_LINE@lines@9 @@@",
-      "@@@STEP_LOG_LINE@lines@10 git_override(@@@",
-      "@@@STEP_LOG_LINE@lines@11   name = \"other-repo\",@@@",
-      "@@@STEP_LOG_LINE@lines@12   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@13   commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@lines@14 )@@@",
+      "@@@STEP_LOG_LINE@lines@10 @@@",
+      "@@@STEP_LOG_LINE@lines@11 @@@",
+      "@@@STEP_LOG_LINE@lines@12 @@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
       "@@@STEP_LOG_LINE@lines@15 @@@",
-      "@@@STEP_LOG_LINE@lines@16 git_override(@@@",
-      "@@@STEP_LOG_LINE@lines@17   name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@lines@18   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@19   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@lines@20   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@lines@21   # ROLL: Comment line 2.@@@",
-      "@@@STEP_LOG_LINE@lines@22   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@21   name = \"other-repo\",@@@",
+      "@@@STEP_LOG_LINE@lines@22   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23   commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@27   name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@29   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@30   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@lines@31   # ROLL: Comment line 2.@@@",
+      "@@@STEP_LOG_LINE@lines@32   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@lines@33   commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@34   git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35   strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@39   name = \"third-repo\",@@@",
+      "@@@STEP_LOG_LINE@lines@40   remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41   commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -859,25 +879,45 @@
     "~followup_annotations": [
       "@@@STEP_LOG_LINE@lines@8 @@@",
       "@@@STEP_LOG_LINE@lines@9 @@@",
-      "@@@STEP_LOG_LINE@lines@10 git_override(@@@",
-      "@@@STEP_LOG_LINE@lines@11   name = \"other-repo\",@@@",
-      "@@@STEP_LOG_LINE@lines@12   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@13   commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@lines@14 )@@@",
+      "@@@STEP_LOG_LINE@lines@10 @@@",
+      "@@@STEP_LOG_LINE@lines@11 @@@",
+      "@@@STEP_LOG_LINE@lines@12 @@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
       "@@@STEP_LOG_LINE@lines@15 @@@",
-      "@@@STEP_LOG_LINE@lines@16 git_override(@@@",
-      "@@@STEP_LOG_LINE@lines@17   name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@lines@18   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@19   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@lines@20   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@lines@21   # ROLL: Comment line 2.@@@",
-      "@@@STEP_LOG_LINE@lines@22   # ROLL: Comment line 3.@@@",
-      "@@@STEP_LOG_LINE@lines@23   commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@lines@24   git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@lines@25   strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@lines@26 )@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@21   name = \"other-repo\",@@@",
+      "@@@STEP_LOG_LINE@lines@22   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23   commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@27   name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@29   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@30   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@lines@31   # ROLL: Comment line 2.@@@",
+      "@@@STEP_LOG_LINE@lines@32   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@lines@33   commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@34   git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35   strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@39   name = \"third-repo\",@@@",
+      "@@@STEP_LOG_LINE@lines@40   remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41   commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
+      "@@@STEP_LOG_LINE@lines@43 @@@",
+      "@@@STEP_LOG_LINE@lines@44 @@@",
+      "@@@STEP_LOG_LINE@lines@45 @@@",
+      "@@@STEP_LOG_LINE@lines@46 @@@",
+      "@@@STEP_LOG_LINE@lines@47 @@@",
+      "@@@STEP_LOG_LINE@lines@48 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -885,27 +925,47 @@
     "cmd": [],
     "name": "found other remote 'https://pigweed.googlesource.com/third/repo.git'",
     "~followup_annotations": [
-      "@@@STEP_LOG_LINE@lines@20   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@lines@21   # ROLL: Comment line 2.@@@",
-      "@@@STEP_LOG_LINE@lines@22   # ROLL: Comment line 3.@@@",
-      "@@@STEP_LOG_LINE@lines@23   commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@lines@24   git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@lines@25   strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@lines@26 )@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_override(@@@",
-      "@@@STEP_LOG_LINE@lines@29   name = \"third-repo\",@@@",
-      "@@@STEP_LOG_LINE@lines@30   remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@31   commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@lines@32 )@@@",
-      "@@@STEP_LOG_LINE@lines@33 @@@",
-      "@@@STEP_LOG_LINE@lines@34 @@@",
-      "@@@STEP_LOG_LINE@lines@35 @@@",
-      "@@@STEP_LOG_LINE@lines@36 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@21   name = \"other-repo\",@@@",
+      "@@@STEP_LOG_LINE@lines@22   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23   commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@27   name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@29   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@30   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@lines@31   # ROLL: Comment line 2.@@@",
+      "@@@STEP_LOG_LINE@lines@32   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@lines@33   commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@34   git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35   strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
       "@@@STEP_LOG_LINE@lines@37 @@@",
-      "@@@STEP_LOG_LINE@lines@38 @@@",
-      "@@@STEP_LOG_LINE@lines@39 @@@",
-      "@@@STEP_LOG_LINE@lines@40 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@39   name = \"third-repo\",@@@",
+      "@@@STEP_LOG_LINE@lines@40   remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41   commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
+      "@@@STEP_LOG_LINE@lines@43 @@@",
+      "@@@STEP_LOG_LINE@lines@44 @@@",
+      "@@@STEP_LOG_LINE@lines@45 @@@",
+      "@@@STEP_LOG_LINE@lines@46 @@@",
+      "@@@STEP_LOG_LINE@lines@47 @@@",
+      "@@@STEP_LOG_LINE@lines@48 @@@",
+      "@@@STEP_LOG_LINE@lines@49 @@@",
+      "@@@STEP_LOG_LINE@lines@50 @@@",
+      "@@@STEP_LOG_LINE@lines@51 @@@",
+      "@@@STEP_LOG_LINE@lines@52 @@@",
+      "@@@STEP_LOG_LINE@lines@53 @@@",
+      "@@@STEP_LOG_LINE@lines@54 @@@",
+      "@@@STEP_LOG_LINE@lines@55 @@@",
+      "@@@STEP_LOG_LINE@lines@56 @@@",
+      "@@@STEP_LOG_LINE@lines@57 @@@",
+      "@@@STEP_LOG_LINE@lines@58 @@@",
+      "@@@STEP_LOG_LINE@lines@59 @@@",
+      "@@@STEP_LOG_LINE@lines@60 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -913,55 +973,75 @@
     "cmd": [],
     "name": "lines",
     "~followup_annotations": [
-      "@@@STEP_LOG_LINE@0_center@18@@@",
+      "@@@STEP_LOG_LINE@0_center@28@@@",
       "@@@STEP_LOG_END@0_center@@@",
       "@@@STEP_LOG_LINE@1_orig@8 @@@",
       "@@@STEP_LOG_LINE@1_orig@9 @@@",
-      "@@@STEP_LOG_LINE@1_orig@10 git_override(@@@",
-      "@@@STEP_LOG_LINE@1_orig@11   name = \"other-repo\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@12   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@13   commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@14 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@10 @@@",
+      "@@@STEP_LOG_LINE@1_orig@11 @@@",
+      "@@@STEP_LOG_LINE@1_orig@12 @@@",
+      "@@@STEP_LOG_LINE@1_orig@13 @@@",
+      "@@@STEP_LOG_LINE@1_orig@14 @@@",
       "@@@STEP_LOG_LINE@1_orig@15 @@@",
-      "@@@STEP_LOG_LINE@1_orig@16 git_override(@@@",
-      "@@@STEP_LOG_LINE@1_orig@17   name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@18   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@19   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@1_orig@20   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@1_orig@21   # ROLL: Comment line 2.@@@",
-      "@@@STEP_LOG_LINE@1_orig@22   # ROLL: Comment line 3.@@@",
-      "@@@STEP_LOG_LINE@1_orig@23   commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@24   git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@25   strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@26 )@@@",
-      "@@@STEP_LOG_LINE@1_orig@27 @@@",
-      "@@@STEP_LOG_LINE@1_orig@28 git_override(@@@",
+      "@@@STEP_LOG_LINE@1_orig@16 @@@",
+      "@@@STEP_LOG_LINE@1_orig@17 @@@",
+      "@@@STEP_LOG_LINE@1_orig@18 @@@",
+      "@@@STEP_LOG_LINE@1_orig@19 @@@",
+      "@@@STEP_LOG_LINE@1_orig@20 git_override(@@@",
+      "@@@STEP_LOG_LINE@1_orig@21   name = \"other-repo\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@22   remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@23   commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@24 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@25 @@@",
+      "@@@STEP_LOG_LINE@1_orig@26 git_override(@@@",
+      "@@@STEP_LOG_LINE@1_orig@27   name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@28   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@29   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@1_orig@30   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@1_orig@31   # ROLL: Comment line 2.@@@",
+      "@@@STEP_LOG_LINE@1_orig@32   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@1_orig@33   commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@34   git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@35   strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@36 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@37 @@@",
+      "@@@STEP_LOG_LINE@1_orig@38 git_override(@@@",
+      "@@@STEP_LOG_LINE@1_orig@39   name = \"third-repo\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@40   remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@41   commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@42 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@43 @@@",
+      "@@@STEP_LOG_LINE@1_orig@44 @@@",
+      "@@@STEP_LOG_LINE@1_orig@45 @@@",
+      "@@@STEP_LOG_LINE@1_orig@46 @@@",
+      "@@@STEP_LOG_LINE@1_orig@47 @@@",
+      "@@@STEP_LOG_LINE@1_orig@48 @@@",
       "@@@STEP_LOG_END@1_orig@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@15 @@@",
-      "@@@STEP_LOG_LINE@2_trimmed@16 git_override(@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@17   name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@18   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@19   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@20   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@21   # ROLL: Comment line 2.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@22   # ROLL: Comment line 3.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@23   commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@24   git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@25   strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@26 )@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@25 @@@",
+      "@@@STEP_LOG_LINE@2_trimmed@26 git_override(@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@27   name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@28   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@29   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@30   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@31   # ROLL: Comment line 2.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@32   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@33   commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@34   git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@35   strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@36 )@@@",
       "@@@STEP_LOG_END@2_trimmed@@@",
-      "@@@STEP_LOG_LINE@3_sorted@18   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@17   name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@19   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@16 git_override(@@@",
-      "@@@STEP_LOG_LINE@3_sorted@20   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@15 @@@",
-      "@@@STEP_LOG_LINE@3_sorted@21   # ROLL: Comment line 2.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@22   # ROLL: Comment line 3.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@23   commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@24   git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@25   strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@26 )@@@",
+      "@@@STEP_LOG_LINE@3_sorted@28   remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@27   name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@29   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@26 git_override(@@@",
+      "@@@STEP_LOG_LINE@3_sorted@30   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@25 @@@",
+      "@@@STEP_LOG_LINE@3_sorted@31   # ROLL: Comment line 2.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@32   # ROLL: Comment line 3.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@33   commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@34   git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@35   strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@36 )@@@",
       "@@@STEP_LOG_END@3_sorted@@@"
     ]
   },
diff --git a/recipe_modules/checkout/tests/workspace.expected/found.json b/recipe_modules/checkout/tests/workspace.expected/found.json
index eb342f6..79d8b50 100644
--- a/recipe_modules/checkout/tests/workspace.expected/found.json
+++ b/recipe_modules/checkout/tests/workspace.expected/found.json
@@ -1549,19 +1549,39 @@
       "@@@STEP_LOG_LINE@lines@7 @@@",
       "@@@STEP_LOG_LINE@lines@8 @@@",
       "@@@STEP_LOG_LINE@lines@9 @@@",
-      "@@@STEP_LOG_LINE@lines@10 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@11     name = \"other-repo\"@@@",
-      "@@@STEP_LOG_LINE@lines@12     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@13     commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@lines@14 )@@@",
+      "@@@STEP_LOG_LINE@lines@10 @@@",
+      "@@@STEP_LOG_LINE@lines@11 @@@",
+      "@@@STEP_LOG_LINE@lines@12 @@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
       "@@@STEP_LOG_LINE@lines@15 @@@",
-      "@@@STEP_LOG_LINE@lines@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@lines@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@lines@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@lines@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@lines@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@lines@22     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@lines@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -1570,27 +1590,47 @@
     "name": "checkout foo.workspace.pigweed:123456.WORKSPACE.found matching remote 'https://pigweed.googlesource.com/pigweed/pigweed.git'",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@lines@13     commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@lines@14 )@@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
       "@@@STEP_LOG_LINE@lines@15 @@@",
-      "@@@STEP_LOG_LINE@lines@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@lines@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@lines@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@lines@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@lines@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@lines@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@lines@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@lines@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@lines@26 )@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@lines@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@lines@32 )@@@",
-      "@@@STEP_LOG_LINE@lines@33 @@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@lines@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
+      "@@@STEP_LOG_LINE@lines@43 @@@",
+      "@@@STEP_LOG_LINE@lines@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@lines@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@lines@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@lines@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@lines@49 )@@@",
+      "@@@STEP_LOG_LINE@lines@50 @@@",
+      "@@@STEP_LOG_LINE@lines@51 @@@",
+      "@@@STEP_LOG_LINE@lines@52 @@@",
+      "@@@STEP_LOG_LINE@lines@53 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -1599,27 +1639,47 @@
     "name": "checkout foo.workspace.pigweed:123456.WORKSPACE.found other remote 'https://pigweed.googlesource.com/third/repo.git'",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@lines@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@lines@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@lines@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@lines@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@lines@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@lines@26 )@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@lines@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@lines@32 )@@@",
-      "@@@STEP_LOG_LINE@lines@33 @@@",
-      "@@@STEP_LOG_LINE@lines@34 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@35     name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@lines@36     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@lines@37     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@lines@38     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@lines@39 )@@@",
-      "@@@STEP_LOG_LINE@lines@40 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@lines@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
+      "@@@STEP_LOG_LINE@lines@43 @@@",
+      "@@@STEP_LOG_LINE@lines@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@lines@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@lines@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@lines@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@lines@49 )@@@",
+      "@@@STEP_LOG_LINE@lines@50 @@@",
+      "@@@STEP_LOG_LINE@lines@51 @@@",
+      "@@@STEP_LOG_LINE@lines@52 @@@",
+      "@@@STEP_LOG_LINE@lines@53 @@@",
+      "@@@STEP_LOG_LINE@lines@54 @@@",
+      "@@@STEP_LOG_LINE@lines@55 @@@",
+      "@@@STEP_LOG_LINE@lines@56 @@@",
+      "@@@STEP_LOG_LINE@lines@57 @@@",
+      "@@@STEP_LOG_LINE@lines@58 @@@",
+      "@@@STEP_LOG_LINE@lines@59 @@@",
+      "@@@STEP_LOG_LINE@lines@60 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -1628,55 +1688,75 @@
     "name": "checkout foo.workspace.pigweed:123456.WORKSPACE.lines",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@0_center@23@@@",
+      "@@@STEP_LOG_LINE@0_center@33@@@",
       "@@@STEP_LOG_END@0_center@@@",
-      "@@@STEP_LOG_LINE@1_orig@13     commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@14 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@13 @@@",
+      "@@@STEP_LOG_LINE@1_orig@14 @@@",
       "@@@STEP_LOG_LINE@1_orig@15 @@@",
-      "@@@STEP_LOG_LINE@1_orig@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@1_orig@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@1_orig@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@1_orig@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@1_orig@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@1_orig@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@26 )@@@",
-      "@@@STEP_LOG_LINE@1_orig@27 @@@",
-      "@@@STEP_LOG_LINE@1_orig@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@1_orig@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@1_orig@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@32 )@@@",
-      "@@@STEP_LOG_LINE@1_orig@33 @@@",
+      "@@@STEP_LOG_LINE@1_orig@16 @@@",
+      "@@@STEP_LOG_LINE@1_orig@17 @@@",
+      "@@@STEP_LOG_LINE@1_orig@18 @@@",
+      "@@@STEP_LOG_LINE@1_orig@19 @@@",
+      "@@@STEP_LOG_LINE@1_orig@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@1_orig@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@24 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@25 @@@",
+      "@@@STEP_LOG_LINE@1_orig@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@1_orig@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@1_orig@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@1_orig@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@1_orig@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@36 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@37 @@@",
+      "@@@STEP_LOG_LINE@1_orig@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@1_orig@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@42 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@43 @@@",
+      "@@@STEP_LOG_LINE@1_orig@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@49 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@50 @@@",
+      "@@@STEP_LOG_LINE@1_orig@51 @@@",
+      "@@@STEP_LOG_LINE@1_orig@52 @@@",
+      "@@@STEP_LOG_LINE@1_orig@53 @@@",
       "@@@STEP_LOG_END@1_orig@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@15 @@@",
-      "@@@STEP_LOG_LINE@2_trimmed@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@26 )@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@25 @@@",
+      "@@@STEP_LOG_LINE@2_trimmed@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@36 )@@@",
       "@@@STEP_LOG_END@2_trimmed@@@",
-      "@@@STEP_LOG_LINE@3_sorted@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@3_sorted@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@3_sorted@26 )@@@",
-      "@@@STEP_LOG_LINE@3_sorted@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@3_sorted@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@3_sorted@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@3_sorted@15 @@@",
+      "@@@STEP_LOG_LINE@3_sorted@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@3_sorted@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@3_sorted@36 )@@@",
+      "@@@STEP_LOG_LINE@3_sorted@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@3_sorted@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@3_sorted@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@3_sorted@25 @@@",
       "@@@STEP_LOG_END@3_sorted@@@"
     ]
   },
diff --git a/recipe_modules/checkout/tests/workspace.expected/not-found.json b/recipe_modules/checkout/tests/workspace.expected/not-found.json
index bffb157..db8ba06 100644
--- a/recipe_modules/checkout/tests/workspace.expected/not-found.json
+++ b/recipe_modules/checkout/tests/workspace.expected/not-found.json
@@ -1549,19 +1549,39 @@
       "@@@STEP_LOG_LINE@lines@7 @@@",
       "@@@STEP_LOG_LINE@lines@8 @@@",
       "@@@STEP_LOG_LINE@lines@9 @@@",
-      "@@@STEP_LOG_LINE@lines@10 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@11     name = \"other-repo\"@@@",
-      "@@@STEP_LOG_LINE@lines@12     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@13     commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@lines@14 )@@@",
+      "@@@STEP_LOG_LINE@lines@10 @@@",
+      "@@@STEP_LOG_LINE@lines@11 @@@",
+      "@@@STEP_LOG_LINE@lines@12 @@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
       "@@@STEP_LOG_LINE@lines@15 @@@",
-      "@@@STEP_LOG_LINE@lines@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@lines@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@lines@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@lines@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@lines@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@lines@22     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@lines@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -1570,27 +1590,47 @@
     "name": "checkout foo.workspace.x:123456.WORKSPACE.found other remote 'https://pigweed.googlesource.com/pigweed/pigweed.git'",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@lines@13     commit = \"invalid commit line won't be found\",@@@",
-      "@@@STEP_LOG_LINE@lines@14 )@@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
       "@@@STEP_LOG_LINE@lines@15 @@@",
-      "@@@STEP_LOG_LINE@lines@16 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@17     module_name = \"pigweed\",@@@",
-      "@@@STEP_LOG_LINE@lines@18     # ROLL: Multiple@@@",
-      "@@@STEP_LOG_LINE@lines@19     # ROLL: roll@@@",
-      "@@@STEP_LOG_LINE@lines@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@lines@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@lines@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@lines@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@lines@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@lines@26 )@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@lines@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@lines@32 )@@@",
-      "@@@STEP_LOG_LINE@lines@33 @@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
+      "@@@STEP_LOG_LINE@lines@18 @@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@lines@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
+      "@@@STEP_LOG_LINE@lines@43 @@@",
+      "@@@STEP_LOG_LINE@lines@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@lines@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@lines@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@lines@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@lines@49 )@@@",
+      "@@@STEP_LOG_LINE@lines@50 @@@",
+      "@@@STEP_LOG_LINE@lines@51 @@@",
+      "@@@STEP_LOG_LINE@lines@52 @@@",
+      "@@@STEP_LOG_LINE@lines@53 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -1599,27 +1639,47 @@
     "name": "checkout foo.workspace.x:123456.WORKSPACE.found other remote 'https://pigweed.googlesource.com/third/repo.git'",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@4@@@",
-      "@@@STEP_LOG_LINE@lines@20     # ROLL: comment@@@",
-      "@@@STEP_LOG_LINE@lines@21     # ROLL: lines!@@@",
-      "@@@STEP_LOG_LINE@lines@22     commit = \"1111111111111111111111111111111111111111\",@@@",
-      "@@@STEP_LOG_LINE@lines@23     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@24     git_repository_attribute_test = \"ignored\",@@@",
-      "@@@STEP_LOG_LINE@lines@25     strip_prefix = \"pw_toolchain_bazel\",@@@",
-      "@@@STEP_LOG_LINE@lines@26 )@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@lines@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@lines@32 )@@@",
-      "@@@STEP_LOG_LINE@lines@33 @@@",
-      "@@@STEP_LOG_LINE@lines@34 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@35     name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@lines@36     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@lines@37     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@lines@38     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@lines@39 )@@@",
-      "@@@STEP_LOG_LINE@lines@40 @@@",
+      "@@@STEP_LOG_LINE@lines@20 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21     name = \"other-repo\"@@@",
+      "@@@STEP_LOG_LINE@lines@22     remote = \"https://pigweed.googlesource.com/other/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@23     commit = \"invalid commit line won't be found\",@@@",
+      "@@@STEP_LOG_LINE@lines@24 )@@@",
+      "@@@STEP_LOG_LINE@lines@25 @@@",
+      "@@@STEP_LOG_LINE@lines@26 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
+      "@@@STEP_LOG_LINE@lines@43 @@@",
+      "@@@STEP_LOG_LINE@lines@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@lines@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@lines@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@lines@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@lines@49 )@@@",
+      "@@@STEP_LOG_LINE@lines@50 @@@",
+      "@@@STEP_LOG_LINE@lines@51 @@@",
+      "@@@STEP_LOG_LINE@lines@52 @@@",
+      "@@@STEP_LOG_LINE@lines@53 @@@",
+      "@@@STEP_LOG_LINE@lines@54 @@@",
+      "@@@STEP_LOG_LINE@lines@55 @@@",
+      "@@@STEP_LOG_LINE@lines@56 @@@",
+      "@@@STEP_LOG_LINE@lines@57 @@@",
+      "@@@STEP_LOG_LINE@lines@58 @@@",
+      "@@@STEP_LOG_LINE@lines@59 @@@",
+      "@@@STEP_LOG_LINE@lines@60 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
diff --git a/recipes/roller.expected/mega.json b/recipes/roller.expected/mega.json
index f773c50..8217677 100644
--- a/recipes/roller.expected/mega.json
+++ b/recipes/roller.expected/mega.json
@@ -2221,27 +2221,47 @@
     "name": "bazel-cipd/${plat}.found matching path 'fuchsia/third_party/clang/${os}-${arch}'",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@lines@27 @@@",
-      "@@@STEP_LOG_LINE@lines@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@lines@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@lines@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@lines@32 )@@@",
-      "@@@STEP_LOG_LINE@lines@33 @@@",
-      "@@@STEP_LOG_LINE@lines@34 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@35     name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@lines@36     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@lines@37     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@lines@38     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@lines@39 )@@@",
-      "@@@STEP_LOG_LINE@lines@40 @@@",
-      "@@@STEP_LOG_LINE@lines@41 @@@",
-      "@@@STEP_LOG_LINE@lines@42 @@@",
+      "@@@STEP_LOG_LINE@lines@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@lines@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@lines@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@lines@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@lines@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@lines@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@lines@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@lines@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@lines@36 )@@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@lines@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@lines@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@lines@42 )@@@",
       "@@@STEP_LOG_LINE@lines@43 @@@",
-      "@@@STEP_LOG_LINE@lines@44 @@@",
-      "@@@STEP_LOG_LINE@lines@45 @@@",
-      "@@@STEP_LOG_LINE@lines@46 @@@",
-      "@@@STEP_LOG_LINE@lines@47 @@@",
+      "@@@STEP_LOG_LINE@lines@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@lines@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@lines@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@lines@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@lines@49 )@@@",
+      "@@@STEP_LOG_LINE@lines@50 @@@",
+      "@@@STEP_LOG_LINE@lines@51 @@@",
+      "@@@STEP_LOG_LINE@lines@52 @@@",
+      "@@@STEP_LOG_LINE@lines@53 @@@",
+      "@@@STEP_LOG_LINE@lines@54 @@@",
+      "@@@STEP_LOG_LINE@lines@55 @@@",
+      "@@@STEP_LOG_LINE@lines@56 @@@",
+      "@@@STEP_LOG_LINE@lines@57 @@@",
+      "@@@STEP_LOG_LINE@lines@58 @@@",
+      "@@@STEP_LOG_LINE@lines@59 @@@",
+      "@@@STEP_LOG_LINE@lines@60 @@@",
+      "@@@STEP_LOG_LINE@lines@61 @@@",
+      "@@@STEP_LOG_LINE@lines@62 @@@",
+      "@@@STEP_LOG_LINE@lines@63 @@@",
+      "@@@STEP_LOG_LINE@lines@64 @@@",
+      "@@@STEP_LOG_LINE@lines@65 @@@",
+      "@@@STEP_LOG_LINE@lines@66 @@@",
+      "@@@STEP_LOG_LINE@lines@67 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -2250,45 +2270,65 @@
     "name": "bazel-cipd/${plat}.lines",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@0_center@37@@@",
+      "@@@STEP_LOG_LINE@0_center@47@@@",
       "@@@STEP_LOG_END@0_center@@@",
-      "@@@STEP_LOG_LINE@1_orig@27 @@@",
-      "@@@STEP_LOG_LINE@1_orig@28 git_repository(@@@",
-      "@@@STEP_LOG_LINE@1_orig@29     name = \"missing final quote/comma so will miss this line@@@",
-      "@@@STEP_LOG_LINE@1_orig@30     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@31     commit = \"2222222222222222222222222222222222222222\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@32 )@@@",
-      "@@@STEP_LOG_LINE@1_orig@33 @@@",
-      "@@@STEP_LOG_LINE@1_orig@34 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@1_orig@35     name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@36     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@37     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@38     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@39 )@@@",
-      "@@@STEP_LOG_LINE@1_orig@40 @@@",
-      "@@@STEP_LOG_LINE@1_orig@41 @@@",
-      "@@@STEP_LOG_LINE@1_orig@42 @@@",
+      "@@@STEP_LOG_LINE@1_orig@27     module_name = \"pigweed\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@28     # ROLL: Multiple@@@",
+      "@@@STEP_LOG_LINE@1_orig@29     # ROLL: roll@@@",
+      "@@@STEP_LOG_LINE@1_orig@30     # ROLL: comment@@@",
+      "@@@STEP_LOG_LINE@1_orig@31     # ROLL: lines!@@@",
+      "@@@STEP_LOG_LINE@1_orig@32     commit = \"1111111111111111111111111111111111111111\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@33     remote = \"https://pigweed.googlesource.com/pigweed/pigweed.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@34     git_repository_attribute_test = \"ignored\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@35     strip_prefix = \"pw_toolchain_bazel\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@36 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@37 @@@",
+      "@@@STEP_LOG_LINE@1_orig@38 git_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@39     name = \"missing final quote/comma so will miss this line@@@",
+      "@@@STEP_LOG_LINE@1_orig@40     remote = \"https://pigweed.googlesource.com/third/repo.git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@41     commit = \"2222222222222222222222222222222222222222\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@42 )@@@",
       "@@@STEP_LOG_LINE@1_orig@43 @@@",
-      "@@@STEP_LOG_LINE@1_orig@44 @@@",
-      "@@@STEP_LOG_LINE@1_orig@45 @@@",
-      "@@@STEP_LOG_LINE@1_orig@46 @@@",
-      "@@@STEP_LOG_LINE@1_orig@47 @@@",
+      "@@@STEP_LOG_LINE@1_orig@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@49 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@50 @@@",
+      "@@@STEP_LOG_LINE@1_orig@51 @@@",
+      "@@@STEP_LOG_LINE@1_orig@52 @@@",
+      "@@@STEP_LOG_LINE@1_orig@53 @@@",
+      "@@@STEP_LOG_LINE@1_orig@54 @@@",
+      "@@@STEP_LOG_LINE@1_orig@55 @@@",
+      "@@@STEP_LOG_LINE@1_orig@56 @@@",
+      "@@@STEP_LOG_LINE@1_orig@57 @@@",
+      "@@@STEP_LOG_LINE@1_orig@58 @@@",
+      "@@@STEP_LOG_LINE@1_orig@59 @@@",
+      "@@@STEP_LOG_LINE@1_orig@60 @@@",
+      "@@@STEP_LOG_LINE@1_orig@61 @@@",
+      "@@@STEP_LOG_LINE@1_orig@62 @@@",
+      "@@@STEP_LOG_LINE@1_orig@63 @@@",
+      "@@@STEP_LOG_LINE@1_orig@64 @@@",
+      "@@@STEP_LOG_LINE@1_orig@65 @@@",
+      "@@@STEP_LOG_LINE@1_orig@66 @@@",
+      "@@@STEP_LOG_LINE@1_orig@67 @@@",
       "@@@STEP_LOG_END@1_orig@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@33 @@@",
-      "@@@STEP_LOG_LINE@2_trimmed@34 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@35     name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@36     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@37     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@38     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@39 )@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@43 @@@",
+      "@@@STEP_LOG_LINE@2_trimmed@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@49 )@@@",
       "@@@STEP_LOG_END@2_trimmed@@@",
-      "@@@STEP_LOG_LINE@3_sorted@37     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@36     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@38     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@35     name = \"llvm_toolchain\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@39 )@@@",
-      "@@@STEP_LOG_LINE@3_sorted@34 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@3_sorted@33 @@@",
+      "@@@STEP_LOG_LINE@3_sorted@47     path = \"fuchsia/third_party/clang/${os}-${arch}\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@46     build_file = \"//pw_toolchain/build_external:llvm_clang.BUILD\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@48     tag = \"git_revision:8280651ad57cb9fb24a404cec2401040c28dec98\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@45     name = \"llvm_toolchain\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@49 )@@@",
+      "@@@STEP_LOG_LINE@3_sorted@44 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@3_sorted@43 @@@",
       "@@@STEP_LOG_END@3_sorted@@@"
     ]
   },
diff --git a/recipes/roller.expected/noop.json b/recipes/roller.expected/noop.json
index 4221ec7..6fa106c 100644
--- a/recipes/roller.expected/noop.json
+++ b/recipes/roller.expected/noop.json
@@ -1373,19 +1373,39 @@
       "@@@STEP_LOG_LINE@lines@7 @@@",
       "@@@STEP_LOG_LINE@lines@8 @@@",
       "@@@STEP_LOG_LINE@lines@9 @@@",
-      "@@@STEP_LOG_LINE@lines@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@lines@11   name = \"bazel-cipd\",@@@",
-      "@@@STEP_LOG_LINE@lines@12   path = \"bazel-cipd/${platform}\",@@@",
-      "@@@STEP_LOG_LINE@lines@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@lines@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@lines@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@lines@16   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
-      "@@@STEP_LOG_LINE@lines@17 )@@@",
+      "@@@STEP_LOG_LINE@lines@10 @@@",
+      "@@@STEP_LOG_LINE@lines@11 @@@",
+      "@@@STEP_LOG_LINE@lines@12 @@@",
+      "@@@STEP_LOG_LINE@lines@13 @@@",
+      "@@@STEP_LOG_LINE@lines@14 @@@",
+      "@@@STEP_LOG_LINE@lines@15 @@@",
+      "@@@STEP_LOG_LINE@lines@16 @@@",
+      "@@@STEP_LOG_LINE@lines@17 @@@",
       "@@@STEP_LOG_LINE@lines@18 @@@",
-      "@@@STEP_LOG_LINE@lines@19 git_override(@@@",
-      "@@@STEP_LOG_LINE@lines@20   name = \"bazel-git\",@@@",
-      "@@@STEP_LOG_LINE@lines@21   remote = \"https://pigweed.googlesource.com/bazel-git\",@@@",
-      "@@@STEP_LOG_LINE@lines@22   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@19 @@@",
+      "@@@STEP_LOG_LINE@lines@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@lines@21   name = \"bazel-cipd\",@@@",
+      "@@@STEP_LOG_LINE@lines@22   path = \"bazel-cipd/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@lines@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@lines@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@lines@26   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
+      "@@@STEP_LOG_LINE@lines@27 )@@@",
+      "@@@STEP_LOG_LINE@lines@28 @@@",
+      "@@@STEP_LOG_LINE@lines@29 git_override(@@@",
+      "@@@STEP_LOG_LINE@lines@30   name = \"bazel-git\",@@@",
+      "@@@STEP_LOG_LINE@lines@31   remote = \"https://pigweed.googlesource.com/bazel-git\",@@@",
+      "@@@STEP_LOG_LINE@lines@32   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@lines@33   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@lines@34   commit = \"3333333333333333333333333333333333333333\",@@@",
+      "@@@STEP_LOG_LINE@lines@35 )@@@",
+      "@@@STEP_LOG_LINE@lines@36 @@@",
+      "@@@STEP_LOG_LINE@lines@37 @@@",
+      "@@@STEP_LOG_LINE@lines@38 @@@",
+      "@@@STEP_LOG_LINE@lines@39 @@@",
+      "@@@STEP_LOG_LINE@lines@40 @@@",
+      "@@@STEP_LOG_LINE@lines@41 @@@",
+      "@@@STEP_LOG_LINE@lines@42 @@@",
       "@@@STEP_LOG_END@lines@@@"
     ]
   },
@@ -1394,7 +1414,7 @@
     "name": "bazel-cipd.lines",
     "~followup_annotations": [
       "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@0_center@12@@@",
+      "@@@STEP_LOG_LINE@0_center@22@@@",
       "@@@STEP_LOG_END@0_center@@@",
       "@@@STEP_LOG_LINE@1_orig@2 @@@",
       "@@@STEP_LOG_LINE@1_orig@3 @@@",
@@ -1404,39 +1424,59 @@
       "@@@STEP_LOG_LINE@1_orig@7 @@@",
       "@@@STEP_LOG_LINE@1_orig@8 @@@",
       "@@@STEP_LOG_LINE@1_orig@9 @@@",
-      "@@@STEP_LOG_LINE@1_orig@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@1_orig@11   name = \"bazel-cipd\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@12   path = \"bazel-cipd/${platform}\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@1_orig@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@1_orig@16   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@17 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@10 @@@",
+      "@@@STEP_LOG_LINE@1_orig@11 @@@",
+      "@@@STEP_LOG_LINE@1_orig@12 @@@",
+      "@@@STEP_LOG_LINE@1_orig@13 @@@",
+      "@@@STEP_LOG_LINE@1_orig@14 @@@",
+      "@@@STEP_LOG_LINE@1_orig@15 @@@",
+      "@@@STEP_LOG_LINE@1_orig@16 @@@",
+      "@@@STEP_LOG_LINE@1_orig@17 @@@",
       "@@@STEP_LOG_LINE@1_orig@18 @@@",
-      "@@@STEP_LOG_LINE@1_orig@19 git_override(@@@",
-      "@@@STEP_LOG_LINE@1_orig@20   name = \"bazel-git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@21   remote = \"https://pigweed.googlesource.com/bazel-git\",@@@",
-      "@@@STEP_LOG_LINE@1_orig@22   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@1_orig@19 @@@",
+      "@@@STEP_LOG_LINE@1_orig@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@1_orig@21   name = \"bazel-cipd\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@22   path = \"bazel-cipd/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@1_orig@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@1_orig@26   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@27 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@28 @@@",
+      "@@@STEP_LOG_LINE@1_orig@29 git_override(@@@",
+      "@@@STEP_LOG_LINE@1_orig@30   name = \"bazel-git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@31   remote = \"https://pigweed.googlesource.com/bazel-git\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@32   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@1_orig@33   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@1_orig@34   commit = \"3333333333333333333333333333333333333333\",@@@",
+      "@@@STEP_LOG_LINE@1_orig@35 )@@@",
+      "@@@STEP_LOG_LINE@1_orig@36 @@@",
+      "@@@STEP_LOG_LINE@1_orig@37 @@@",
+      "@@@STEP_LOG_LINE@1_orig@38 @@@",
+      "@@@STEP_LOG_LINE@1_orig@39 @@@",
+      "@@@STEP_LOG_LINE@1_orig@40 @@@",
+      "@@@STEP_LOG_LINE@1_orig@41 @@@",
+      "@@@STEP_LOG_LINE@1_orig@42 @@@",
       "@@@STEP_LOG_END@1_orig@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@9 @@@",
-      "@@@STEP_LOG_LINE@2_trimmed@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@11   name = \"bazel-cipd\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@12   path = \"bazel-cipd/${platform}\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@16   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
-      "@@@STEP_LOG_LINE@2_trimmed@17 )@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@19 @@@",
+      "@@@STEP_LOG_LINE@2_trimmed@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@21   name = \"bazel-cipd\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@22   path = \"bazel-cipd/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@26   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
+      "@@@STEP_LOG_LINE@2_trimmed@27 )@@@",
       "@@@STEP_LOG_END@2_trimmed@@@",
-      "@@@STEP_LOG_LINE@3_sorted@12   path = \"bazel-cipd/${platform}\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@11   name = \"bazel-cipd\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@13   ref = \"latest\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@10 cipd_repository(@@@",
-      "@@@STEP_LOG_LINE@3_sorted@14   # ROLL: Comment line 0.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@9 @@@",
-      "@@@STEP_LOG_LINE@3_sorted@15   # ROLL: Comment line 1.@@@",
-      "@@@STEP_LOG_LINE@3_sorted@16   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
-      "@@@STEP_LOG_LINE@3_sorted@17 )@@@",
+      "@@@STEP_LOG_LINE@3_sorted@22   path = \"bazel-cipd/${platform}\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@21   name = \"bazel-cipd\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@23   ref = \"latest\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@20 cipd_repository(@@@",
+      "@@@STEP_LOG_LINE@3_sorted@24   # ROLL: Comment line 0.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@19 @@@",
+      "@@@STEP_LOG_LINE@3_sorted@25   # ROLL: Comment line 1.@@@",
+      "@@@STEP_LOG_LINE@3_sorted@26   tag = \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\",@@@",
+      "@@@STEP_LOG_LINE@3_sorted@27 )@@@",
       "@@@STEP_LOG_END@3_sorted@@@"
     ]
   },