)]}'
{
  "log": [
    {
      "commit": "ba3fe86b0ab50fa5e934debe9c3bca185ca9b704",
      "tree": "4b07fc40de5102e7532798b47d1459590ae5e144",
      "parents": [
        "a6ab1f5e6d8c5f8c64d356d72993a423cc2bf588"
      ],
      "author": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Tue Dec 01 22:42:55 2015 +0900"
      },
      "committer": {
        "name": "Nobuaki Sukegawa",
        "email": "nsuke@apache.org",
        "time": "Sun Dec 06 10:11:16 2015 +0900"
      },
      "message": "THRIFT-3464 Fix several defects in c_glib code generator\nClient: c_glib compiler\nPatch: Nobuaki Sukegawa\n\nThis closes #724\n"
    },
    {
      "commit": "f9f01fa1e054ff28d7b8023eeb53cd5ba0ed6b1c",
      "tree": "7cd1d0604894e57fec7a1468c9ddf9619d71dd9a",
      "parents": [
        "6ce2704a14bb109d2d9e29d1b77974f57b2e8636"
      ],
      "author": {
        "name": "Jake Farrell",
        "email": "jfarrell@apache.org",
        "time": "Fri Jan 27 04:48:26 2012 +0000"
      },
      "committer": {
        "name": "Jake Farrell",
        "email": "jfarrell@apache.org",
        "time": "Fri Jan 27 04:48:26 2012 +0000"
      },
      "message": "THRIFT-1394:Treatment of optional fields is not consistent between C++ and Java\nClient: cpp\nPatch: Diwaker Gupta\n\nIn CPP, all optional fields are guarded by the isset helper struct. On Java, however, the generated code takes advantage of nullable types: for containers, structs, exceptions, enums, and, notably, strings, the generator elides explicit use of an \"isset\" bit vector and instead emits checks of the form \"field null\". This leads to varying behavior between the two languages: an optional string field with a default value will have {{isset[fieldid]}} false on C, but the equivalent test in Java will be true.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1236529 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "213a66479872e0ccf828f8f2675d1546cdff0a18",
      "tree": "9ee6ccf9935af077a69b426327b210b4d9656f78",
      "parents": [
        "5013de297a1892fb336f69a01e6f57fdad147568"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed Oct 27 12:30:11 2010 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed Oct 27 12:30:11 2010 +0000"
      },
      "message": "THRIFT-582 C(c_glib) implementation of Thrift\n\nPatch: Anatol Pomozov and Michael Lum\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1027933 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "53ae9f39d5118d9b13774413e7989b9f0fb1a8eb",
      "tree": "5cc5f76a2afed365f70f366994e255dbda59235c",
      "parents": [
        "f5dea4c7f31703cdc0c347eb7ec429fc5864afb4"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Mon Dec 07 00:42:38 2009 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Mon Dec 07 00:42:38 2009 +0000"
      },
      "message": "THRIFT-622. Add appropriate licensing information to get Thrift ready for a release.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@887812 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ea2cba8ba8484a8d4e669c02dd97b3b2445ef322",
      "tree": "6be4a3bf2d069a006c9a15f5ee47a1893a176f4d",
      "parents": [
        "4bc4231040186d9e0c35ff4d8211ce7b7e43aab5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 21:35:00 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 30 21:35:00 2009 +0000"
      },
      "message": "THRIFT-387. Add license headers to a bunch of files\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@760189 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3b15ebc251adc63d9c330c50e9a399e8117bdf35",
      "tree": "d86c65190ef84faf4ccdb3d557fba6aadfbda11c",
      "parents": [
        "d2a3e566b7814cfe176dd988854f6b3dca6a47d7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sun Mar 02 06:29:19 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sun Mar 02 06:29:19 2008 +0000"
      },
      "message": "Add support for .equals() to Java structs.\n\n- Add a new method to t_java_generator that generates a .equals() method.\n- Add a correct but useless implementation of hashCode for structs.\n  (This is required by conventino when overriding .equals().)\n- Add java_package to DebugProtoTest and OptionalRequiredTest.\n- Add a new structure to OptionalRequiredTest to assist testing the behavior\n  of .equals() with respect to null and unset fields.\n- Clean up test/java/build.xml a bit.  (It still has a ways to go.)\n- Add EqualityTest.java to test .equals().\n- Add IdentityTest.java to test that writing and reading a structure\n  preserves equality.\n\nTested by runnint atn test.\nI also looked at the generated code for OptionalRequiredTest.thrift.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665541 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9a08dc6184cd0c3fd3d774fcf3f0a4233e28975f",
      "tree": "a047210c4603c6d119639b2112049e5ebce8136d",
      "parents": [
        "79eca14125c391c6011f4ffb14bfea898bc6c2f9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 27 01:55:17 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Feb 27 01:55:17 2008 +0000"
      },
      "message": "Make the C++ generator use non-hardcoded namespaces.\n\n- Make the C++ generator use program-\u003eget_namespace(\"cpp\")\n  instead of program-\u003eget_cpp_namespace()\n- Eliminate the explicit \"cpp_namespace\" in t_program.\n- Deprecate the cpp_namespace token.\n- Update example .thrift files and syntax files.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665513 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8180c0c028d11086f6dd042e637af7c38db073f2",
      "tree": "3a2fc8f2f962c46e2ac63516973eadc0e8be3f5a",
      "parents": [
        "20f009d6251af0f838c4ef8799d6b238cd230606"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Feb 04 21:14:14 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Feb 04 21:14:14 2008 +0000"
      },
      "message": "Thrift: \"make check\" support.\n\nSummary:\nAdd a Makefile.am in the test directory that runs some of the test programs\nwhen \"make check\" is executed.  Also removed some obsolete comments.\n\nReviewed By: mcslee\n\nTest Plan:\nRan make check, saw all tests pass.\nRan make install, saw no test programs installed.\nRan ./cleanup.sh, saw a pristine workspace.\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665458 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ce161a96cddbea8916d0b20406b12d96772482ed",
      "tree": "deb35caa60008c44d04468e3d8f3298e89e1fd11",
      "parents": [
        "8775c73db2729f85fd66e2c8443a3628fd55a972"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Sep 11 22:09:42 2007 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Sep 11 22:09:42 2007 +0000"
      },
      "message": "Thrift: Clean up and test TDenseProtocol\n\nSummary:\n- TDenseProtocol now includes a part of the struct fingerprint in\n  the serialized message, to protect from unserialzing trash.\n- A lot of cleanups and commenting for TDenseProtocol.\n- A lot of test cases for same.\n\nReviewed By: mcslee\n\nTest Plan: test/DenseProtoTest.cpp\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665257 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2dc72c3864e76d9eb14c1f83def63fa2351f4fb2",
      "tree": "a9d1cb7875bb45a5ee9eba760ca229902a34408c",
      "parents": [
        "dd56497a7c97f07c8d97b9c7323652fb2b7154e0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Aug 21 23:59:34 2007 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Aug 21 23:59:34 2007 +0000"
      },
      "message": "Thrift: Move TStringBuffer functionality into TMemoryBuffer.\n\nSummary:\nTMemoryBuffer already has the necessary plubming to work with C++ strings.\nThis revision implements that functionality with a few wrapper methods.\nRemoved TStringBuffer as it should no longer be required (and it is tricky\nto safely inherit from a class that has a non-virtual destructor).\nAlso refactored the TMemoryBuffer constructors a bit.\n\nReviewed By: aditya, yunfang\n\nTest Plan:\ntest/TMemoryBufferTest.cpp\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665213 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8320a92d9b07f8dc5f7d9f0517a28bec64ce20e2",
      "tree": "6003fc152953dc859d076eb7f57ffacdfd0b289a",
      "parents": [
        "cbd4bacc307c0103aa07d5bbc2104e14b8a29aac"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Aug 14 19:59:26 2007 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Aug 14 19:59:26 2007 +0000"
      },
      "message": "Thrift: Merging external patch.\n\nSummary:\nMerging a patch from Andy Lutomirsky.\n- Allow fields to be marked \"required\" or \"optional\" (only affects C++).\n- Thrift structs now have operator \u003d\u003d.\n\nReviewed By: mcslee\n\nTest Plan: test/OptionalRequiredTest.cpp\n\nRevert Plan: ok\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665202 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ]
}
