)]}'
{
  "commit": "3b5721bccd1c0785acfca117a7daffdc8bac1f25",
  "tree": "5414c7350d2068b1198ae719c50e1edabec3016d",
  "parents": [
    "d653a80dba2a010022e5fc6b7d53d03caf02be59"
  ],
  "author": {
    "name": "Googler",
    "email": "chiwang@google.com",
    "time": "Fri Jul 21 05:41:05 2023 -0700"
  },
  "committer": {
    "name": "fweikert",
    "email": "fwe@google.com",
    "time": "Fri Jul 28 14:28:18 2023 +0200"
  },
  "message": "Correctly handle symlinks when prefetching.\n\nIn https://github.com/bazelbuild/bazel/commit/5c4cf47a131c84506aad9ce0e014c6643c31a4ac, we replaced `path \u003d path.getRelative(path.readSymbolicLink())` with `path \u003d path.resolveSymbolicLink`. While the former one is wrong for relative symlinks, it actually works for absolute symlinks. The latter one, however, doesn\u0027t work if the target doesn\u0027t exist on local file system -- and this is the case for most of builds using our internal version of BwoB.\n\nThis CL fixes that issue by correctly handle both absolute and relative symlinks. Additionally, it correctly handles the case where a symlink points to a tree output.\n\nMoved symlink integration tests to the base test class.\n\nPiperOrigin-RevId: 549921885\nChange-Id: If4009525499f4d0625e7725faf4bb0675984c299\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f1700d6bd9be878b195b9083576ad33c24f7bdf6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/AbstractActionInputPrefetcher.java",
      "new_id": "057ac044d4e4257e2a4e0f75cbe5792a39a09f9f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/AbstractActionInputPrefetcher.java"
    },
    {
      "type": "modify",
      "old_id": "4026e39441dbc0af2f219dd14aba727af509ccc6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/vfs/FileSymlinkLoopException.java",
      "new_id": "6fc2f21cad63401263c404738dde7552f483dbbe",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/vfs/FileSymlinkLoopException.java"
    },
    {
      "type": "modify",
      "old_id": "b568707e64f280129dd5de8626026d7d1dc20abf",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java",
      "new_id": "5eda1fb2c58f12e049393784219648e684f89ca0",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java"
    },
    {
      "type": "modify",
      "old_id": "8f6c0b3ad77610bf6781550c61ddd159d9764547",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTestBase.java",
      "new_id": "36ce7f410e1c1bf7f2906e81958e6876c98cf95e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTestBase.java"
    }
  ]
}
