)]}'
{
  "commit": "ab638bd7cbb9ac8468bf2fbe60c74ed4706a14a7",
  "tree": "286821de395ff8a9e2a520c887be2909ea38fb8a",
  "parents": [
    "2dd9331a704147be787823a169de51df8d3526bb"
  ],
  "author": {
    "name": "Dirk Pranke",
    "email": "dpranke@google.com",
    "time": "Mon Jan 27 13:50:54 2025 -0800"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jan 27 15:10:00 2025 -0800"
  },
  "message": "Revert \"Speed-up GN with custom OutputStream interface.\"\n\nThis reverts commit 2dd9331a704147be787823a169de51df8d3526bb.\n\nReason for revert: Breaks chromium build.\n\nOriginal change\u0027s description:\n\u003e Speed-up GN with custom OutputStream interface.\n\u003e\n\u003e For legacy reasons, std::ostream is a very inefficient\n\u003e interface for appending text to an output stream, something\n\u003e that GN does a lot.\n\u003e\n\u003e This CL speeds GN by:\n\u003e\n\u003e - Introducing a new OutputStream abstract class to replace\n\u003e   std::ostream entirely. It provides the same API subset needed\n\u003e   by the rest of the code to minimize changes.\n\u003e   See gn/output_stream.h.\n\u003e\n\u003e - Adding StringOutputStream, a concrete OutputStream to store\n\u003e   the result into an std::stream. This replaces\n\u003e   std::ostringstream. See gn/output_stream.h.\n\u003e\n\u003e - Adding FileOutputStream, a concrete OutputStream to store\n\u003e   the result into a file. This replaces std::ofstream.\n\u003e   See gn/output_stream.h.\n\u003e\n\u003e - Making StringOutputBuffer an OutputStream derived class\n\u003e   as well, simplify its use as an output destination\n\u003e   for many calls.\n\u003e\n\u003e - Adjusting all call sites appropriately.\n\u003e\n\u003e - Replace `out \u003c\u003c std::endl` statements with\n\u003e   `out \u003c\u003c \"\\n\"` as the type of `std::endl` is unspecified\n\u003e   by the standard and hard to guess at compile time for\n\u003e   implementing an OutputStream::operator\u003c\u003c overload.\n\u003e\n\u003e - Remove obsolete `#include \u003csstream\u003e` statements\n\u003e   from the sources. Same for `\u003cfstream\u003e`.\n\u003e\n\u003e Benchmarking shows that on Linux, this saves about 6% of\n\u003e `gn gen` time for a small Fuchsia build graph\n\u003e (6.27s -\u003e 5.90s), and that the stripped LTO-optimized\n\u003e executable, is reduced by about 50 kiB.\n\u003e\n\u003e Change-Id: I00c7e1db67c59ab57c64756382683159df0662a6\n\u003e Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18140\n\u003e Reviewed-by: Dirk Pranke \u003cdpranke@google.com\u003e\n\u003e Commit-Queue: David Turner \u003cdigit@google.com\u003e\n\nTBR\u003ddpranke@google.com,tikuta@google.com,digit@google.com,gn-scoped@luci-project-accounts.iam.gserviceaccount.com\n\nChange-Id: I8c451f9b698f0e0fbcea843a903c5e6148e8df18\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/18160\nCommit-Queue: Dirk Pranke \u003cdpranke@google.com\u003e\nReviewed-by: Dirk Pranke \u003cdpranke@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e13d19488ed11770f81016c0831bb2a24d5a49f2",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "d1c649cbb1067350f58f2385c7cacea1e2f9c3d9",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "13a82db34bc01b4b10904d80f7daa01fb712aecb",
      "old_mode": 33188,
      "old_path": "src/gn/command_desc.cc",
      "new_id": "b50d4e968a7ab452d2d69623587300ed7589f72d",
      "new_mode": 33188,
      "new_path": "src/gn/command_desc.cc"
    },
    {
      "type": "modify",
      "old_id": "75c3741c973035af3f1cc18d8ba5502aa574f816",
      "old_mode": 33188,
      "old_path": "src/gn/command_format.cc",
      "new_id": "1a6f9ecea121eee73666afd06f7d1e7c2cf06573",
      "new_mode": 33188,
      "new_path": "src/gn/command_format.cc"
    },
    {
      "type": "modify",
      "old_id": "5dd827061c9a1e51acbfca96d4f03e61bb90aecc",
      "old_mode": 33188,
      "old_path": "src/gn/compile_commands_writer.cc",
      "new_id": "23d6029da3fa9c5c3bbbe5f34de554de1e59bcd2",
      "new_mode": 33188,
      "new_path": "src/gn/compile_commands_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "7e2ca28bcdd482f6a442c60bcb50a408059d2779",
      "old_mode": 33188,
      "old_path": "src/gn/compile_commands_writer_unittest.cc",
      "new_id": "2f0294c0530ef38cfffeefcb406d4219150a5279",
      "new_mode": 33188,
      "new_path": "src/gn/compile_commands_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "58458ad7b08d5e0effed72c9c2da1287269bd61e",
      "old_mode": 33188,
      "old_path": "src/gn/config_values_extractors.cc",
      "new_id": "a369008f218d58802dcd397c5e441640f715ae71",
      "new_mode": 33188,
      "new_path": "src/gn/config_values_extractors.cc"
    },
    {
      "type": "modify",
      "old_id": "ae4c862a9c28262c80cbdc7af40bb20d3885a560",
      "old_mode": 33188,
      "old_path": "src/gn/config_values_extractors.h",
      "new_id": "45b1f2577f9f28be06a3a717ab95fb4df5930694",
      "new_mode": 33188,
      "new_path": "src/gn/config_values_extractors.h"
    },
    {
      "type": "modify",
      "old_id": "c27107d263585e84f996fdc6f853cd06d92fd416",
      "old_mode": 33188,
      "old_path": "src/gn/config_values_extractors_unittest.cc",
      "new_id": "3db4bff900d181d87fcdbf04e928bc72bd331910",
      "new_mode": 33188,
      "new_path": "src/gn/config_values_extractors_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "5da2b12fc3fc2fc4b43ffc9400312e4e17aeeb5a",
      "old_mode": 33188,
      "old_path": "src/gn/eclipse_writer.cc",
      "new_id": "0067f6d41234042841c98e30a908e1845aeedae6",
      "new_mode": 33188,
      "new_path": "src/gn/eclipse_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "17b515f276e83f6cf9dcbe7b3d3536e939408bd1",
      "old_mode": 33188,
      "old_path": "src/gn/eclipse_writer.h",
      "new_id": "6b71a51f2ccb07e69969a5ee11e89594d7a8a598",
      "new_mode": 33188,
      "new_path": "src/gn/eclipse_writer.h"
    },
    {
      "type": "modify",
      "old_id": "56ae6de7bcaec9d555ef466035096a619a652113",
      "old_mode": 33188,
      "old_path": "src/gn/escape.cc",
      "new_id": "687c92ac0652a0a34d09ce920f12b7d4ae72a67e",
      "new_mode": 33188,
      "new_path": "src/gn/escape.cc"
    },
    {
      "type": "modify",
      "old_id": "1fc87a55ccb5032faea86f20a3f10f77606a6726",
      "old_mode": 33188,
      "old_path": "src/gn/escape.h",
      "new_id": "c46d42d5d10b18e17ce1455e751b27193a7fbafd",
      "new_mode": 33188,
      "new_path": "src/gn/escape.h"
    },
    {
      "type": "modify",
      "old_id": "0f32075b5e40ab2aacb6866a14fa63cd2b1f2e95",
      "old_mode": 33188,
      "old_path": "src/gn/escape_unittest.cc",
      "new_id": "004498e631e4680247af92151cd6824ba498f705",
      "new_mode": 33188,
      "new_path": "src/gn/escape_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "d79f4df0ce9fe95ee809806442b131bdbdd25710",
      "old_mode": 33188,
      "old_path": "src/gn/function_write_file.cc",
      "new_id": "709f5fb295d8055699c78d11717dd3546d16660c",
      "new_mode": 33188,
      "new_path": "src/gn/function_write_file.cc"
    },
    {
      "type": "modify",
      "old_id": "74d99cc29c9dba708d10c2234fec99bdbaba2fc3",
      "old_mode": 33188,
      "old_path": "src/gn/header_checker_unittest.cc",
      "new_id": "00a82d34ce659c2139907b71957dcd012900adbd",
      "new_mode": 33188,
      "new_path": "src/gn/header_checker_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "e479c90d0962cffa0dc3fd28bcc439ad60d74eae",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_action_target_writer.cc",
      "new_id": "0fe0c1befa2a6c4358e0f5d7718806793b13215a",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_action_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "fe18f5b57555201665f24fedbc42858181b7e31f",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_action_target_writer.h",
      "new_id": "eff087b126d4b830d0b66de11d8c6cfd1a88fda4",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_action_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "69035fb2fe369d4c4d73fee2921ffcfbd709a4e1",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_action_target_writer_unittest.cc",
      "new_id": "9b7c76f2794d1624dbcf290de38925232e380336",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_action_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "21b10fc27895ac1f90f87a8bf2cd0304af8d6b3e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer.cc",
      "new_id": "c244c7ceb78d00044871d1cf75445ffcefaa70c8",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "56a777a6cd6e61f03f96155c0dd3695248914e8e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer.h",
      "new_id": "29105b47118df7994fc266754b832c62375a7105",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "7ef54c6a1523952de336be6f0374a3f973c71249",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer_unittest.cc",
      "new_id": "29dfd33aa9ade625feef6320305cc2b3b93cbe9b",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "de91eaf46ea6274c56ec356a719c0c11e9a75c64",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_build_writer.cc",
      "new_id": "5349948401ad253b7fed0c0ef59235beb98253ce",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_build_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "77d891c78bf6abeed4cea7cab2c04d694c77ddcc",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_build_writer.h",
      "new_id": "c21769a572ce833f7113096b1e003a2c1cc81376",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_build_writer.h"
    },
    {
      "type": "modify",
      "old_id": "55111479a6919c2ab4f4849ea1e484109f9be3d9",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_build_writer_unittest.cc",
      "new_id": "493ba402bcd7279ac46863ed6a2d84ec7d3f17f8",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_build_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "362344db27cf21b3a5916a84884cd226dd2aaa13",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_bundle_data_target_writer.cc",
      "new_id": "4ba173360b5c3eadb8aa218db0c6f9886f6dafa7",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_bundle_data_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "de1e3fcaff4219a1687c9cfa121f597ce308a8a1",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_bundle_data_target_writer.h",
      "new_id": "720c59303443650d98e1be002221dba5e5ab1a94",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_bundle_data_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "4de32bf5294eaf3ae846c5a10e45a9e10ee75c9b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_bundle_data_target_writer_unittest.cc",
      "new_id": "9f90245c567295e5522461990a228dc68dd34989",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_bundle_data_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "207741a5f629e864e5b49a75500bb796dcfa3eb9",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.cc",
      "new_id": "96907f73a68c1c14c7fd1ec647c7369ffc014b46",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "6a553fcba1df6a0f136dd6775547d036149f46bc",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.h",
      "new_id": "f60790f4ee7706765bc86e6b4af258e2a8770d6a",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "f8d11300633dff3a3d0ce66e68160562a1e901c2",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer_unittest.cc",
      "new_id": "8d2a388dd2b1b16bc6ca2fdbfdaf48a213230ddb",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "5be189bbbdd6a7ac386248e3a6e96a836e2cec0e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_copy_target_writer.cc",
      "new_id": "47657c0d6936b0d4a150bf60762d4faa114e74a3",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_copy_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "0717fc8b7d8daa564c71865863f0596f14c92bec",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_copy_target_writer.h",
      "new_id": "95d50b43002a87db08b8c169851d5911632f4df0",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_copy_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "3870ac3f5a40ba3f563ef94f47f066dec117b642",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_copy_target_writer_unittest.cc",
      "new_id": "1b5077a7516edea5442f856fa099f0263d27b916",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_copy_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "13fb1d89cb842a1dcacff538bb47dba98719719e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.cc",
      "new_id": "09299c7e818a181b17f9dd490773d6467854afd0",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "ce68fa2236d068556663424e3066f5478d1c284e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.h",
      "new_id": "ee27557e82f0ccc4a63dfbfa36ea441268c763d8",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "917f047478f2376992123f4e45d279bf1706beef",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer_unittest.cc",
      "new_id": "d79b719bd36021a6608fa4f1d60a1c9f986025cd",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "81ac730de8c6970919c96c7d8af2d3335a517a3b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_generated_file_target_writer.cc",
      "new_id": "6de820746e99590855865765c305fc44a563f49f",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_generated_file_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "90e64d46a34363275964cf9136c073a33caacf6b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_generated_file_target_writer.h",
      "new_id": "3103388e9efc0e66a6ed4d783b19460a2b9e40e3",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_generated_file_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "119f4ea172b2e54ce9ea3a9b5aa4a03c9ee343c0",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_generated_file_target_writer_unittest.cc",
      "new_id": "481db807dcc672b33ac06025baff039f752e5a91",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_generated_file_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "3dde5534725777fbf62e217fae59a24a139826d9",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_group_target_writer.cc",
      "new_id": "7db1a3a5bcf836d20c27eac6bb20d75927362486",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_group_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "b286bce980097ceb61033425613fbee3d568d340",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_group_target_writer.h",
      "new_id": "7a3f211596516c9987d4fee61e75afed11794e94",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_group_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "e61b2f847d8c6166b16ac891ceb3d93c7a845627",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_group_target_writer_unittest.cc",
      "new_id": "ec9f72d44f02a80bff51adca27d9030a47787a3a",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_group_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "e4aafe8cb4907e18dd6041ad5199389e2def7b8a",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.cc",
      "new_id": "ba6b416975bb936d24099778ac319fff98e7a4ba",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "7966fc7c5bc44da777bca60efd3d602b5e0bcc70",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.h",
      "new_id": "83e1203401f444310ca28322e24402f72af1e4d1",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "2497ac647bf8b0b8a461423dad3687b01b625db9",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc",
      "new_id": "461cbd804f8eed913504a91822ba4b538fcd4108",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "4b78677d490791d4dd7817df89fee63739c3c4c1",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_command_util.cc",
      "new_id": "a691ae35614cadbd82c7515d81a9736e774845c8",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_command_util.cc"
    },
    {
      "type": "modify",
      "old_id": "e754ef76dcf1d79b0e32fbd4574ec525fa2ab695",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_command_util.h",
      "new_id": "93666fbaa3cdc6171da6d7ee988ef56f6cff3e3d",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_command_util.h"
    },
    {
      "type": "modify",
      "old_id": "6b2a9f21072a81410904de10cd79d06f61b5ed99",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_command_util_unittest.cc",
      "new_id": "8da62d322fbb50c54d9e826cd147a1603d320ffe",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_command_util_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "163840f8fe628aedd25c5337b3d97eae87272d70",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer.cc",
      "new_id": "01a140719ba2f6eb2741d96cbd4cceb2b954b8ea",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "4ae251506a3bba4f6b22fd073f869ef56292f61d",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer.h",
      "new_id": "68bc0a37b6d5e6ed40c40e6ffb620fb3a33a1462",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "d2472a98ec2efc8a0a3df559281ef9009d953109",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer_unittest.cc",
      "new_id": "ae691d7f0ac3c01340977bf5960ac63405d55f0d",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "4d68eebe79b5e1687839c8f57568fcf17d8ddad6",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_toolchain_writer.cc",
      "new_id": "917d06810515f836053a43046061da8a75a55e1a",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_toolchain_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "b7fd2ee65d27feca3c7077744358095675deb961",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_toolchain_writer.h",
      "new_id": "cbc7c68833d697118515b2f555500106ed2db247",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_toolchain_writer.h"
    },
    {
      "type": "modify",
      "old_id": "56f22dbfd24a8997c14c052e2910936b27ebdb51",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_toolchain_writer_unittest.cc",
      "new_id": "863c1744b5e248ed8d622bec17505ef870c40116",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_toolchain_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "10b397c366f220b266d4d2d497e18550a02b3a17",
      "old_mode": 33188,
      "old_path": "src/gn/output_conversion.cc",
      "new_id": "971e74082a2890bce8dbfbaf8f2379658b8cca10",
      "new_mode": 33188,
      "new_path": "src/gn/output_conversion.cc"
    },
    {
      "type": "modify",
      "old_id": "3e72fe1a717c716dce0cf2537054d76bcfa9a8e9",
      "old_mode": 33188,
      "old_path": "src/gn/output_conversion.h",
      "new_id": "09ca2548b87be7d3680e4b736deb87b617ff061d",
      "new_mode": 33188,
      "new_path": "src/gn/output_conversion.h"
    },
    {
      "type": "modify",
      "old_id": "44fc1daef2a0990f631c691b976af27a10da6293",
      "old_mode": 33188,
      "old_path": "src/gn/output_conversion_unittest.cc",
      "new_id": "43fdad55a179d355a0d1d7f16a57de746b3c7f30",
      "new_mode": 33188,
      "new_path": "src/gn/output_conversion_unittest.cc"
    },
    {
      "type": "delete",
      "old_id": "119aaab9d9a3a048051d9fa515c13a2492b9a1ab",
      "old_mode": 33188,
      "old_path": "src/gn/output_stream.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "336c56dd06273ed124950c9f8daed64def84a625",
      "old_mode": 33188,
      "old_path": "src/gn/output_stream.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "115e9e9f49844dff7144d82b667b770fecc73b98",
      "old_mode": 33188,
      "old_path": "src/gn/output_stream_unittest.cc",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b05cebba86afebd777d0d249c83d90dc67daeee0",
      "old_mode": 33188,
      "old_path": "src/gn/parser.cc",
      "new_id": "96739a5a51a45f4095e94af6e21b83e03fbc564c",
      "new_mode": 33188,
      "new_path": "src/gn/parser.cc"
    },
    {
      "type": "modify",
      "old_id": "f92429cf394b9cb971fa46cbe249d89eb6f5dfa2",
      "old_mode": 33188,
      "old_path": "src/gn/parser.h",
      "new_id": "b323028846b80a679a1fbdf10cb43ec68803dd99",
      "new_mode": 33188,
      "new_path": "src/gn/parser.h"
    },
    {
      "type": "modify",
      "old_id": "d850551489741236d39b73d8f976f903d2f85b8a",
      "old_mode": 33188,
      "old_path": "src/gn/parser_unittest.cc",
      "new_id": "8cfdb8dea78d1f110b2efae45de15bf796db969d",
      "new_mode": 33188,
      "new_path": "src/gn/parser_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "74c336d277d1eb5cc566f6ab83790eeeb8a31819",
      "old_mode": 33188,
      "old_path": "src/gn/path_output.cc",
      "new_id": "86c92e67eb2583ab3e51b025bb9aec9b6ead368a",
      "new_mode": 33188,
      "new_path": "src/gn/path_output.cc"
    },
    {
      "type": "modify",
      "old_id": "3fced0a6da192803f0ff7e264dbe6bb3777e2b52",
      "old_mode": 33188,
      "old_path": "src/gn/path_output.h",
      "new_id": "3b973d6e57ab7eb78efa549f376cbd1125397be7",
      "new_mode": 33188,
      "new_path": "src/gn/path_output.h"
    },
    {
      "type": "modify",
      "old_id": "e1375222ff95e090c137bb87ccc49efad2c066c4",
      "old_mode": 33188,
      "old_path": "src/gn/path_output_unittest.cc",
      "new_id": "1debb64d3e01bbbd14287ae812918dd9378389bf",
      "new_mode": 33188,
      "new_path": "src/gn/path_output_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "740f1d2098d14c92b40ef0fb408b8a80c5a48871",
      "old_mode": 33188,
      "old_path": "src/gn/pool.cc",
      "new_id": "60049a1ee5393feb1797bedef7f9909baa69a8f3",
      "new_mode": 33188,
      "new_path": "src/gn/pool.cc"
    },
    {
      "type": "modify",
      "old_id": "2e9ee0b0109c5c33d7bc244aa1a8b5a67c81df46",
      "old_mode": 33188,
      "old_path": "src/gn/qt_creator_writer.cc",
      "new_id": "94fed8fb47c035967480f88d46eef54947b2fa20",
      "new_mode": 33188,
      "new_path": "src/gn/qt_creator_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "e12118305631faf48ff864dc1a8dedfd65775186",
      "old_mode": 33188,
      "old_path": "src/gn/runtime_deps.cc",
      "new_id": "546d63e368b42c2b37e2afbc542236525b1721b6",
      "new_mode": 33188,
      "new_path": "src/gn/runtime_deps.cc"
    },
    {
      "type": "modify",
      "old_id": "840c2114c945a80ed686011f8567150024932fa0",
      "old_mode": 33188,
      "old_path": "src/gn/rust_project_writer.cc",
      "new_id": "6c9aef8d9037adcd77a6e1e7999ce9f7ac4d69cf",
      "new_mode": 33188,
      "new_path": "src/gn/rust_project_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "8af7bf1cbdc9b74b61d9d87f0b4b0785f7f9d15b",
      "old_mode": 33188,
      "old_path": "src/gn/rust_project_writer.h",
      "new_id": "3fbdedb982964a3f2105aa07be62fa73249ad2dc",
      "new_mode": 33188,
      "new_path": "src/gn/rust_project_writer.h"
    },
    {
      "type": "modify",
      "old_id": "864b7d0c47d1b4ea4bbca1da11c043a157117c45",
      "old_mode": 33188,
      "old_path": "src/gn/rust_project_writer_helpers.h",
      "new_id": "3073fd53a22dfb0eb12bd9ce632a4bb792cc3e74",
      "new_mode": 33188,
      "new_path": "src/gn/rust_project_writer_helpers.h"
    },
    {
      "type": "modify",
      "old_id": "13d6b4784158b2455c91cacdb3640469cda35c7e",
      "old_mode": 33188,
      "old_path": "src/gn/rust_project_writer_helpers_unittest.cc",
      "new_id": "87ccd83570136d86f1089fbb53dfb8094ce613b5",
      "new_mode": 33188,
      "new_path": "src/gn/rust_project_writer_helpers_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "66948e3a41a2d7f59ede22feebd8b4b7b9f0183e",
      "old_mode": 33188,
      "old_path": "src/gn/rust_project_writer_unittest.cc",
      "new_id": "f0b806bf9f5fd7cffc8775c06588231d172ef2c8",
      "new_mode": 33188,
      "new_path": "src/gn/rust_project_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "d907a6c791c891e5e831d6a93cc08e51c646ee54",
      "old_mode": 33188,
      "old_path": "src/gn/setup.cc",
      "new_id": "912f3780fa6e953e7dd6760ffe1800ba0ee03570",
      "new_mode": 33188,
      "new_path": "src/gn/setup.cc"
    },
    {
      "type": "modify",
      "old_id": "53af53e35c66088a9b2fe4a4be329903bc23e3e4",
      "old_mode": 33188,
      "old_path": "src/gn/string_output_buffer.cc",
      "new_id": "c5d91ff5ddaec0f38c9b92009366be2fe8592c24",
      "new_mode": 33188,
      "new_path": "src/gn/string_output_buffer.cc"
    },
    {
      "type": "modify",
      "old_id": "04e27dd3d44ec5fa9c46490a13fa6c42d74e0c45",
      "old_mode": 33188,
      "old_path": "src/gn/string_output_buffer.h",
      "new_id": "2338860ed5190f160d7ba1d1810ecad3e85fc5c4",
      "new_mode": 33188,
      "new_path": "src/gn/string_output_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "b80a3be7845d3ee044aca2ea63484d0f58d8af7a",
      "old_mode": 33188,
      "old_path": "src/gn/string_output_buffer_unittest.cc",
      "new_id": "6dcb741fa9b324b0b0bdb518b947a89ba3a8ef92",
      "new_mode": 33188,
      "new_path": "src/gn/string_output_buffer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "f49abc4badca159c9daf667f6fd6a4ca7dd5699e",
      "old_mode": 33188,
      "old_path": "src/gn/substitution_writer.cc",
      "new_id": "c9624d75624adac117ad63517f95363608a5e84f",
      "new_mode": 33188,
      "new_path": "src/gn/substitution_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "73f5cdafc2bec0481cfbb01776660765c2da6a4a",
      "old_mode": 33188,
      "old_path": "src/gn/substitution_writer.h",
      "new_id": "95e4b94a022ade08eb286db4b3779098c48375b2",
      "new_mode": 33188,
      "new_path": "src/gn/substitution_writer.h"
    },
    {
      "type": "modify",
      "old_id": "152adb5cba1149bba16750014ec1603f7ec1cf52",
      "old_mode": 33188,
      "old_path": "src/gn/substitution_writer_unittest.cc",
      "new_id": "eaa521ab9c335cfbf50d79a6c5e08415109803b5",
      "new_mode": 33188,
      "new_path": "src/gn/substitution_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "8a16f149210953999b84dd87f41be275121a69e0",
      "old_mode": 33188,
      "old_path": "src/gn/trace.cc",
      "new_id": "5f0735359b2ce051770bf6144bbaa272ae013b67",
      "new_mode": 33188,
      "new_path": "src/gn/trace.cc"
    },
    {
      "type": "modify",
      "old_id": "19e903dc8046ad771ac91a45519bea1599b2f472",
      "old_mode": 33188,
      "old_path": "src/gn/visual_studio_writer.cc",
      "new_id": "243fedd50ab5a8041e0380ade3f0cd197fefc95c",
      "new_mode": 33188,
      "new_path": "src/gn/visual_studio_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "e725744b2993f98773f9788496da92abd4f69187",
      "old_mode": 33188,
      "old_path": "src/gn/visual_studio_writer.h",
      "new_id": "7161481852821e9d1519d1e3819c81f300bfc057",
      "new_mode": 33188,
      "new_path": "src/gn/visual_studio_writer.h"
    },
    {
      "type": "modify",
      "old_id": "b4abaedaf917eeeb05bea101f92e34562b5e4043",
      "old_mode": 33188,
      "old_path": "src/gn/visual_studio_writer_unittest.cc",
      "new_id": "01271a32e70382d7162518ad63f6497f54e69b62",
      "new_mode": 33188,
      "new_path": "src/gn/visual_studio_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "58543eee6aaecb81c929cbe06c66dbb19caf3bc7",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_object.cc",
      "new_id": "4399c55af5c8b5943a1f1c4ff131f88f6f42526e",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_object.cc"
    },
    {
      "type": "modify",
      "old_id": "8bad659d39ab48a66dd984d4052321ca624d3c5c",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_object.h",
      "new_id": "076e9937d282e6530203b5690e94a77f34d4a4d5",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_object.h"
    },
    {
      "type": "modify",
      "old_id": "85b6c08edaf6fd5944a00052c7782fdc28f3dc5c",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_writer.cc",
      "new_id": "ea84a3df94995a375d767cd72e57450ae74505f2",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "4ee5820144992e877c95ee9e45d642dcc5b6e5a1",
      "old_mode": 33188,
      "old_path": "src/gn/xml_element_writer.cc",
      "new_id": "f88891579a7485ae08e7952492bf4da0fd3798a1",
      "new_mode": 33188,
      "new_path": "src/gn/xml_element_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "e23581f5399bd68879c9f1aef6ca650aa96ee65f",
      "old_mode": 33188,
      "old_path": "src/gn/xml_element_writer.h",
      "new_id": "1bf9b469b430056d5eb3993e93db0d4ce9ad6c13",
      "new_mode": 33188,
      "new_path": "src/gn/xml_element_writer.h"
    },
    {
      "type": "modify",
      "old_id": "9ad9ed32bad527ad277fda7d283c5f023bde5b39",
      "old_mode": 33188,
      "old_path": "src/gn/xml_element_writer_unittest.cc",
      "new_id": "6a4cfedc6bd1e32650bd1444dbe22bb185b73f69",
      "new_mode": 33188,
      "new_path": "src/gn/xml_element_writer_unittest.cc"
    }
  ]
}
