)]}'
{
  "commit": "73bff1e8519bb73f17a801f45977d41b69b5b0d0",
  "tree": "9ac5f4e491ed617b6cefe118b91edb637c6c35a4",
  "parents": [
    "14c2ae4a6e62b78f2c994112d08dbe3d4de64695"
  ],
  "author": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Fri Dec 08 16:06:10 2017 -0800"
  },
  "committer": {
    "name": "Adam Lesinski",
    "email": "adamlesinski@google.com",
    "time": "Thu Jan 11 13:54:11 2018 -0800"
  },
  "message": "AAPT2: Allow compatible duplicate Attributes\n\nIf a resource XML file defines two compatible Attributes, they should\nbe merged without throwing an error. Ex:\n\n\u003cdeclare-styleable\u003e\n  \u003cattr name\u003d\"conflict\" format\u003d\"string\" /\u003e\n\u003c/declare-styleable\u003e\n\n\u003cdeclare-styleable\u003e\n  \u003cattr name\u003d\"conflict\" format\u003d\"string|reference\" /\u003e\n\u003c/declare-styleable\u003e\n\nIn this case, string|reference and string are the same, so these should\nmerge correctly.\n\nBug: 65699599\nTest: make aapt2_tests\nTest: make AaptBasicTest\nChange-Id: I7b0f956d2332f7f0b458acd59ca0a606b2cfdf95\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24b28dd7d9702a7bbfe2938f82661b19d016306d",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceParser.cpp",
      "new_id": "7cffeea6fe2c5d27d6ea0a87df1f5c011d2b8610",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceParser.cpp"
    },
    {
      "type": "modify",
      "old_id": "3172892d7172dc48e9e106f25f83416cf25b390a",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceTable.cpp",
      "new_id": "9905f827d663b894d6bbd8547a1c19511d7dc81f",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceTable.cpp"
    },
    {
      "type": "modify",
      "old_id": "eaa2d0b8af7d9d8722c94e69ea796614bedd0b9e",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceTable.h",
      "new_id": "95e30c442042a58e40a45c7ceae50a657cf058b2",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceTable.h"
    },
    {
      "type": "modify",
      "old_id": "eb75f947e0bef6eb5deeb3fe93ed4273baffde9b",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceTable_test.cpp",
      "new_id": "7fa8ea2f7f9487569bd6e8b27e08c4d64b47996c",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceTable_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "e637c3ee2f3ccbeade63f972662eda8959807ced",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceUtils_test.cpp",
      "new_id": "cb786d3794c24e025a49cc0ec5451eaa4d7cb5a5",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceUtils_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "a782cd3672d1943555282e784fcc6d41abd6b96e",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceValues.cpp",
      "new_id": "77cee0683f3e84177f366864e0b66d620d526252",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceValues.cpp"
    },
    {
      "type": "modify",
      "old_id": "b2ec8bdd7c77ba1521d3a8b60bd8de4c93032f23",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceValues.h",
      "new_id": "6371c4cbb7b51e505128940a95e32bcccc21479a",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceValues.h"
    },
    {
      "type": "modify",
      "old_id": "a80a9dc177f1bb53ec84403bb50b282bba04d1d9",
      "old_mode": 33188,
      "old_path": "tools/aapt2/ResourceValues_test.cpp",
      "new_id": "c4a1108ac62ad684bc42fb0c1548ac739a438298",
      "new_mode": 33188,
      "new_path": "tools/aapt2/ResourceValues_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "72e07dc237252babcb5f2ee28fa538b1e699f217",
      "old_mode": 33188,
      "old_path": "tools/aapt2/cmd/Link.cpp",
      "new_id": "c9e272c32eaeebe57fead3ed8c75ad214709fa7e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/cmd/Link.cpp"
    },
    {
      "type": "modify",
      "old_id": "8d079ffecb6392bf3b2b36cf83944af421ecaa93",
      "old_mode": 33188,
      "old_path": "tools/aapt2/format/binary/BinaryResourceParser.cpp",
      "new_id": "8215ddf0461cd0ab974c8ccb25f9504962c69858",
      "new_mode": 33188,
      "new_path": "tools/aapt2/format/binary/BinaryResourceParser.cpp"
    },
    {
      "type": "modify",
      "old_id": "51ccdc7359b20d50cc27d1cbe1cc0b7b2808263d",
      "old_mode": 33188,
      "old_path": "tools/aapt2/format/binary/TableFlattener_test.cpp",
      "new_id": "bab70109fc65d3892cd0eceb6505ecd6d82636c0",
      "new_mode": 33188,
      "new_path": "tools/aapt2/format/binary/TableFlattener_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "3d6975d8d55919eb1020d898dd5cf5daa6c6938b",
      "old_mode": 33188,
      "old_path": "tools/aapt2/format/proto/ProtoDeserialize.cpp",
      "new_id": "d8635a989bed85e7fb5cb0c17914e6c4ddc498f1",
      "new_mode": 33188,
      "new_path": "tools/aapt2/format/proto/ProtoDeserialize.cpp"
    },
    {
      "type": "modify",
      "old_id": "d7f83fd9ecdc89f6c5061d63abe85ff4b1c90447",
      "old_mode": 33188,
      "old_path": "tools/aapt2/format/proto/ProtoSerialize_test.cpp",
      "new_id": "ccba5c652822164fd01b530a8c3b4a6cc2222983",
      "new_mode": 33188,
      "new_path": "tools/aapt2/format/proto/ProtoSerialize_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d2aac6ac936024eec136bc99da3440af2285cd4",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/BasicTest/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3743c4012b60bc76f95fdc67bfb4b20b6a70c83e",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/BasicTest/AndroidManifest.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8d6bb432bf6b245f0024749532ddc1d1df8d47fb",
      "new_mode": 33188,
      "new_path": "tools/aapt2/integration-tests/BasicTest/res/values/values.xml"
    },
    {
      "type": "modify",
      "old_id": "5beb594bd92f70bbfb6323d40b4285ca0f26ac3c",
      "old_mode": 33188,
      "old_path": "tools/aapt2/java/JavaClassGenerator_test.cpp",
      "new_id": "e449546f9399b56fd6c77dc11217285b48c68843",
      "new_mode": 33188,
      "new_path": "tools/aapt2/java/JavaClassGenerator_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "29ad25f79ab98961a98a8a64c298c34920ac1a4e",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/XmlCompatVersioner_test.cpp",
      "new_id": "1ed4536c4566d3011998c48a74acdee579dd6881",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/XmlCompatVersioner_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "8852c8e8c66ee9767f1e9394a758d6dad239111a",
      "old_mode": 33188,
      "old_path": "tools/aapt2/link/XmlReferenceLinker.cpp",
      "new_id": "160ff925f6cc2f0b3ef2b548a5a407da6dd0d870",
      "new_mode": 33188,
      "new_path": "tools/aapt2/link/XmlReferenceLinker.cpp"
    },
    {
      "type": "modify",
      "old_id": "3cae0e8ae462fd58912e057d79b9460013b60ae3",
      "old_mode": 33188,
      "old_path": "tools/aapt2/process/SymbolTable.cpp",
      "new_id": "2e97a2f3ae7f558600d4e7be0c743282e03ca7da",
      "new_mode": 33188,
      "new_path": "tools/aapt2/process/SymbolTable.cpp"
    },
    {
      "type": "modify",
      "old_id": "495a48a830f77a20637ae832a34b3b8a343b3a4d",
      "old_mode": 33188,
      "old_path": "tools/aapt2/test/Builders.cpp",
      "new_id": "c4eab1269e4e7afc58338e8eb98f3f5111cc6642",
      "new_mode": 33188,
      "new_path": "tools/aapt2/test/Builders.cpp"
    },
    {
      "type": "modify",
      "old_id": "0d7451b5a6da7f977a43604ef53fc624b10f9a13",
      "old_mode": 33188,
      "old_path": "tools/aapt2/test/Builders.h",
      "new_id": "fd5262af6e4810e2fe4ed46d7bd7eb01dbee932c",
      "new_mode": 33188,
      "new_path": "tools/aapt2/test/Builders.h"
    }
  ]
}
