)]}'
{
  "commit": "e0e54661f76183684dca66694967a60cbb10f04e",
  "tree": "0a2a20f984705fdf6ef13de8829901b80f88efb5",
  "parents": [
    "86fcd879b38505446799b2f2a2929415ddad620a"
  ],
  "author": {
    "name": "Paul Yang",
    "email": "TeBoring@users.noreply.github.com",
    "time": "Thu Sep 15 11:09:01 2016 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 15 11:09:01 2016 -0700"
  },
  "message": "Check in php implementation. (#2052)\n\nThis pull request includes two implementation: C extension and PHP\r\npackage. Both implementations support encode/decode of singular,\r\nrepeated and map fields.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "052dd14d7164bd9b38f8ad2ec8a8ebff784a6a3b",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "980f7407bf87b2585e842bee4793d9921c1be595",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "67be3e9b82ba0b7504744563b23464fba8142aa5",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "32c1992d98da51bbabaee73d99ada175a8e8fb3d",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "9edafca8d663c03486586d404988a91b70eb756e",
      "old_mode": 33188,
      "old_path": "cmake/extract_includes.bat.in",
      "new_id": "7481f0cfed0b8beb68e67378e1b76ec35bbe0176",
      "new_mode": 33188,
      "new_path": "cmake/extract_includes.bat.in"
    },
    {
      "type": "modify",
      "old_id": "8df8986a113346114e82b1730f0d484366df26b0",
      "old_mode": 33188,
      "old_path": "cmake/libprotoc.cmake",
      "new_id": "71c3494ccb7c262998e376e1b62e07479ed31362",
      "new_mode": 33188,
      "new_path": "cmake/libprotoc.cmake"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8b73a2b9876539a070ec23b4040d2374787f3726",
      "new_mode": 33188,
      "new_path": "composer.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f5380f53a56f2fc220e362340ded18cb5fffdbe",
      "new_mode": 33188,
      "new_path": "php/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fde4f7268492f7193c9d7585fb502ae69efc0727",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/array.c"
    },
    {
      "type": "modify",
      "old_id": "b5946f74e1ca8b0f9c6d0fef0481bc5077c7a12f",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/config.m4",
      "new_id": "ab032e466b5745bbaa727376f7ac12b0d28d27f9",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/config.m4"
    },
    {
      "type": "modify",
      "old_id": "fc1880695d72afe485d48de57eece6e090eb022e",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/def.c",
      "new_id": "cbd0ec62db2b8159959c7309425a49957f4db39d",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/def.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4b51dabe2cc938830fb394e49322b271a99d9e06",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/encode_decode.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d822fff06b64a6562471de96c9f9b4bd769f196",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/map.c"
    },
    {
      "type": "modify",
      "old_id": "c062d665ab32670534d7b0d5a3c5faaa3ea92268",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/message.c",
      "new_id": "537cd1c455925f5341b1740b7d9dff3aa115cdd8",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/message.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83719091c5d90c682c1ba89d5edada7c1626bd91",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/package.xml"
    },
    {
      "type": "modify",
      "old_id": "b1ace8b06c56ce6009f68fc35a222e66395d14c5",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/protobuf.c",
      "new_id": "d8ad3c8824ebe236eda2adf05fcc3dcb827535b0",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/protobuf.c"
    },
    {
      "type": "modify",
      "old_id": "f9038550a76de64db81ae22a5307843b68638cfc",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/protobuf.h",
      "new_id": "0330f36f762b8413e83362be847111114d150c90",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/protobuf.h"
    },
    {
      "type": "modify",
      "old_id": "e5a09c17f7844d42cae2b395f33079968fde8f4f",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/storage.c",
      "new_id": "7423552b54df2434c6b7384092e4e7b37424dbf1",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/storage.c"
    },
    {
      "type": "delete",
      "old_id": "6bbadd48b18eaf0ea5194ab22d6faa41abe7bcdb",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/test.php",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe9359fc5ef6e731cd06d85b217b89e5b4dcadde",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/type_check.c"
    },
    {
      "type": "modify",
      "old_id": "048a163a920a0a08df273bda5addd5f2d480a217",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/upb.c",
      "new_id": "98daafc0ab5a9863fbee34172557a64b3f3fcef1",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/upb.c"
    },
    {
      "type": "modify",
      "old_id": "073faf41e19c9de3fb44511e04c4b6ff4cb4cd0c",
      "old_mode": 33188,
      "old_path": "php/ext/google/protobuf/upb.h",
      "new_id": "c83b0e0319cdada2d1c18b31d88e13f2b8f7a649",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/upb.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a1541636b1b97600ca5335cebc0c2065145cc4a5",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/utf8.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "28b8d874a8b53ef6cd78640ff490b52f4e07e071",
      "new_mode": 33188,
      "new_path": "php/ext/google/protobuf/utf8.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "23b304ac9ec878f8ac06678e5098b4042f1889d0",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/DescriptorPool.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c1dac24dd8dd22356b7a962e7c64cdd575fa59ab",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/EnumBuilderContext.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0fb238415b20a3db35dbe8ee4c07c0d551cde6d9",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/GPBLabel.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fa849ceb0639f8f74f394acd46d095480495f2e8",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/GPBType.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "417a97298cf4d8a24d990aa54f66a356af7264f5",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/GPBUtil.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0e741e158a0e39cc7c18745e7500ee2df6022682",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/GPBWire.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "18d07075e83d5ecc9d0063ac00e636c6354fd2a6",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/InputStream.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "926645e1dbc7bb48b9c98cdfb288cab8bab30075",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/MapEntry.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14ee7ebee3307ccda8f8de807680057197395de9",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/MapField.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a8de6a1139f20d39d9f2549d08590a8a7bda8db3",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/Message.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2724d2673d7abe2b69de1296d6a835932958865e",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/MessageBuilderContext.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c689e836cc2ea7dc0b28b1a6e01d12ac3799773",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/OneofField.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcc5ce6da285400704040bcd86c059c1685b5ed7",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/OutputStream.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0dc5d9d2069eebef3642bb30ce6e780b5cf0dbd5",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/RepeatedField.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "088f0e0cbf8434dab48a35e11e5dae8056a26a7e",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/Internal/Type.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "afe082277c1182112611ce2815c13b337d5a279e",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/descriptor.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "161a9f52d9f938515d7dc8cb1e742f5013dce254",
      "new_mode": 33188,
      "new_path": "php/src/Google/Protobuf/descriptor_internal.pb.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd3130253f6d9881a2ea538674575ed46cef0fbe",
      "new_mode": 33188,
      "new_path": "php/src/phpdoc.dist.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d683add5b6aa71e8023834bd2aaa16393b00140a",
      "new_mode": 33188,
      "new_path": "php/tests/array_test.php"
    },
    {
      "type": "delete",
      "old_id": "af88ba01496ee24165c89cf06eaaff3a0f8097e5",
      "old_mode": 33188,
      "old_path": "php/tests/autoload.php",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d07907c0bca27c4f64fb04eaeb351482380ad889",
      "new_mode": 33188,
      "new_path": "php/tests/encode_decode_test.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "56466caee1f72c53252543ea5f439a7e602b8111",
      "new_mode": 33188,
      "new_path": "php/tests/generated_class_test.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d79d0da3f8e668bf301f536ed861f7f156976637",
      "new_mode": 33188,
      "new_path": "php/tests/map_field_test.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ec54597b8b14d350d1dd5acd7ad06c196bbce4e6",
      "new_mode": 33188,
      "new_path": "php/tests/memory_leak_test.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "82941dd271c0804d9499e69da5f5ec6479de1194",
      "new_mode": 33188,
      "new_path": "php/tests/php_implementation_test.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed316b6e2748b955ab0d937eab3fa4a12ec8c565",
      "new_mode": 33188,
      "new_path": "php/tests/test.pb.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "15709c8330d7bce2a591f5f196dccd9516dd16b9",
      "new_mode": 33188,
      "new_path": "php/tests/test.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "52833edb7c258548adb74bde82f659d1c2902a7b",
      "new_mode": 33261,
      "new_path": "php/tests/test.sh"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25f18f74f3e022dc8230492f87875e9952869f00",
      "new_mode": 33188,
      "new_path": "php/tests/test_base.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c43cc412e5b77106d03ca396340c252b9d6b64c",
      "new_mode": 33188,
      "new_path": "php/tests/test_include.pb.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "decd1a78b296629a8f51fe6114c033dedf84d827",
      "new_mode": 33188,
      "new_path": "php/tests/test_util.php"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d311c509f327741056bef800636b873d926b0eec",
      "new_mode": 33188,
      "new_path": "phpunit.xml"
    },
    {
      "type": "modify",
      "old_id": "f70e955053625c85b4dc5d53f59df58337e7cccd",
      "old_mode": 33188,
      "old_path": "src/Makefile.am",
      "new_id": "13952e5b12ba3072e2ae2f576d494e4783dbeba1",
      "new_mode": 33188,
      "new_path": "src/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "2f3c5b8f945238d1a2a3ab510cdcb809448adffe",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/main.cc",
      "new_id": "b83b8f325a5cc2fc0029f2b843356ed495544338",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/main.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "75ddb4058b3c7b24c4c556abc1944ac341423f2a",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/php/php_generator.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce2b000adb1af3bb68bc71a2f61e5624995f95e9",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/php/php_generator.h"
    }
  ]
}
