)]}'
{
  "commit": "5b0bb6a78bc75095977f6c16aca1d23c01a0384a",
  "tree": "78e6e8391476d8f155997123446ff7ead053dc11",
  "parents": [
    "2691ec86d4edf1b746f72ef159cda55df8d66446"
  ],
  "author": {
    "name": "Julie Hockett",
    "email": "juliehockett@google.com",
    "time": "Tue Apr 02 14:41:52 2019 -0700"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Mon Apr 22 19:04:25 2019 +0000"
  },
  "message": "Move Tool logic out of Toolchain\n\nThis sets up the ability for tools to self-manage and dispatch, and\nreplaces the ToolType enum with the more dynamic tool name constant.\n\nThis is part of the Tool refactoring to allow for additional sets of\ntools to be added, enabling support for new languages to be added. Same\nas in the previous patch, this unfortunately requires touching a bunch\nof files since the enum is prevalent.\n\nChange-Id: Ia9eebb2525749aa0c525f85a9d89ce9ca6ca0159\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/4462\nCommit-Queue: Julie Hockett \u003cjuliehockett@google.com\u003e\nReviewed-by: Brett Wilson \u003cbrettw@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d547a8ff83eef8668893e39081590659a775a664",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "75210d743a404e756e74ae65eaca40db38226860",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "a6d73a28d275941b148bb14720e2cd2b3a5c7265",
      "old_mode": 33188,
      "old_path": "tools/gn/analyzer_unittest.cc",
      "new_id": "d796300b00fc2d23f8e5e7bef7253eae791c3876",
      "new_mode": 33188,
      "new_path": "tools/gn/analyzer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "1d04db01331222502f3358f3ecb1c3591a58aecd",
      "old_mode": 33188,
      "old_path": "tools/gn/builder.cc",
      "new_id": "fc271c4a34c8b79b0d7f8c7b6e30a26f0d39e38a",
      "new_mode": 33188,
      "new_path": "tools/gn/builder.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61672860b7f8f706bcf05c1c72e2fef22354f76f",
      "new_mode": 33188,
      "new_path": "tools/gn/c_tool.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "045024ccc58a8b8a38d3d82c0cc47f0daa22f1b3",
      "new_mode": 33188,
      "new_path": "tools/gn/c_tool.h"
    },
    {
      "type": "modify",
      "old_id": "00eb00a3298d4c44ba2b527c0800d165eee52d43",
      "old_mode": 33188,
      "old_path": "tools/gn/compile_commands_writer.cc",
      "new_id": "e0af1216889824e8f6f83321a9aef9dfeff83889",
      "new_mode": 33188,
      "new_path": "tools/gn/compile_commands_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "90429a471554734c72b9b77c06831e06d9b403ad",
      "old_mode": 33188,
      "old_path": "tools/gn/compile_commands_writer_unittest.cc",
      "new_id": "a3e3fb5f53bdd15de7a377d4b12710b49c31611e",
      "new_mode": 33188,
      "new_path": "tools/gn/compile_commands_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "57f27fdbfa473a02dfe060705c27c97ddf88712b",
      "old_mode": 33188,
      "old_path": "tools/gn/desc_builder.cc",
      "new_id": "ab6c686dba97b1a22b9b1955bbd06d9e4cdf44fd",
      "new_mode": 33188,
      "new_path": "tools/gn/desc_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "cf45c677e249bc4eae5ad1f838b97651964487df",
      "old_mode": 33188,
      "old_path": "tools/gn/function_toolchain.cc",
      "new_id": "7fc57c75a0d7d52ad39da999fd2a1a71d1df36ca",
      "new_mode": 33188,
      "new_path": "tools/gn/function_toolchain.cc"
    },
    {
      "type": "modify",
      "old_id": "599d7a1b67dba6143599bd1dd03d4dc2a9add4b7",
      "old_mode": 33188,
      "old_path": "tools/gn/function_toolchain_unittest.cc",
      "new_id": "e3aa598491377e7a65dc9aa59b64a7fece6d2ec8",
      "new_mode": 33188,
      "new_path": "tools/gn/function_toolchain_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d89dd304603bd3b765b6058e7a5b4e85a0e04d24",
      "new_mode": 33188,
      "new_path": "tools/gn/general_tool.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "df9caf2b7cf5dee4c1ce1f5694df082b6665e52e",
      "new_mode": 33188,
      "new_path": "tools/gn/general_tool.h"
    },
    {
      "type": "modify",
      "old_id": "c2016dcf5e368ded4ae775925db5796ad2f87572",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_action_target_writer.cc",
      "new_id": "31f5261a35ede663ef0c31acd61005933054eb6c",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_action_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "9e5632e7b259c3c1374465f1e45e6aa6c266551f",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_binary_target_writer.cc",
      "new_id": "9f0e949c2ba218c7424cc7004cdba469ac52956e",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "5cb7ab5d889c7a31e121e48e86998681b917dc14",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_binary_target_writer.h",
      "new_id": "8a31219906dab8540493a9d6a4c010b52de8fd30",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_binary_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "a0a7ce8fdcad0749d0b93e00af29ca8415670cb7",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_binary_target_writer_unittest.cc",
      "new_id": "f06653627ae508368a2de039f0a2990935e57faa",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_binary_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "f13a8b98733e0b7aff1c6a8ce46314891e8e9bcf",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_build_writer.cc",
      "new_id": "c1df3bcf905a256fcac075bfab21328acd3336fc",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_build_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "50530b199d6cc43c3bc2aba47bfe3a8c28cf06d2",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_build_writer_unittest.cc",
      "new_id": "2c73cd801da384f714df97837cef33c26c76d94a",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_build_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "2a6f0018c66aee2e1649e6ae8305f940e78eb9e5",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_copy_target_writer.cc",
      "new_id": "ee5cf5273dcd47b71bc8bfec298b6f4ec5ebcab6",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_copy_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "cfc3d91dbdb0ac3297d7faaaf9fd8b52b2a51e7c",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_create_bundle_target_writer.cc",
      "new_id": "32ae58e06e9f637fefa65a7fd062fc5982a62483",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_create_bundle_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "29662cddb83a50feef25f853c727092aff90fbda",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_target_command_util.cc",
      "new_id": "2aa3e4bf0389694ca1a12664d9d9617a4491b613",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_target_command_util.cc"
    },
    {
      "type": "modify",
      "old_id": "619add3d20c31d482137624c1b176d2bb383bd1c",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_target_command_util.h",
      "new_id": "686fadac8533ab3fb0aa803a0856152f0e4dc7c3",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_target_command_util.h"
    },
    {
      "type": "modify",
      "old_id": "253436b4f68b5591708b314159f27e29044f28a9",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_target_writer.cc",
      "new_id": "8287ec0c4d2286bc1b6f55c8d0fbb996b1f0900b",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "ee7c5cdc021c4a0d845a60047681ae29642e27f5",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_toolchain_writer.cc",
      "new_id": "faf9d8a30e1c4caa4ecf856ffbdacd8897aef97c",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_toolchain_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "9c6ad24b96bc6866b2252bfbd79f5a91f648e3dd",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_toolchain_writer.h",
      "new_id": "6db8d3c45bce1e8372bf6167b1779248b0cfac1d",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_toolchain_writer.h"
    },
    {
      "type": "modify",
      "old_id": "a1963fd4b0b6569c00e06e7ea0d3afd14831e122",
      "old_mode": 33188,
      "old_path": "tools/gn/ninja_toolchain_writer_unittest.cc",
      "new_id": "2edc26a2f291d9cfe88aa5927627ac4b1485ef9e",
      "new_mode": 33188,
      "new_path": "tools/gn/ninja_toolchain_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "8093e4177e863a264f7b6df0f2fd595081358254",
      "old_mode": 33188,
      "old_path": "tools/gn/substitution_writer_unittest.cc",
      "new_id": "cc476e47d0e6f8f6b01e43e9888b44808ae32c6b",
      "new_mode": 33188,
      "new_path": "tools/gn/substitution_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "376e09f04177db7a677f52434ba18322b1f258f9",
      "old_mode": 33188,
      "old_path": "tools/gn/target.cc",
      "new_id": "6272b44a133af90687856d78f3be108bb7546b29",
      "new_mode": 33188,
      "new_path": "tools/gn/target.cc"
    },
    {
      "type": "modify",
      "old_id": "b73ae575d8e1defc3d8fdabde9665c1f5ac3fef0",
      "old_mode": 33188,
      "old_path": "tools/gn/target.h",
      "new_id": "e99d8131f368aafb6381ae8aea78a5dd906392b6",
      "new_mode": 33188,
      "new_path": "tools/gn/target.h"
    },
    {
      "type": "modify",
      "old_id": "b6ad0ff566b84991047bd69dc04c7009cc9b37b8",
      "old_mode": 33188,
      "old_path": "tools/gn/target_unittest.cc",
      "new_id": "f1178462fe17cb9448d60ec2bbe6222dc5d7464c",
      "new_mode": 33188,
      "new_path": "tools/gn/target_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "7063acdebb5829b9ba8beee8c326f45ec654fde4",
      "old_mode": 33188,
      "old_path": "tools/gn/test_with_scope.cc",
      "new_id": "9dfb6c4fa7c625d8f9068cfc4173385edd98899e",
      "new_mode": 33188,
      "new_path": "tools/gn/test_with_scope.cc"
    },
    {
      "type": "modify",
      "old_id": "88532438213999693d5f1875ed2f63b0a3c0b686",
      "old_mode": 33188,
      "old_path": "tools/gn/test_with_scope.h",
      "new_id": "79502595de88122b418f307e4c46a16139e257a4",
      "new_mode": 33188,
      "new_path": "tools/gn/test_with_scope.h"
    },
    {
      "type": "modify",
      "old_id": "b066fba400c5a7c6a67951c5a2b68d908624daa2",
      "old_mode": 33188,
      "old_path": "tools/gn/tool.cc",
      "new_id": "ef4c94b01bb6dded4dbf75064de6cc82d7002764",
      "new_mode": 33188,
      "new_path": "tools/gn/tool.cc"
    },
    {
      "type": "modify",
      "old_id": "d2d0b7ceacbdb1019afa050f3eefd1ecbc2d2382",
      "old_mode": 33188,
      "old_path": "tools/gn/tool.h",
      "new_id": "4060527d9e05e7e95fef923a9b1277e7e48d80c1",
      "new_mode": 33188,
      "new_path": "tools/gn/tool.h"
    },
    {
      "type": "modify",
      "old_id": "d9aff43e06044a6aa81069d7daa0ad65190863f6",
      "old_mode": 33188,
      "old_path": "tools/gn/toolchain.cc",
      "new_id": "b718052cc7f44d85deae305803f7bdf440cc23f1",
      "new_mode": 33188,
      "new_path": "tools/gn/toolchain.cc"
    },
    {
      "type": "modify",
      "old_id": "dd8637cf5ea6ad4c38a039312828244933177cfa",
      "old_mode": 33188,
      "old_path": "tools/gn/toolchain.h",
      "new_id": "e36475dd5cf3344d7ee7d5095204c3790537f4a2",
      "new_mode": 33188,
      "new_path": "tools/gn/toolchain.h"
    },
    {
      "type": "modify",
      "old_id": "9870fbcf4f762debdabfc7af76d9d9f506d64af1",
      "old_mode": 33188,
      "old_path": "tools/gn/visual_studio_writer.cc",
      "new_id": "f804b44472bd4d8ff97523656c1228fb62d3ec2b",
      "new_mode": 33188,
      "new_path": "tools/gn/visual_studio_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "165bbb47d54364a3bd6e5429aa18b6d464dba4d3",
      "old_mode": 33188,
      "old_path": "tools/gn/visual_studio_writer_unittest.cc",
      "new_id": "36b9bcce709a497c27a7b043c7c32d7157d7e918",
      "new_mode": 33188,
      "new_path": "tools/gn/visual_studio_writer_unittest.cc"
    }
  ]
}
