)]}'
{
  "commit": "a57c879dbca95316ecf50f5e96143eb9f7d1acb8",
  "tree": "a6c05d9694e21bf8299aefaec6f36c04604a423b",
  "parents": [
    "3b6e35ed0c387705bbe68d0d787a01f719c75302"
  ],
  "author": {
    "name": "djasper",
    "email": "djasper@google.com",
    "time": "Wed Feb 20 00:53:33 2019 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Feb 20 00:55:17 2019 -0800"
  },
  "message": "Implement asynchronous glob prefetching to specifically prefetch the globs() of\na file.\n\nThere is currently a mechanism in Bazel to asynchronously go off and prefetch\nfile system content, specifically by recursively reading subdirectories up to\nmaxDirectoriesToEagerlyVisitInGlobbing. This is started when the first glob in\na file is found. It is useful to warm up caches in networked filesystems, but\ndoesn\u0027t actually help evaluating the globs().  As it can create extra load on\nthe filesystem, it can actually make evaluation slower. Moreover, it implicitly\nrelies on the fact that in common packages, most files are actually read into\nglobs() in some way, which isn\u0027t always the case.\n\nInstead, we can visit a build file\u0027s AST and eagerly try to explicitly extract\nglobs that should be visited. This change is doing that if\nmaxDirectoriesToEagerlyVisitInGlobbing is set to a sentinal value of -2. The\nvisitor cannot understand all globs, e.g. when some of the pattern strings are\nconstructed from complex expression, but the majority of globs is explicitly\nspelled out.\n\nRELNOTES: None.\nPiperOrigin-RevId: 234751342\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "55e3c61b1e2584b2577a7dc44c2a36df147bb3ec",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java",
      "new_id": "0d11eac68614ebc8950e8472a3bad801d0a9b440",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java"
    },
    {
      "type": "modify",
      "old_id": "ea1163358eb4bbadf5057303601fe0a64cff20f1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java",
      "new_id": "94b47ca9493919dd5a5dd702f42386551ee3b196",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java"
    }
  ]
}
