)]}'
{
  "commit": "ae3a7d32826101f6586ac93dbd9f9106cbd57528",
  "tree": "9300620061cb83d76f27d246d6deb62f336a8573",
  "parents": [
    "7498ca2e5e24b509ce679604ff46768f12098d48"
  ],
  "author": {
    "name": "Neri Marschik",
    "email": "nerima@google.com",
    "time": "Wed Feb 04 12:30:42 2026 +0900"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Feb 05 00:22:01 2026 -0800"
  },
  "message": "Fix target being written twice under certain circumstances\n\nThe Fuchsia build triggered a situation where a target was written twice\nwhen it changed from ShouldGenerate false to true.\n\nA target can start out with `ShouldGenerate \u003d false` if it is not using\nthe default toolchain or there are root patterns that don\u0027t match.\n`RecursiveSetShouldGenerate` triggers writes for this target if another\ntarget is discovered that has `ShouldGenerate \u003d true` and depends on it.\n\nThe logic in `RecursiveShouldGenerateWithValidations` did not include\nthe new `CanWrite` check introduced with validations.\n\nThis CL colocates the logic into CheckAndTriggerWrite so the logic lives\nin one place.\n\nBug: 478798763\nChange-Id: I82413b8292f05fe38a7454446f01a42e7165f7ed\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/20980\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: Neri Marschik \u003cnerima@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "51f9a024872edb9856a3af08dac971dc02c7e577",
      "old_mode": 33188,
      "old_path": "src/gn/builder.cc",
      "new_id": "90e3f5be90a54f11d59376d37d927a53c07cf8cf",
      "new_mode": 33188,
      "new_path": "src/gn/builder.cc"
    },
    {
      "type": "modify",
      "old_id": "d6c42eb102a244f11e60013627fbae3347c51001",
      "old_mode": 33188,
      "old_path": "src/gn/builder.h",
      "new_id": "927de0a56cc8a4a53892dd81fb094767fbb8fe42",
      "new_mode": 33188,
      "new_path": "src/gn/builder.h"
    },
    {
      "type": "modify",
      "old_id": "e53bf292942e3d09bbab2a7633ace8fcf6fa53a5",
      "old_mode": 33188,
      "old_path": "src/gn/builder_unittest.cc",
      "new_id": "8279061945a17179e75f9b71f067c8cf05800d9a",
      "new_mode": 33188,
      "new_path": "src/gn/builder_unittest.cc"
    }
  ]
}
