)]}'
{
  "commit": "03a87f9801c5b58504db855a1558297faa4bfc61",
  "tree": "17e20104116d49516b01a68c388f34e55f3252ed",
  "parents": [
    "91232af7609c56180a299d4d90f3e3d8a4c2176d"
  ],
  "author": {
    "name": "Brett Wilson",
    "email": "brettw@openai.com",
    "time": "Mon May 04 16:43:59 2026 -0700"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon May 18 02:01:38 2026 -0700"
  },
  "message": "Enhance quiet mode.\n\nQuiet mode (-q) is documented as \"Don\u0027t print output on success.\" But\nthis doesn\u0027t apply to many categories of output. In particular, warning\noutput is still printed. If the build produces warnings, scripts that\nconsume the output of GN commands like \"desc\" can get corrupted output\nand these lines need to be manually filtered.\n\nThis patch extends quiet mode to buffer the output until an error is\nhit. If the run produces an error, this output is printed to standard\nout as normal. If the run succeeds, this output is discarded. This\nimplements the spirit of quite mode more completely and allows cleaner\nprogrammatic consumption of the output.\n\nAlso fixes an existing issue where Python error output would be\ndiscarded in quiet mode.\n\nIn this patch we lose a fflush() at the end of the implementation of the\nprint() function call. We could special-case this to flush in the\nnon-quiet case, but I don\u0027t think the flush is necessary any more for\nnormal usage (this was more relevant when doing initial development).\n\nChange-Id: Ibef6ed2c23e130e8336c16fbab9aad4dff63e131\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/22680\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\nReviewed-by: Tate Wyatt \u003cwyatttate545@gmail.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nReviewed-by: David Turner \u003cdigit@google.com\u003e\nReviewed-by: Matt Stark \u003cmsta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef1357f5ace9b3e400f7baac318e21128b4a477d",
      "old_mode": 33188,
      "old_path": "AUTHORS",
      "new_id": "0708c24740d7d585aa401dd7794535d25904785b",
      "new_mode": 33188,
      "new_path": "AUTHORS"
    },
    {
      "type": "modify",
      "old_id": "e05f0154e5ad05b9457ef3b6794a7d16d0b5ecf7",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "3012a11266746a82a8d6a8b2ad1fc4de8c2d5ee0",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "modify",
      "old_id": "95f06dc9df16e921145605124a5387d864a3cd9d",
      "old_mode": 33188,
      "old_path": "src/gn/err.cc",
      "new_id": "e72d86aaed121b8d90bb4bd5232259a481dac719",
      "new_mode": 33188,
      "new_path": "src/gn/err.cc"
    },
    {
      "type": "modify",
      "old_id": "d7099650eb2abb4420f3f799b00df0b51a1badc2",
      "old_mode": 33188,
      "old_path": "src/gn/functions.cc",
      "new_id": "46503626a36b28becfb0cde131e450525da94a4a",
      "new_mode": 33188,
      "new_path": "src/gn/functions.cc"
    },
    {
      "type": "modify",
      "old_id": "e1a05177beefd2eebb5d10a01d0e627e0e979194",
      "old_mode": 33188,
      "old_path": "src/gn/gn_main.cc",
      "new_id": "894f8e707784b26ce23571bdd52bc09b86bc03bb",
      "new_mode": 33188,
      "new_path": "src/gn/gn_main.cc"
    },
    {
      "type": "modify",
      "old_id": "3f5385f6b55eb3b6f7f3521ee32fdd86bd739195",
      "old_mode": 33188,
      "old_path": "src/gn/invoke_python.cc",
      "new_id": "52db7563034069e10cab87bf5c409af4978d356d",
      "new_mode": 33188,
      "new_path": "src/gn/invoke_python.cc"
    },
    {
      "type": "modify",
      "old_id": "655eb36803746f32bcee9d51dcb0f84364ba312d",
      "old_mode": 33188,
      "old_path": "src/gn/scheduler.cc",
      "new_id": "b40f29c92251c8c8a264bcbe952157240851d415",
      "new_mode": 33188,
      "new_path": "src/gn/scheduler.cc"
    },
    {
      "type": "modify",
      "old_id": "b90814f29170f9ed024f25be9cb79d63bfd9ac8d",
      "old_mode": 33188,
      "old_path": "src/gn/scheduler.h",
      "new_id": "08c4eb64e9194a93216211846c84bfa39cdb706c",
      "new_mode": 33188,
      "new_path": "src/gn/scheduler.h"
    },
    {
      "type": "modify",
      "old_id": "b83a2ea806acdcbf8c421a56093fae26db33bd7b",
      "old_mode": 33188,
      "old_path": "src/gn/setup.cc",
      "new_id": "555e34c79ac406369b68ff842ff4308efcb99728",
      "new_mode": 33188,
      "new_path": "src/gn/setup.cc"
    },
    {
      "type": "modify",
      "old_id": "22761ea757d3551a7992afb5950cdc76123fe877",
      "old_mode": 33188,
      "old_path": "src/gn/standard_out.cc",
      "new_id": "ecc5ab87a74990124216181c1afda4ee32298871",
      "new_mode": 33188,
      "new_path": "src/gn/standard_out.cc"
    },
    {
      "type": "modify",
      "old_id": "9f434512443d56f6aa95a8d37f77c37dea0ea089",
      "old_mode": 33188,
      "old_path": "src/gn/standard_out.h",
      "new_id": "4355c2346b20f5a0bcdd5c26a30fa34614899d00",
      "new_mode": 33188,
      "new_path": "src/gn/standard_out.h"
    }
  ]
}
