)]}'
{
  "log": [
    {
      "commit": "49ff8b123a0b79aa0ec5a4a1baa288e7cbfdcede",
      "tree": "f0bb816c0ec7263a05709240177bb719d9d3fbcb",
      "parents": [
        "49ef6587b4cb830cbe35a8e14ac4ad5a2c457923"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Apr 13 09:12:31 2012 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Apr 13 09:12:31 2012 +0000"
      },
      "message": "THRIFT-1552 Include paths for c/c++ should be prefixed with \u0027thrift/\u0027\n\nTo ensure there are no include path collisions the C and C++ header\ninclude paths should include \u0027thrift\u0027 as the root leaf. This will\nprevent having to place /usr/include/thrift into the compilers include\nheader search path, which might otherwise result in the compiler\naccidentally picking up headers that it shouldn\u0027t.\n\ne.g. #include \u003cfoo/bar.h\u003e should be #include \u003cthrift/foo/bar.h\u003e\n\nChange-Id: I48f2b0f549bda0fc81e85506ac857adc800b98a1\n\ngit-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1325674 13f79535-47bb-0310-9956-ffa450edef68\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": "351e22b52afcbe9b40e0933f80b06b479dff50f4",
      "tree": "bf08ca7a10a6adca594d44ae22111008f2ccb0ee",
      "parents": [
        "f261dd795c4004c72c7efd66c4b09f66299bfc83"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Aug 31 16:51:19 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Aug 31 16:51:19 2010 +0000"
      },
      "message": "THRIFT-503. cpp: Move the tests built by \"make check\" under lib/cpp\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991246 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": "b5e6221eb5cbabab25d5c9badb7262b15c42cfdd",
      "tree": "b215dc9387b4b9e7cb454e0306fbe66ac0b2d42e",
      "parents": [
        "3fa89e33f3e7e76a2f79546c72d1728492f12bef"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Sat Jan 31 22:36:20 2009 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Sat Jan 31 22:36:20 2009 +0000"
      },
      "message": "THRIFT-270: change cpp namespaces from facebook::thrift to apache::thrift\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@739644 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "28f298dd5d9b68c9c0dbaefa95c88d51ed8e430a",
      "tree": "4c089343bfd96f8eddb653ec2f746a27d7a8ec9a",
      "parents": [
        "9a4edfa07fe0c09865015a15d26695823cd4a5fd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:17:36 2008 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu May 01 06:17:36 2008 +0000"
      },
      "message": "Memory-based transport rewrite.\n\nThe old implementations of the memory-based transports (TBufferedTransport,\nTFramedTransport, and TMemoryBuffer) shared very little code and all worked\na bit differently.  This change unifies them all as subclasses of a single\nbase (TBufferBase) which handles the fast-path operations (when requests\ncan be satisfied by the buffer) with inline methods (that will eventually\nbe made nonvirtual in the template branch) and calls out to pure-virutal\nmethods to handle full/empty buffers.  All of the buffer-management is now\ndone in terms of \"base and bound\" pointers rather than \"pos\" integers.\n\nThese classes were moved to TBufferTransports.{h,cpp}.  The .h is included\nin TTransportUtils for backwards compatibility.\n\nAlso added a \"TShortReadTransport\" to assist testing transports.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665676 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": "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"
    }
  ]
}
