)]}'
{
  "log": [
    {
      "commit": "cecd1d864fc3cf02cf50d367111e0d0e173c5dc6",
      "tree": "b4f660400560dce21cd7a00ffe5a5d74b54bcb81",
      "parents": [
        "fc241240d828d7e8302dc0876608a9d27ae1cbc7"
      ],
      "author": {
        "name": "Sarah Owens",
        "email": "sarato@inkylabs.com",
        "time": "Thu Nov 01 22:59:27 2012 -0700"
      },
      "committer": {
        "name": "Sarah Owens",
        "email": "sarato@inkylabs.com",
        "time": "Tue Nov 13 17:33:56 2012 -0800"
      },
      "message": "Change print statements to work in python3\n\nThis is part of a series of changes to introduce Python3 support.\n\nChange-Id: I373be5de7141aa127d7debdbce1df39148dbec32\n"
    },
    {
      "commit": "7e6dd2dff012062b8dd812f923339790323b3840",
      "tree": "0ca1a9e444eb7ebfa40d79ade53939da187da791",
      "parents": [
        "e072a92a9bb9fdf61bbd1df4e8864f8fd52d5a82"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Oct 25 12:40:51 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Nov 07 08:39:57 2012 +0900"
      },
      "message": "Fix pylint warning W0108: Lambda may not be necessary\n\nRemove unnecessary usage of lambda.\n\nChange-Id: I06d41933057d60d15d307ee800cca052a44754c6\n"
    },
    {
      "commit": "1d947b30342163b723c96db563967323535fef45",
      "tree": "b6b02d02df01792b356b9e50ceeaadcaf3a2e8c5",
      "parents": [
        "2d113f35460051823ea54d61c5c939565518f969"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Oct 25 12:23:11 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Oct 30 10:28:20 2012 +0900"
      },
      "message": "Even more coding style cleanup\n\nFixing some more pylint warnings:\n\nW1401: Anomalous backslash in string\nW0623: Redefining name \u0027name\u0027 from outer scope\nW0702: No exception type(s) specified\nE0102: name: function already defined line n\n\nChange-Id: I5afcdb4771ce210390a79981937806e30900a93c\n"
    },
    {
      "commit": "a5be53f9c809009e67f217c00b8f30246aacc237",
      "tree": "7ab0da1fd31968eee882de81df8c9b93ae52fdfb",
      "parents": [
        "9ed12c5d9cda1f010bc173b0bc622d59e96b0dd0"
      ],
      "author": {
        "name": "Sarah Owens",
        "email": "sarato@inkylabs.com",
        "time": "Sun Sep 09 15:37:57 2012 -0700"
      },
      "committer": {
        "name": "Sarah Owens",
        "email": "sarato@inkylabs.com",
        "time": "Tue Oct 23 21:35:59 2012 -0700"
      },
      "message": "Use modern Python exception syntax\n\n\"except Exception as e\" instead of \"except Exception, e\"\n\nThis is part of a transition to supporting Python 3.  Python \u003e\u003d 2.6\nsupport \"as\" syntax.\n\nNote: this removes Python 2.5 support.\n\nChange-Id: I309599f3981bba2b46111c43102bee38ff132803\n"
    },
    {
      "commit": "2f6ab7f5b8f21b2dbfe9ae102674bd1694e94f03",
      "tree": "040f9045751d83902ea8c479304fdfa2a0061a54",
      "parents": [
        "3a6cd4200e42fbb5a21b3fb8d3c9738c0320cc63"
      ],
      "author": {
        "name": "Mickaël Salaün",
        "email": "mic@digikod.net",
        "time": "Sun Sep 30 00:37:55 2012 +0200"
      },
      "committer": {
        "name": "Mickaël Salaün",
        "email": "mic@digikod.net",
        "time": "Wed Oct 10 08:30:15 2012 +0200"
      },
      "message": "Rename \"dir\" variables\n\nThe variable name \"dir\" conflicts with the name of a Python built-in\nfunction: http://docs.python.org/library/functions.html#dir\n\nChange-Id: I850f3ec8df7563dc85e21f2876fe5e6550ca2d8f\n"
    },
    {
      "commit": "2bc7f5cb3af981d673b44ce9a1ff5a272535def6",
      "tree": "ef9e474c5edde414a226cb26acf72a98807322ed",
      "parents": [
        "b292b98c3e9a9f666ca780ba60fdb4f306eca343"
      ],
      "author": {
        "name": "Chad Jones",
        "email": "chadj@google.com",
        "time": "Thu Jun 28 13:12:13 2012 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jul 31 22:18:47 2012 -0700"
      },
      "message": "Fix bug in version_tuple to handle strings with -rc#\n\nExample of version string that caused a problem: git version 1.7.11-rc3\n\nChange-Id: I8a68b6b37f7b2ded23a1f8ae0d12131050a8807b\nCC: sop@google.com\n"
    },
    {
      "commit": "337aee0a9c6714027ff4fa8659879b0710e2e6aa",
      "tree": "59eeac1d718f560ee7341794206f068a98bc2427",
      "parents": [
        "7cf1b36bcdc79c9239413e35b02dee54aa801a20"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Jun 13 10:40:46 2012 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Wed Jun 13 10:42:16 2012 -0700"
      },
      "message": "Single quote http.proxy in GIT_CONFIG_PARAMETERS\n\nGit requires the values in this environment variable to be\nsingle quoted. repo must wrap the expression into \u0027\u0027 before\nadding it to the environment.\n\nChange-Id: I20a1fb8772f9aa6e9fd5a0516c981c2ca020ef05\n"
    },
    {
      "commit": "62d0b10a7bea2aa5cb7593ff12d14c482a1a663c",
      "tree": "c03c28ee9e272f1349e135b0259ed919602e4484",
      "parents": [
        "d666e93ecc1f094774dfc7ba9ab0fd6e1695e976"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 05 15:11:15 2012 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Jun 05 15:11:15 2012 -0700"
      },
      "message": "Use GIT_CONFIG_PARAMETERS instead of -c for http.proxy\n\nAncient versions of Git don\u0027t understand the -c command line flag\nthat we tried to use to pass http_proxy down into Git on Darwin.\nUse the environment variable instead, to more gracefully degrade\nwith these old versions.\n\nChange-Id: Iffffa32088c1fd803895b990b3377ecfec6a1b14\n"
    },
    {
      "commit": "9fae805e0421aa4caf1e0a9052f8701a88d7bd0d",
      "tree": "fe1b867c58618ee8a25b833f18d2f22a189499ee",
      "parents": [
        "6a927c5d1990a9391242baa00c5ac71490c50c28"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 25 07:57:44 2012 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri May 25 08:21:37 2012 -0700"
      },
      "message": "Pass http_proxy as -c http.proxy on Mac OS X\n\nThe system libcurl library seems to ignore http_proxy on Mac OS\nX systems. Copy the http_proxy environment variable (if set) as\n`git -c http.proxy` whenever running a Git command.\n\nChange-Id: I0ab29336897178f70b85092601f9fcc306dd17e1\n"
    },
    {
      "commit": "498fe90b455e896e306498abd24961fd90a21c67",
      "tree": "1f45eba29d25a4751ebd43b6cfe89cf532e492d9",
      "parents": [
        "53d6f4d17e0cb4eabcd604d584a1132a51cc8bf3"
      ],
      "author": {
        "name": "Ulrik Sjölin",
        "email": "ulrik.sjolin@sonyericsson.com",
        "time": "Sun Sep 11 22:59:37 2011 +0200"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Nov 29 11:54:58 2011 -0800"
      },
      "message": "Stabilize repo communication with subprocesses.\n\nMake repo use the standard way in python to work with pipes.\nCommunication via pipes to sub processes is done by calling\ncommunicate(). This will make repo not hang every now and\nthen.\n\nChange-Id: Ibe2c4ecbdbcbe72f0b725ca50d54088e5646fc5d\n"
    },
    {
      "commit": "334851e4b6390f4c78e463b977003f1d967c88ed",
      "tree": "7c8c5004c7cbb3079b460aee97095955013147ff",
      "parents": [
        "014d0609899dba70a1af0b32de377ca08c54aded"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Sep 19 08:05:31 2011 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Mon Sep 19 14:51:47 2011 -0700"
      },
      "message": "Enhance HTTP support\n\nSetting REPO_CURL_VERBOSE\u003d1 in the environment will register a debug\nlevel HTTPHandler on the urllib2 library, showing HTTP requests and\nresponses on the stderr channel of repo.\n\nDuring any HTTP or HTTPS request created inside of the repo process,\na custom User-Agent header is now defined:\n\n  User-Agent: git-repo/1.7.5 (Linux) git/1.7.7 Python/2.6.5\n\nChange-Id: Ia5026fb1e1500659bd2af27416d85e205048bf26\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "727ee98a401b5993f6b952074f43c7f770604acf",
      "tree": "e13bf1101981e15ef1cdf3a5dcc38a608b70aedd",
      "parents": [
        "df14a70c4529821d7450303ec553a9f608af1656"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Dec 07 08:46:14 2010 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sun Jan 09 17:39:22 2011 -0800"
      },
      "message": "Use os.environ.copy() instead of dict()\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n(cherry picked from commit 3218c13205694434edb2375ab8a8515554eed366)\n"
    },
    {
      "commit": "f18cb761731a791bf1b9ee8c6308bfce5c9d3e62",
      "tree": "5b1440e04b3945177eb7033f40cf496e7e28ba34",
      "parents": [
        "d3fd537ea59272e2141ccee839400a93c0196e36"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Dec 07 11:41:05 2010 -0800"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sun Jan 09 16:13:56 2011 -0800"
      },
      "message": "Encode the environment variables passed to git\n\nWindows allows the environment to have unicode values.\nThis will cause Python to fail to execute the command.\n\nChange-Id: I37d922c3d7ced0d5b4883f0220346ac42defc5e9\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "ca8c32cd7ae7c3ae27bb6b649eafbfd54d77f916",
      "tree": "20d74c26df2112515313b0b22c7358427bad8b57",
      "parents": [
        "f0a9a1a30e60e92cec9bff4cae030478c276da4d"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 11 18:21:33 2010 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue May 11 18:31:47 2010 -0700"
      },
      "message": "sync: kill git fetch process before SSH control master process\n\nIf the SSH control master process is killed while an active git\nfetch is using its network socket, the underlying SSH client may\nnot realize the connection was broken.  This can lead to both the\nclient and the server waiting indefinitely for network messages\nwhich will never be sent.\n\nWork around the problem by keeping track of any processes that use\nthe tunnels we establish.  If we are about to kill any of the SSH\ncontrol masters that we started, ensure the clients using them are\nsuccessfully killed first.\n\nChange-Id: Ida6c124dcb0c6a26bf7dd69cba2fbdc2ecd5b2fc\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "1c85f4e43ba2d337b1e8c49bb3c7814a5cb163ae",
      "tree": "e2f22213eec12b827bf4cfeaf6cf72b6d45f6d8e",
      "parents": [
        "719965af35a2fab96cb578c8a19a48a2cf9fe8e8"
      ],
      "author": {
        "name": "Nico Sallembien",
        "email": "nsallembien@google.com",
        "time": "Tue Apr 27 14:35:27 2010 -0700"
      },
      "committer": {
        "name": "Nico Sallembien",
        "email": "nsallembien@google.com",
        "time": "Tue Apr 27 14:35:27 2010 -0700"
      },
      "message": "Rename _ssh_sock() to fix code style issue.\n\nSince _ssh_sock is imported out of the git_command module, the leading\nunderscore should be removed from the function name.\n"
    },
    {
      "commit": "2ec00b92724982708071dc0eed707659468d2bcf",
      "tree": "4af657b8164ea30575b99852a60012ea9ad8e24e",
      "parents": [
        "2a3a81b51f1aee5a2da789d07d14cde61c96e8b7"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Jun 12 09:32:50 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Jun 12 09:32:50 2009 -0700"
      },
      "message": "Refactor git version detection for reuse\n\nThis way we can use it to detect feature support in the underlying\ngit, such as new options or commands that have been added in more\nrecent versions.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "d63bbf44dc22994ad3cdd73cf852f3d91d87b3f8",
      "tree": "f3fca75ef50280259369c607a7320ba5f02dad02",
      "parents": [
        "a8421a128a2f0a5e6dcca7e37e36ceb63c9291c4"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Apr 21 08:05:27 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Tue Apr 21 08:05:27 2009 -0700"
      },
      "message": "Work around \u0027ControlPath too long\u0027 on Mac OS X\n\nMac OS X sets TMPDIR to a very long path within /var, so long\nthat a socket created in that location is too big for a struct\nsockaddr_un on the platform, resulting in OpenSSH being unable\nto create or bind to a socket in that location.\n\nInstead we try to use the very short and very common /tmp, but\nfall back to the guessed default if /tmp does not exist.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "fb2316146f6e3036e0cc3e08653920964a428a15",
      "tree": "f19c5c65a035f547ada03496f1576524e4602665",
      "parents": [
        "8bd5e60b16080008771afcaa7de7084487b84780"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Fri Apr 10 18:53:46 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Apr 18 16:50:47 2009 -0700"
      },
      "message": "Automatically use SSH control master support during sync\n\nBy creating a background ssh \"control master\" process which lives\nfor the duration of our sync cycle we can easily cut the time for\na no-op sync of 132 projects from 60s to 18s.\n\nBug: REPO-11\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "ad3193a0e587073dee0edef46bdf24f6c6e09779",
      "tree": "84ed1894e6f590455ee361beb049c1c271c4e0e7",
      "parents": [
        "b81ac9e65444d0f54d2b6dd24d20b74945c9a36a"
      ],
      "author": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Apr 18 09:54:51 2009 -0700"
      },
      "committer": {
        "name": "Shawn O. Pearce",
        "email": "sop@google.com",
        "time": "Sat Apr 18 09:54:51 2009 -0700"
      },
      "message": "Fix `repo --trace` to show ref and config loads\n\nThe value of the varible TRACE was copied during the import, which\nhappens before the --trace option can be processed.  So instead we\nnow use a function to determine if the value is set, as the function\ncan be safely copied early during import.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n"
    },
    {
      "commit": "cf31fe9b4fb650b27e19f5d7ee7297e383660caf",
      "tree": "d04ca6a45d579dca5e5469606c48c405aee68f4b",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
