)]}'
{
  "commit": "e4bb9eb5af5b0899dc0921d5580220b20e15bd5a",
  "tree": "d522014811735f3bdba1f916d83dc699189a14b9",
  "parents": [
    "59e04c6f92da584b322c87072f18e6cab4de4c60"
  ],
  "author": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Fri Feb 12 22:18:51 2016 -0800"
  },
  "committer": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Fri Feb 12 22:21:48 2016 -0800"
  },
  "message": "AAPT2: Introduce notion of \u0027product\u0027 to ResourceTable\n\nThis allows us to preserve the various product definitions during the compile\nphase, and allows us to select the product in the link phase.\n\nThis allows compiled files to remain product-independent, so that they do not need\nto be recompiled when switching targets.\n\nBug:25958912\nChange-Id: Iaa7eed25c834b67a39cdc9be43613e8b5ab6cdd7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "88b6270fad6090ce48ffe0f70c73e43165b64087",
      "old_mode": 33188,
      "old_path": "tools/aapt2/Android.mk",
      "new_id": "cb82ac37a3b2ffb0eb02a74e8879bc251c78c346",
      "new_mode": 33188,
      "new_path": "tools/aapt2/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "b4e75f9be3a9b0a95b5485f6827cafc412fc8aca",
      "old_mode": 33188,
      "old_path": "tools/aapt2/Debug.cpp",
      "new_id": "4bea12973692226ccd5213a8ec23843627fa2070",
      "new_mode": 33188,
      "new_path": "tools/aapt2/Debug.cpp"
    },
    {
      "type": "modify",
      "old_id": "b37d366a788788a2db735d178db186f0afb8e426",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceParser.cpp",
      "new_id": "b100e84f8a46d993c90ca9968e261c431707dced",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceParser.cpp"
    },
    {
      "type": "modify",
      "old_id": "51cbbe19384e7671b76ec83ed1200af6d6ac6224",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceParser.h",
      "new_id": "ee5b33788312874961bb86aaee08b02e478c3065",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceParser.h"
    },
    {
      "type": "modify",
      "old_id": "cf0fcd11b9035df22387935110ea5cb1d7a58d51",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceParser_test.cpp",
      "new_id": "3450de9078bb105be877253fe039af646bed5df6",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceParser_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "8a3d047f6e8dcd3d1b3558c06e22395ad1d0f697",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceTable.cpp",
      "new_id": "3e73be4dbc546e170e474915088a357bb7780579",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceTable.cpp"
    },
    {
      "type": "modify",
      "old_id": "6b7b07ea3a93e8b3cf7415f0d3a927374191c947",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceTable.h",
      "new_id": "8ffff1f707107fdfe204e0babf474147d70fd679",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceTable.h"
    },
    {
      "type": "modify",
      "old_id": "42508fe154b8db6d27f8a991081bb46591071d02",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceTable_test.cpp",
      "new_id": "180bd11275df93c9125e1fcfd147a8370eb3c277",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceTable_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "549303939351c115d22447faeaea897d15ad06de",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ValueVisitor.h",
      "new_id": "ea2aa55764c1343917476a76b8a8060d486da73e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ValueVisitor.h"
    },
    {
      "type": "modify",
      "old_id": "1eefb821768e8eefcfc73c90b9e817b44faa7e83",
      "old_mode": 33188,
      "old_path": "tools/aapt2/compile/Compile.cpp",
      "new_id": "0dd8e185966101898604b30b9deb0d3bf4474555",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/Compile.cpp"
    },
    {
      "type": "modify",
      "old_id": "2963d135cbca5e3b698dd4b8c68167db92c91956",
      "old_mode": 33188,
      "old_path": "tools/aapt2/compile/PseudolocaleGenerator.cpp",
      "new_id": "be26b528b184015f43c9215a70d410c802a6fb36",
      "new_mode": 33188,
      "new_path": "tools/aapt2/compile/PseudolocaleGenerator.cpp"
    },
    {
      "type": "modify",
      "old_id": "71ab3dbf52ca5937b9f518c3d35ac51f15bb77ba",
      "old_mode": 33188,
      "old_path": "tools/aapt2/flatten/TableFlattener.cpp",
      "new_id": "da81046b2e4274791890262b9307a428c6561a90",
      "new_mode": 33188,
      "new_path": "tools/aapt2/flatten/TableFlattener.cpp"
    },
    {
      "type": "modify",
      "old_id": "7280f3a968a047dbcb1b66aa30e02d7b5dee3d1f",
      "old_mode": 33188,
      "old_path": "tools/aapt2/java/JavaClassGenerator.cpp",
      "new_id": "6e340a2a27427542422d197f69d0d61792f9576e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/java/JavaClassGenerator.cpp"
    },
    {
      "type": "modify",
      "old_id": "c7e603ea3774e746e3aebf363e2ed5f919b3a777",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/AutoVersioner.cpp",
      "new_id": "459c330cfbdcc629489fecf05eaf51f61d58d5c0",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/AutoVersioner.cpp"
    },
    {
      "type": "modify",
      "old_id": "29bcc93518cf3c353b3ad0f1ee8a02bfaf7a8931",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/AutoVersioner_test.cpp",
      "new_id": "9b3a87c4eed09d8c5a9262d8315030c96a0b03e9",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/AutoVersioner_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "8e321798787a3de35b00d095de4f0c87b8db2232",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/Link.cpp",
      "new_id": "3437ac0d9a7fc9759eb4350590a1a2267e69ecb3",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/Link.cpp"
    },
    {
      "type": "modify",
      "old_id": "4d3a483c6b82e031feb51a0312c9477a784b2ef9",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/Linkers.h",
      "new_id": "ec532aba465fdec97cc5803ef35446ef65fbd157",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/Linkers.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8784e891b29306d5e227e96937be4b4a49c67a86",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/ProductFilter.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d2edd38289dcc48b9bf27a1fd2a97e517267406f",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/ProductFilter.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f4f756ae4519ebaa9da8065a8c1bd63adbbc7381",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/ProductFilter_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "27435398c408ea72abdc831a68217cb1108a856a",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/ReferenceLinker.cpp",
      "new_id": "ef3fe4f58d413f11a60e0ddb4f268ec5a2eba98d",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/ReferenceLinker.cpp"
    },
    {
      "type": "modify",
      "old_id": "e01a00401133571f3b3fb82cfcdb6ef64470fd32",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/TableMerger.cpp",
      "new_id": "2ecd5b018691a1f51814dd0710bd5dc98a5c6581",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/TableMerger.cpp"
    },
    {
      "type": "modify",
      "old_id": "6ad2f9c10d229f394addb94cea86394824baa333",
      "old_mode": 33188,
      "old_path": "tools/aapt2/process/SymbolTable.cpp",
      "new_id": "b6030a2874a3834c3624460fd74268c30fbd9e9c",
      "new_mode": 33188,
      "new_path": "tools/aapt2/process/SymbolTable.cpp"
    },
    {
      "type": "modify",
      "old_id": "1310aa6774bb62f53f94bd0c84eaac28a7ab2582",
      "old_mode": 33188,
      "old_path": "tools/aapt2/proto/TableProtoDeserializer.cpp",
      "new_id": "9856a00d7f67dd996ad4ad5e7b98321ef091f9b2",
      "new_mode": 33188,
      "new_path": "tools/aapt2/proto/TableProtoDeserializer.cpp"
    },
    {
      "type": "modify",
      "old_id": "4a2176d20db9da7d1d8e84a5658d263d871a3c55",
      "old_mode": 33188,
      "old_path": "tools/aapt2/proto/TableProtoSerializer.cpp",
      "new_id": "bba2da42c6661d9afe33e6d07f12507c315a38ca",
      "new_mode": 33188,
      "new_path": "tools/aapt2/proto/TableProtoSerializer.cpp"
    },
    {
      "type": "modify",
      "old_id": "1061b8f76f57a525506917c293091b41e20d4f98",
      "old_mode": 33188,
      "old_path": "tools/aapt2/proto/TableProtoSerializer_test.cpp",
      "new_id": "70a33f795f8737b5ca1454642bf84d2ddcdf7f52",
      "new_mode": 33188,
      "new_path": "tools/aapt2/proto/TableProtoSerializer_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "579a46ec230fa8a57a562aa26798b2c089d8f95c",
      "old_mode": 33188,
      "old_path": "tools/aapt2/test/Builders.h",
      "new_id": "834caf8b9a496b0a778763445aa25f2cb56e756f",
      "new_mode": 33188,
      "new_path": "tools/aapt2/test/Builders.h"
    },
    {
      "type": "modify",
      "old_id": "51e2dd44e521507befbd82dee30dfc1dca30fd2e",
      "old_mode": 33188,
      "old_path": "tools/aapt2/test/Common.h",
      "new_id": "348c32a04e88d64df2070605981343be2bc41ed8",
      "new_mode": 33188,
      "new_path": "tools/aapt2/test/Common.h"
    },
    {
      "type": "modify",
      "old_id": "341770360068778856ec33c3823113514bc90f7f",
      "old_mode": 33188,
      "old_path": "tools/aapt2/unflatten/BinaryResourceParser.cpp",
      "new_id": "33b505ed2eb43f5e9b60fceeee8a3023c4f48637",
      "new_mode": 33188,
      "new_path": "tools/aapt2/unflatten/BinaryResourceParser.cpp"
    },
    {
      "type": "delete",
      "old_id": "0ee0bf35457dbac05faba3104ac8ddd880465296",
      "old_mode": 33188,
      "old_path": "tools/aapt2/util/Comparators.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
