)]}'
{
  "commit": "efd2de734d972764764be5ca950882b40eb182e4",
  "tree": "ad6f8364ce9baa1e68e691abf11fec5a68f69b8a",
  "parents": [
    "91a657e219aa226df400ac30c0982820912051fa"
  ],
  "author": {
    "name": "Dan Willemsen",
    "email": "dwillemsen@google.com",
    "time": "Wed Jul 22 17:06:06 2015 -0700"
  },
  "committer": {
    "name": "Dan Willemsen",
    "email": "dwillemsen@google.com",
    "time": "Wed Jul 29 17:14:00 2015 -0700"
  },
  "message": "Use three stage builds\n\nThis splits the current bootstrap stage into two stages:\n\nA bootstrap stage, which like today, a reference is checked into the\ntree. It just builds the \"core\" blueprint binaries -- minibp,\ngotestmain, and choosestage. Just enough to build the next stage\u0027s ninja\nfile.\n\nA primary builder stage. This builds the primary builder, the main ninja\nfile, and any other bootstrap binaries (bpfmt, etc).\n\nThe main advantage here is that the checked in file really only contains\nreferences to blueprint -- not the primary builder. This will allow us\nto make the primary builder more dynamic, by loading more module types\nthat may or may not exist in all trees.\n\nIt\u0027s even possible to reuse the build.ninja.in in the blueprint repo\ndirectly now. We don\u0027t currently do that, since we still want to turn on\ntests.\n\nChange-Id: I18683891ed7348b0d7af93084e3a68a04fbd5dbc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3845ad01c311b24db9c08d80e99c2dfe71ec3f14",
      "old_mode": 33188,
      "old_path": "Blueprints",
      "new_id": "173017aa5401a970fa85e8925e8b193260f7805c",
      "new_mode": 33188,
      "new_path": "Blueprints"
    },
    {
      "type": "modify",
      "old_id": "3023b08501a68d4645a1e6aa9f7c85ec726e4068",
      "old_mode": 33188,
      "old_path": "bootstrap/bootstrap.go",
      "new_id": "7ed2a44533fc15216c4514bc147dfe203d6b4e6e",
      "new_mode": 33188,
      "new_path": "bootstrap/bootstrap.go"
    },
    {
      "type": "modify",
      "old_id": "ba9fd4884949459f8fed1f70f4d4d064e79bac2f",
      "old_mode": 33188,
      "old_path": "bootstrap/cleanup.go",
      "new_id": "dd698f4c62f70f5af0a4c2bc7b47548b73b1ca94",
      "new_mode": 33188,
      "new_path": "bootstrap/cleanup.go"
    },
    {
      "type": "modify",
      "old_id": "4fb9c51bacfd9470257b12d4f697c72f85a77bda",
      "old_mode": 33188,
      "old_path": "bootstrap/command.go",
      "new_id": "33c422794ffdd4614fb3b44b7a1cdd94f15e546b",
      "new_mode": 33188,
      "new_path": "bootstrap/command.go"
    },
    {
      "type": "modify",
      "old_id": "ab3b160a51d122304da3cc92b9fb10d1f0074675",
      "old_mode": 33188,
      "old_path": "bootstrap/config.go",
      "new_id": "b236cc7353a1cdd172f9d4869d48a7676c8381f1",
      "new_mode": 33188,
      "new_path": "bootstrap/config.go"
    },
    {
      "type": "modify",
      "old_id": "ad36c29bae4855856292039aa5159a8b1d7d9f12",
      "old_mode": 33188,
      "old_path": "bootstrap/minibp/main.go",
      "new_id": "4e25bc83ef0ed4383cead9b91c77b074155c4a69",
      "new_mode": 33188,
      "new_path": "bootstrap/minibp/main.go"
    },
    {
      "type": "modify",
      "old_id": "183e9548a5ad9fa558a941f13815220e6a2b4849",
      "old_mode": 33188,
      "old_path": "build.ninja.in",
      "new_id": "a5a353a3da4024ca7edd7c7361f3f3cb87afa551",
      "new_mode": 33188,
      "new_path": "build.ninja.in"
    },
    {
      "type": "modify",
      "old_id": "a92f0b310a214bfb5373adae7be5af5231e301a7",
      "old_mode": 33188,
      "old_path": "tests/expected_all",
      "new_id": "b16fc78f03f3ba5b0ac5bcd7a3f59bad01e754b0",
      "new_mode": 33188,
      "new_path": "tests/expected_all"
    },
    {
      "type": "modify",
      "old_id": "ab67d4ba939a18a8652fc53f89084cc8b6a69e5b",
      "old_mode": 33188,
      "old_path": "tests/expected_manifest",
      "new_id": "3970edb2dd472ec792e9d8b5e03af963d4d37fc9",
      "new_mode": 33188,
      "new_path": "tests/expected_manifest"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43f2d354840182173e005f778b9e023e0ff6e364",
      "new_mode": 33188,
      "new_path": "tests/expected_primary"
    },
    {
      "type": "modify",
      "old_id": "a92f0b310a214bfb5373adae7be5af5231e301a7",
      "old_mode": 33188,
      "old_path": "tests/expected_rebuild_test",
      "new_id": "b16fc78f03f3ba5b0ac5bcd7a3f59bad01e754b0",
      "new_mode": 33188,
      "new_path": "tests/expected_rebuild_test"
    },
    {
      "type": "modify",
      "old_id": "4f7adaac500cb578b03e7ce0e987a4effd6939b7",
      "old_mode": 33188,
      "old_path": "tests/expected_regen",
      "new_id": "e2e10b8610eda25ab2ad733ab0eef219f67be292",
      "new_mode": 33188,
      "new_path": "tests/expected_regen"
    },
    {
      "type": "modify",
      "old_id": "dc55ac32ab028044993a14f36e71526ca4512ccc",
      "old_mode": 33188,
      "old_path": "tests/expected_start",
      "new_id": "43f2d354840182173e005f778b9e023e0ff6e364",
      "new_mode": 33188,
      "new_path": "tests/expected_start"
    },
    {
      "type": "modify",
      "old_id": "d0b390062f3b12b181ec1e9b6a5b07ad5098f46d",
      "old_mode": 33188,
      "old_path": "tests/expected_start2",
      "new_id": "4c339e2a5099e8a9e64e8ee6f58dff4d66c80618",
      "new_mode": 33188,
      "new_path": "tests/expected_start2"
    },
    {
      "type": "modify",
      "old_id": "d0b390062f3b12b181ec1e9b6a5b07ad5098f46d",
      "old_mode": 33188,
      "old_path": "tests/expected_start_add_tests",
      "new_id": "4c339e2a5099e8a9e64e8ee6f58dff4d66c80618",
      "new_mode": 33188,
      "new_path": "tests/expected_start_add_tests"
    },
    {
      "type": "modify",
      "old_id": "08caa64b87a59b060bf02aab9dd878eba2857552",
      "old_mode": 33261,
      "old_path": "tests/test.sh",
      "new_id": "e27ae970d7dfc15d1672c8f2abe3e184dd1ae138",
      "new_mode": 33261,
      "new_path": "tests/test.sh"
    }
  ]
}
