)]}'
{
  "commit": "7d68029d3ec03d44572865ab76cdaf6ac0182bca",
  "tree": "1555e57b28809b854e735b997c34cd6bd09d3046",
  "parents": [
    "9a861479c53a1ce513d233b09e78095c51475cd0"
  ],
  "author": {
    "name": "Laszlo Csomor",
    "email": "laszlocsomor@google.com",
    "time": "Thu Dec 05 03:11:25 2019 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Dec 05 03:12:23 2019 -0800"
  },
  "message": "New SkyFunction: PathCasingLookupFunction\n\nThe new PathCasingLookupFunction is a SkyFunction\nthat can validate the casing of a path.\n\nOn case-insensitive filesystems if \"foo/BUILD\"\nexists then \"FOO/BUILD\" also exists (because they\nmean the same file), but this should not imply\nthat the \"//foo\" and \"//FOO\" packages both exist.\n\nThe new SkyFunction can validate whether\n\"FOO/BUILD\" is the correct casing. The casing is\ncorrect if the file\u0027s name in its parent\ndirectory\u0027s listing is exactly the same\n(case-sensitively) as the expected name.\n\nIn a later PR we can change the\nPackageLookupFunction to deny loading if the path\nis not correctly cased.\n\nMotivation: https://github.com/bazelbuild/bazel/issues/8799\n\nChange-Id: Ibb2a5f4f6c6041bdfc537b33d0c6fc55e568b998\n\nCloses #10362.\n\nChange-Id: Ie25b9b202a1aef3b2594064b4842fc0f2fb2776b\nPiperOrigin-RevId: 283939452\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "644fe24347bd793900bfe9efabcf043296eb6748",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PathCasingLookupFunction.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0248da76bac5130c1f2cc9bc5f5e2d7c69eb4848",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PathCasingLookupValue.java"
    },
    {
      "type": "modify",
      "old_id": "3c732ee60f67cfb58d394c211fba7eeb6191e6e1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java",
      "new_id": "d8f9a1ffe581ef13f13e292ee19540289b106c07",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java"
    },
    {
      "type": "modify",
      "old_id": "fdc155a6fc174ea250adcda26b90e20e2ed41c22",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/BUILD",
      "new_id": "03bd599475118c1b684e29c976c0c88362a73573",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "b380cacd500d78ff45ac49277d0021718fa0324f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/BUILD",
      "new_id": "61db0e46b883314252c089196fca346e67766976",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0058570eba0cb65a0f8af46ec0fdc48731c24270",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/PathCasingLookupFunctionTest.java"
    }
  ]
}
