)]}'
{
  "commit": "b01fa1169aa607fc21a7cb0ff1fdacec19a573d8",
  "tree": "0cc1fe770a9f4826286f61264443d5b31e5174c9",
  "parents": [
    "ba1535533be12e3c0dbb4a581915baa81f27e602"
  ],
  "author": {
    "name": "ichern",
    "email": "ichern@google.com",
    "time": "Mon Feb 17 01:30:40 2020 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Feb 17 01:31:51 2020 -0800"
  },
  "message": "Execute only the subgraph of Ninja targets, needed to produce required outputs\n\nAdditionally, we have to modify how we work with phony targets transitive closure of artifacts: we can not compute artifacts for phony targets right away, because artifacts are registered by RuleContext and later appear to be obsolete if we do not create the actions for those artifacts (and since we now executing only a subgraph, we do not create actions for everything).\nSo we introduce a cache for reusing already computed transitive closures, and we keep information for phony targets which other phony targets they include.\nThe same cache can be reused for creating the output groups provider.\n\nCloses #10779.\n\nPiperOrigin-RevId: 295534915\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3eae54d631004381b6c2aaa095cd13453edde012",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaActionsHelper.java",
      "new_id": "e11511b4af9a3e49b951f49bad510145b5167d5f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaActionsHelper.java"
    },
    {
      "type": "modify",
      "old_id": "cecfe2f31bbf6607bf73e2774e695a7aa52e6dae",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaGraph.java",
      "new_id": "1555f9d71361b0945527f8b58d1363ee53776795",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaGraph.java"
    },
    {
      "type": "modify",
      "old_id": "7d2455c96516058918b6a8032f57f74b201d5f4a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaGraphArtifactsHelper.java",
      "new_id": "51a26740739cdd369b49c0c8198727c73fabf2ef",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaGraphArtifactsHelper.java"
    },
    {
      "type": "modify",
      "old_id": "d8c19338658d8317ca59852bfe7a8d5e9381b462",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaPhonyTargetsUtil.java",
      "new_id": "e6328364de762cc62c9235031286371e226d0f7e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/NinjaPhonyTargetsUtil.java"
    },
    {
      "type": "modify",
      "old_id": "462d9857d81f19bc288001d1abfcbe82a14aba61",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/PhonyTarget.java",
      "new_id": "1d7e969a871a78674fa9dde9aeeb368204fdb663",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/PhonyTarget.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef6d12c3c8b93643e3fd8e63d7811076093cd75b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/actions/PhonyTargetArtifacts.java"
    },
    {
      "type": "modify",
      "old_id": "b18192b54b85b6b9e4568830cf727163e1313344",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/parser/NinjaTarget.java",
      "new_id": "1bcd12ed3ece4e7464606cfd459e34705a54f5ce",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/ninja/parser/NinjaTarget.java"
    },
    {
      "type": "modify",
      "old_id": "6563072660b0c75e33c56fbc4530e2fee807bcea",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/bazel/rules/ninja/NinjaGraphTest.java",
      "new_id": "f4c805e20c5d974849a57e81f7f43d77bc0d3bc3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bazel/rules/ninja/NinjaGraphTest.java"
    },
    {
      "type": "modify",
      "old_id": "49e5f3104ffc775ba041afb821f0fa6a84470282",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/bazel/rules/ninja/NinjaPhonyTargetsUtilTest.java",
      "new_id": "059bfea03bfd77911d2c2b8315433236f64341b4",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bazel/rules/ninja/NinjaPhonyTargetsUtilTest.java"
    }
  ]
}
