Thread the repository name all the way from TargetPatternResolver to RecursivePkgFunction.

This introduces some redundancy with RootedPath, but only in the case of remote repositories. There doesn't seem to be a good way of removing this redundancy.

--
MOS_MIGRATED_REVID=103621610
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java
index c769738..b116595 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternFunction.java
@@ -18,6 +18,7 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName;
 import com.google.devtools.build.lib.cmdline.ResolvedTargets;
 import com.google.devtools.build.lib.cmdline.TargetParsingException;
 import com.google.devtools.build.lib.cmdline.TargetPattern;
@@ -210,18 +211,21 @@
     }
 
     @Override
-    public ResolvedTargets<Void> findTargetsBeneathDirectory(String originalPattern,
-        String directory, boolean rulesOnly, ImmutableSet<String> excludedSubdirectories)
+    public ResolvedTargets<Void> findTargetsBeneathDirectory(RepositoryName repository,
+        String originalPattern, String directory, boolean rulesOnly,
+        ImmutableSet<String> excludedSubdirectories)
         throws TargetParsingException, InterruptedException {
       FilteringPolicy policy =
           rulesOnly ? FilteringPolicies.RULES_ONLY : FilteringPolicies.NO_FILTER;
       ImmutableSet<PathFragment> excludedPathFragments =
           TargetPatternResolverUtil.getPathFragments(excludedSubdirectories);
       PathFragment pathFragment = TargetPatternResolverUtil.getPathFragment(directory);
+      // TODO(bazel-team): This is where we need to depend on the RepositoryValue of a remote
+      // repository in order figure out its root and thus support recursive package search in them.
       for (Path root : pkgPath.getPathEntries()) {
         RootedPath rootedPath = RootedPath.toRootedPath(root, pathFragment);
-        SkyValue token = env.getValue(PrepareDepsOfTargetsUnderDirectoryValue.key(rootedPath,
-            excludedPathFragments, policy));
+        SkyValue token = env.getValue(PrepareDepsOfTargetsUnderDirectoryValue.key(
+            repository, rootedPath, excludedPathFragments, policy));
         if (token == null) {
           // A null token value means there is a missing dependency, because RecursivePkgFunction
           // never throws.