)]}'
{
  "commit": "c1b663788ed1ecf2ffd53781c98ae2291ee002cf",
  "tree": "56165a0c14fe95a7bff5d12b19cb3b2d9bc13f75",
  "parents": [
    "664f3e6312ed9b832b3a9757a7e6b811383826de"
  ],
  "author": {
    "name": "David \u0027Digit\u0027 Turner",
    "email": "digit@google.com",
    "time": "Fri Jun 05 12:42:50 2026 +0200"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Aug 28 08:24:14 2026 -0700"
  },
  "message": "standard_out.h: Add ScopedBufferedOuptut class.\n\nThis allows buffering all OutputString() outputs to a buffer\ninstead of sending this to the real stdout. This is useful\nfor tests that need to call high-level functions that do not\nreturn an Err value but instead invoke OutputString() directly.\n\nUse it here in the Commands.ApplyTypeFilter which polluted the\ntest\u0027s stderr output with Err() dumps to stderr. This will\nalso be useful in future CLs.\n\nChange-Id: I0333fa15b72149fad7d3fb8349e6cf5231038e08\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/23080\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\nReviewed-by: Andrew Grieve \u003cagrieve@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8c7ce5f2b55ee9d09f29002146c2bb020530d2c7",
      "old_mode": 33188,
      "old_path": "src/gn/commands_unittest.cc",
      "new_id": "6fbe9ab6cda33be1379aff47f99ed2f794d410a9",
      "new_mode": 33188,
      "new_path": "src/gn/commands_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "ca61e7cab5678931e5d0c643f584db6de3c026cb",
      "old_mode": 33188,
      "old_path": "src/gn/err.cc",
      "new_id": "91a4ac62d0f8f77ed8811aa0f3567cca791bd034",
      "new_mode": 33188,
      "new_path": "src/gn/err.cc"
    },
    {
      "type": "modify",
      "old_id": "894f8e707784b26ce23571bdd52bc09b86bc03bb",
      "old_mode": 33188,
      "old_path": "src/gn/gn_main.cc",
      "new_id": "75441a6614ae9bfe0c94539ed884721282d25335",
      "new_mode": 33188,
      "new_path": "src/gn/gn_main.cc"
    },
    {
      "type": "modify",
      "old_id": "ecc5ab87a74990124216181c1afda4ee32298871",
      "old_mode": 33188,
      "old_path": "src/gn/standard_out.cc",
      "new_id": "abd21c9e6cf7f2d3c477117e2bb32c57c8f03522",
      "new_mode": 33188,
      "new_path": "src/gn/standard_out.cc"
    },
    {
      "type": "modify",
      "old_id": "4355c2346b20f5a0bcdd5c26a30fa34614899d00",
      "old_mode": 33188,
      "old_path": "src/gn/standard_out.h",
      "new_id": "9bf163769c430713fa829e851dad0d9210f62a9e",
      "new_mode": 33188,
      "new_path": "src/gn/standard_out.h"
    }
  ]
}
