Respect --noexperimental_check_output_files in FileSystemValueChecker. FileStateValues for output files can make their way into the Skyframe graph if a source file is symlink to an output file.
Also fix a bug where ExternalFilesHelper#isExternalFileSeen would always return true after returning true once in the past. This meant if an external file ever made its way into the Skyframe graph, we would always do a full graph scan at the beginning of each build (iow, we would always waste some CPU time doing nothing interesting).
--
MOS_MIGRATED_REVID=118190190
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
index ff4dff4..04039f1 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
@@ -157,6 +157,13 @@
help = "Allows the command to fetch external dependencies")
public boolean fetch;
+ @Option(name = "experimental_check_output_files",
+ defaultValue = "true",
+ category = "undocumented",
+ help = "Check for modifications made to the output files of a build. Consider setting "
+ + "this flag to false to see the effect on incremental build times.")
+ public boolean checkOutputFiles;
+
/**
* A converter from strings containing comma-separated names of packages to lists of strings.
*/