)]}'
{
  "log": [
    {
      "commit": "2efac8661c59d656da715db25d5fcb8dfb714b44",
      "tree": "9dc89690846676372064d28679b8b19d0af7a9ba",
      "parents": [
        "dd06cbee30271ce8e69cfa4a51a5d26b2ecd898e"
      ],
      "author": {
        "name": "thobrla@google.com",
        "email": "thobrla@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 21 21:09:07 2013"
      },
      "committer": {
        "name": "thobrla@google.com",
        "email": "thobrla@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 21 21:09:07 2013"
      },
      "message": "Remove Permission whitespace workaround\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@346 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "dd06cbee30271ce8e69cfa4a51a5d26b2ecd898e",
      "tree": "53ca8c49a27c79d10b560bebbc2fc00c3790ed1e",
      "parents": [
        "69a6dc21aabbf158c259c9207c82161fe2bad59d"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 21 19:26:32 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 21 19:26:32 2013"
      },
      "message": "Fixed two version-specific URI bugs:\n\n1. gsutil cp -r gs://bucket1 gs://bucket2 would create objects in\nbucket2 with names corresponding to version-specific URIs in bucket1\n(e.g., gs://bucket2/obj#1361417568482000, where the \"#1361417568482000\"\npart was part of the object name, not the object\u0027s generation).\n\nThis problem similarly caused gsutil cp -r gs://bucket1 ./dir to create\nfiles names corresponding to version-specific URIs in bucket1.\n\n2. gsutil rm -a gs://bucket/obj would attempt to delete the same object\ntwice, getting a NoSuchKey error on the second attempt.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@345 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "69a6dc21aabbf158c259c9207c82161fe2bad59d",
      "tree": "a738b2d206703e30a2cb2e5733ae0fa2b6cfd061",
      "parents": [
        "e6bacad302e80546b8574ab485e6cb4c20799254"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 20 00:56:03 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 20 00:56:03 2013"
      },
      "message": "Release 3.24\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@344 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "e6bacad302e80546b8574ab485e6cb4c20799254",
      "tree": "c6c008e55d0348aa1871bd501b0a574474e4b945",
      "parents": [
        "2db7e3833cf7201fc03fdf181cd26cc7b8dd8825"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 20 00:01:54 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 20 00:01:54 2013"
      },
      "message": "Fix bug that caused attempt to dupe-encode a unicode filename\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@343 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "2db7e3833cf7201fc03fdf181cd26cc7b8dd8825",
      "tree": "cb48aef02b0bbccdc816d86a86b30d7214f5eef7",
      "parents": [
        "6749cc0249d1fe573d4cdd3aff190e4542de5c07"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Feb 19 23:38:43 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Feb 19 23:38:43 2013"
      },
      "message": "Fix flaky tests.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@342 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "6749cc0249d1fe573d4cdd3aff190e4542de5c07",
      "tree": "93cebf82b37103329245ecc058fd2ae8c089b20b",
      "parents": [
        "9c54515e3350ef83c6b60bff8afde29398a45c5f"
      ],
      "author": {
        "name": "zwilt@google.com",
        "email": "zwilt@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Feb 19 19:39:32 2013"
      },
      "committer": {
        "name": "zwilt@google.com",
        "email": "zwilt@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Feb 19 19:39:32 2013"
      },
      "message": "- Refactored retry logic from setmeta and chacl to use @Retry decorator.\n- Moved @Retry decorator to third_party.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@341 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "9c54515e3350ef83c6b60bff8afde29398a45c5f",
      "tree": "9bd0016318a5a901047a387588072a0ad7b51249",
      "parents": [
        "3d797a612131baa32baf4b5470127f36ac2b32ae"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Feb 15 19:49:11 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Feb 15 19:49:11 2013"
      },
      "message": "Release 3.22\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@340 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "3d797a612131baa32baf4b5470127f36ac2b32ae",
      "tree": "f5e6a89e4f14e02f171fe266f87c9c5273c0852c",
      "parents": [
        "8ae3603de4b94120dd253b8809f991308eb6ac5b"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 14 20:03:00 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 14 20:03:00 2013"
      },
      "message": "Updated copyright notice on code files\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@339 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "8ae3603de4b94120dd253b8809f991308eb6ac5b",
      "tree": "4ae0d2568d9cb480339aeb299270d4ce1bd03a15",
      "parents": [
        "ab24a7dec348792ebd55e7ea5a0eeb93135a1790"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 14 19:46:51 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 14 19:46:51 2013"
      },
      "message": "Implement support for gsutil cp file -\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@338 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ab24a7dec348792ebd55e7ea5a0eeb93135a1790",
      "tree": "60e6689d442387c6006b909cbed2d9ce6403aac5",
      "parents": [
        "ff2898e4a88412bed950f2b95ccfb03c45ddf5d8"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 14 19:38:09 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 14 19:38:09 2013"
      },
      "message": "Clean up/clarify/deepen various parts of gsutil built-in documentation\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@337 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ff2898e4a88412bed950f2b95ccfb03c45ddf5d8",
      "tree": "e8805b4ba9ff7b3de9548f363ca19efb9a88822a",
      "parents": [
        "8566f850a213c6b4877e309988843786695e88b6"
      ],
      "author": {
        "name": "bensonk@google.com",
        "email": "bensonk@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 23:59:32 2013"
      },
      "committer": {
        "name": "bensonk@google.com",
        "email": "bensonk@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 23:59:32 2013"
      },
      "message": "Fixes chacl help text to be consistent with actual syntax\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@336 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "8566f850a213c6b4877e309988843786695e88b6",
      "tree": "5c542d0e12016162a39df7555329c8144552a8f4",
      "parents": [
        "6fb8c52a794f3d0279b2ffaa336471cc43901b6c"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 22:36:46 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 22:36:46 2013"
      },
      "message": "Updated testing infrastructure.\n\nCleaned up last remaining old tests:\n * Overhauled test_commands.py to use the new testing infrastructure and renamed it.\n * Overhauled test_wildcard_iterator.py to use the new testing infrastructure.\n\nWindows bug fixes:\n * Fixed various places from a hard-coded \u0027/\u0027 to os.sep.\n * Fixed a bug in the cp command where it was using the destination URI\u0027s .delim\n   property instead of the source URI.\n * Fixed a bug in the cp command\u0027s _SrcDstSame function by simplifying it to use\n   os.path.normpath.\n * Fixed windows bug in tests/util.py _NormalizeURI function.\n * Fixed ZeroDivisionError sometimes happening during unit tests on Windows.\n\nTesting improvements:\n * Moved TempDir functions from GsUtilIntegrationTestCase to GsUtilTestCase.\n * Made test runner message show the test function being run.\n * Added file path support to ObjectToURI function.\n * Disable the test command if running on Python 2.6 and unittest2 is not\n   available instead of breaking all of gsutil.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@335 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "6fb8c52a794f3d0279b2ffaa336471cc43901b6c",
      "tree": "95a54b4bebe665931271c873c685306e54d13820",
      "parents": [
        "13cd5145d1355449ed390cd386a76956636ea341"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 20:53:48 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 20:53:48 2013"
      },
      "message": "Reworked gsutil commands to work with version-specific URIs that embed only generation, not meta-generation\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@334 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "13cd5145d1355449ed390cd386a76956636ea341",
      "tree": "75baaa78fe211f6b48439da1105a43a6785b37a4",
      "parents": [
        "0ed7572cc8d105320b3a77a41d8c2c3ff1069c8b"
      ],
      "author": {
        "name": "bensonk@google.com",
        "email": "bensonk@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 02:20:36 2013"
      },
      "committer": {
        "name": "bensonk@google.com",
        "email": "bensonk@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 02:20:36 2013"
      },
      "message": "Added chacl command module and relevant tests. \n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@333 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "0ed7572cc8d105320b3a77a41d8c2c3ff1069c8b",
      "tree": "b04f589e1b638bee944da103ae888d8da7c57841",
      "parents": [
        "310aff3dbd87b7d77f0aef5043967aa128b140e8"
      ],
      "author": {
        "name": "zwilt@google.com",
        "email": "zwilt@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 01:14:28 2013"
      },
      "committer": {
        "name": "zwilt@google.com",
        "email": "zwilt@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 13 01:14:28 2013"
      },
      "message": "dded retry logic to setmeta\u0027s optimistic concurrency approach.\n\nSee https://codereview.appspot.com/7311079/.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@332 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "310aff3dbd87b7d77f0aef5043967aa128b140e8",
      "tree": "7c986fc5a9f262d684b69f522183b535f9596106",
      "parents": [
        "55810de89745da628436811c30aaa0eb25d88ce6"
      ],
      "author": {
        "name": "thobrla@google.com",
        "email": "thobrla@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Feb 11 23:31:43 2013"
      },
      "committer": {
        "name": "thobrla@google.com",
        "email": "thobrla@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Feb 11 23:31:43 2013"
      },
      "message": "Remove XML parsing from setacl\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@331 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "55810de89745da628436811c30aaa0eb25d88ce6",
      "tree": "9d6bfe58278c7823b88e23020c32a446a47bac14",
      "parents": [
        "7190a9cd7ae0d668f1274ab0bcfcbd107981cf8f"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 10 18:59:28 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 10 18:59:28 2013"
      },
      "message": "Implemented gsutil cp -v option for printing the version-specific URI that was just created\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@330 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "7190a9cd7ae0d668f1274ab0bcfcbd107981cf8f",
      "tree": "ef13c93ecfc8d8ff1971258055106687d69b8434",
      "parents": [
        "9337187cf75b6be942dad40e07c74a8ac7fb3b75"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Feb 08 00:25:47 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Feb 08 00:25:47 2013"
      },
      "message": "Reworked versioned StorageUri and version handling in gsutil:\n\n- Moved StorageUri parsing that had been split across storage_uri and conveience wrapper into storage_uri, so parsing works uniformly from everywhere.\n- Removed need for commands to specify -v option to parse versions. Versioned URIs are now uniformly recognized by all commands.\n- Rewrote versioning help\n- Fixed bug where ACL setting code didn\u0027t pass meta_generation through call layers, so didn\u0027t correctly work with versioned objects\n- Implemented setacl integration tests\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@329 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "9337187cf75b6be942dad40e07c74a8ac7fb3b75",
      "tree": "e4c0e810931a9270086f48734abd6aabc5368761",
      "parents": [
        "de245d358e1e504f35879436614b57b3f38aa3ff"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 07 16:49:12 2013"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Feb 07 16:49:12 2013"
      },
      "message": "Pass headers with API version \u0026 project ID to create_bucket().\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@328 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "de245d358e1e504f35879436614b57b3f38aa3ff",
      "tree": "fb3f130adde798d75f7b55c650d273750c212bdf",
      "parents": [
        "2a08fe73209ba0e03efdc1b1d919a55a95ab1955"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 06 19:36:28 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Feb 06 19:36:28 2013"
      },
      "message": "Fixed bug in copying subdirs to subdirs.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@327 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "2a08fe73209ba0e03efdc1b1d919a55a95ab1955",
      "tree": "470951da40bb682577eaa0dd778d329f8d1247f9",
      "parents": [
        "1e7d939871e5d3dbc978db3b38600bf9c3151da3"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Feb 05 18:20:48 2013"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Feb 05 18:20:48 2013"
      },
      "message": "Use GCS V2 API and project_id from boto config if necessary in integration_testcase#CreateBucket().\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@326 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "1e7d939871e5d3dbc978db3b38600bf9c3151da3",
      "tree": "17a4fa3365908836ec70da55983b7d539951579b",
      "parents": [
        "81b6bdc2c18870be1cbd77096bc3b8f514212887"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Feb 04 17:22:18 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Feb 04 17:22:18 2013"
      },
      "message": "Added timestamp of test measurement in perfdiag command.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@325 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "81b6bdc2c18870be1cbd77096bc3b8f514212887",
      "tree": "9a93e0df5972690c31cbab62b2fc823449efe790",
      "parents": [
        "0d50b7330ed89f4d67a36ec948f0954a7594a94f"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 03 23:29:33 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 03 23:29:33 2013"
      },
      "message": "implemented test for gsutil cp -D\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@324 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "0d50b7330ed89f4d67a36ec948f0954a7594a94f",
      "tree": "97efdb5735bb63b945742900314aa7e5fe904622",
      "parents": [
        "b7e70f718b625ef13ea4de13d0acda5b11c27f03"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 03 05:39:56 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 03 05:39:56 2013"
      },
      "message": "Implemented gsutil option for copying between locations and storage classes\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@323 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "b7e70f718b625ef13ea4de13d0acda5b11c27f03",
      "tree": "04fc0853f6a10ba1cc760390810b250393e7cc59",
      "parents": [
        "275be6c4e0043c3fddd45e51f8360e1019b25e34"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 03 03:06:43 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Feb 03 03:06:43 2013"
      },
      "message": "Test var renaming to match typing\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@322 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "275be6c4e0043c3fddd45e51f8360e1019b25e34",
      "tree": "128cdde28ee4188932b69b408fca610ad5cdff99",
      "parents": [
        "d886ccc96887a504d22bd0c19bb6a6eee6fbfcbc"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Feb 02 19:40:46 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Feb 02 19:40:46 2013"
      },
      "message": "Fix ascii codec decode error when constructing tracker filename from non-7bit ASCII intput filename\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@321 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "d886ccc96887a504d22bd0c19bb6a6eee6fbfcbc",
      "tree": "7767510c9920dee47b6c1bc271b446744abb82c9",
      "parents": [
        "4f94172f8231b1617ed865a6db50e9fc178c46d4"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Feb 02 04:08:05 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Feb 02 04:08:05 2013"
      },
      "message": "Added error detail for attempt to delete non-empty versioned bucket. Also added versioning state to ls -L -b gs://bucket output\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@320 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "4f94172f8231b1617ed865a6db50e9fc178c46d4",
      "tree": "7847e0dd047f538e88a41d040a96733303608b77",
      "parents": [
        "5a0d953455711726f1d870be8a8b004ecdde2770"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Feb 01 23:09:04 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Feb 01 23:09:04 2013"
      },
      "message": "Added gsutil help text for common 403 AccountProblem error\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@319 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "5a0d953455711726f1d870be8a8b004ecdde2770",
      "tree": "c742012e8b134adbe2220bc6cf11d1ae2b45b540",
      "parents": [
        "51c9a3e1fff83688b0f940974f16dad6e92a55f8"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 30 19:02:47 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 30 19:02:47 2013"
      },
      "message": "Refactored gsutil tests.\n\nThis removes the test_steps property from the Command class. Instead, each\ncommand now has its own test file in gslib/test/, e.g. gslib/commands/cp.py\ncorresponds with gslib/tests/test_cp.py. This enables a more powerful testing\ninfrastructure than the previous commands, makes the tests more readable, and\nenables better debugging output when tests fail.\n\nI also added a small subclass of TextTestRunner that shows a progress indicator\nwhen running tests. The \"gsutil test\" command also has two new parameters, -u\nthat runs *only* unit tests (so it runs quickly) and -f (failfast) that will\nfail immediately when the first failure happens.\n\nThe tests are currently broken on Windows. Rather than making this change even\nbigger, I thought it would be better to submit a followup change to fix Windows.\nAll of the tests are passing on Ubuntu and OS X.\n\nAlso fixed the getcors and getwebcfg commands not to mix stderr with stdout so\nthat redirection to file works propertly and removed duplicate newlines.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@318 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "51c9a3e1fff83688b0f940974f16dad6e92a55f8",
      "tree": "984c0e21a5cae2ee55c253ea7b747bc0997ee3f7",
      "parents": [
        "72d873808078881b8d72aa930bc5527b8aca3573"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 28 16:40:31 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 28 16:40:31 2013"
      },
      "message": "Fixed unit tests by using a GS-specific mocking class to override the S3\nprovider.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@317 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "72d873808078881b8d72aa930bc5527b8aca3573",
      "tree": "dbb4b874d213a8dd36612f9577a2d8b320ed83b7",
      "parents": [
        "e805a507f2ac9663ee79847db839d5200ef93a96"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 28 02:37:04 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 28 02:37:04 2013"
      },
      "message": "Changed cross-provider copies to use resumable or one-shot uploads instead\nof streaming uploads, as appropriate. Previously, for transfers into GCS\nwe used streaming uploads (which weren\u0027t resumable so could be wasteful\nif a failure occurred partway through a large transfer); and for transfers\ninto S3 we used buffering through a local temp file (which had scaling and\nperformance problems).\n\nAlso, moved KeyFile class to boto, and updated documentation for perfdiag\ncommand.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@316 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "e805a507f2ac9663ee79847db839d5200ef93a96",
      "tree": "e31d486856e7989b6f911330df836665e57740a4",
      "parents": [
        "f97adddabc01fc2830204cffdcf63fe5d56e78de"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Jan 25 02:52:12 2013"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Jan 25 02:52:12 2013"
      },
      "message": "Define IsLatest() for bucket_listing_refs representing local files.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@315 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "f97adddabc01fc2830204cffdcf63fe5d56e78de",
      "tree": "bc26ff383273930ceecbb4bb101db841b56f0990",
      "parents": [
        "ad1b65218b75efe8190eb98daaacb1636458c05d"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 23 15:37:24 2013"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 23 15:37:24 2013"
      },
      "message": "Versioning bug fixes, performance improvements.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@314 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ad1b65218b75efe8190eb98daaacb1636458c05d",
      "tree": "64b210e1f68345350ebd02f9339ddd555862af7b",
      "parents": [
        "45add28ee67e5f93a60415622064dba1d66541e2"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 23 01:28:47 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 23 01:28:47 2013"
      },
      "message": "Change Command.Apply method to be resilient to name expansion exceptions.\n\nBefore this change, if an exception was raised during iteration of\nNameExpansionResult, the parent process would immediately stop execution,\ncausing the _EOF_NAME_EXPANSION_RESULT to never be sent to child processes. This\nresulted in the process hanging forever.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@313 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "45add28ee67e5f93a60415622064dba1d66541e2",
      "tree": "302b66d35183e78321e7ec976e814b8943b67b24",
      "parents": [
        "35fe4ef82c0dcfd8ee0eff68b1892e46d3c8ac88"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 23 00:09:56 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 23 00:09:56 2013"
      },
      "message": "Moved gslib/test_*.py unit tests to gslib/tests module.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@312 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "35fe4ef82c0dcfd8ee0eff68b1892e46d3c8ac88",
      "tree": "76ae1d3fc8a053109b3a95a17fd7b8b1d7a656d4",
      "parents": [
        "05ad5f2cbdbcad679e4451bc5bf6a9479d1f9004"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jan 22 20:38:19 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jan 22 20:38:19 2013"
      },
      "message": "Change gsutil mv to allow moving local files/dirs to the cloud\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@311 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "05ad5f2cbdbcad679e4451bc5bf6a9479d1f9004",
      "tree": "f0f9fe133dcd54d5bd9a6450f84b4ea7428a83de",
      "parents": [
        "c27f49aa558b02722d3c205a4792c62ba7562209"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jan 22 02:53:06 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jan 22 02:53:06 2013"
      },
      "message": "Remove gsutil cp -N option; minor cp doc fixes\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@310 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "c27f49aa558b02722d3c205a4792c62ba7562209",
      "tree": "064bc84660982561cfb44fda358779f0eb5d3a61",
      "parents": [
        "6480c71a5355e836773465940ca05c3a9c7630b0"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 14 23:46:15 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 14 23:46:15 2013"
      },
      "message": "Added friendlier error message if test path munging fails.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@309 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "6480c71a5355e836773465940ca05c3a9c7630b0",
      "tree": "8ccf7de1fcbecfab4ace29dfa1b4130d3f5482c1",
      "parents": [
        "8c5ffc8bf2581c950de8496f19dc5bd2dfbe85ff"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 14 23:46:10 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 14 23:46:10 2013"
      },
      "message": "Added tests for reading and seeking past end of file.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@308 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "8c5ffc8bf2581c950de8496f19dc5bd2dfbe85ff",
      "tree": "59df635e6c4c2d5a82d66e4517431aa6c29c21c2",
      "parents": [
        "458790ddb9e7f0af4298c6fb0036199c61f3106d"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 14 23:46:02 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Jan 14 23:46:02 2013"
      },
      "message": "Added seek support to KeyFile and tests for it in new tests module.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@307 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "458790ddb9e7f0af4298c6fb0036199c61f3106d",
      "tree": "2872ec12ce8c9808e89e90cecbd8b150b668d9f6",
      "parents": [
        "c49a8d83c7ecf74dde186d48ebeb49c13e7986cb"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Jan 12 02:09:04 2013"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Jan 12 02:09:04 2013"
      },
      "message": "Fixed reporting bits/s when it was really bytes/s.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@306 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "c49a8d83c7ecf74dde186d48ebeb49c13e7986cb",
      "tree": "5a7fe5fb743399ef7441342bb1e2e18680ef4d36",
      "parents": [
        "adeefc9c8c881b8e73ec32a036f5bf339c1219d7"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Jan 10 01:05:43 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Jan 10 01:05:43 2013"
      },
      "message": "Added text to \u0027gsutil help dev\u0027 about legal agreement needed with code submissions\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@305 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "adeefc9c8c881b8e73ec32a036f5bf339c1219d7",
      "tree": "4c5c1b4428c2eade0dcdf9afdce52af2495e24cf",
      "parents": [
        "3f726f1e1a47dd26097389d81c6a5a34bc0d5668"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 09 00:00:39 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Jan 09 00:00:39 2013"
      },
      "message": "remove TooManyAuthHandlerReadyToAuthenticate catch from gsutil, now that\nthat exception no longer exists (per https://github.com/boto/boto/commit/dc39e0296eaf612a34637afff8be70168f381286)\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@304 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "3f726f1e1a47dd26097389d81c6a5a34bc0d5668",
      "tree": "7aa45bfd3c85c1582efa89b3ce91507508b331a7",
      "parents": [
        "300967d4edc616310c3e53bfb1cf338bcfec336a"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jan 08 22:37:03 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jan 08 22:37:03 2013"
      },
      "message": "Added SIGQUIT handler, to allow breakpointing a running gsutil\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@303 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "300967d4edc616310c3e53bfb1cf338bcfec336a",
      "tree": "0646634b49d3b256539c4982aa12f46b67962279",
      "parents": [
        "776b2a3e47edea90ac29ea7b5291451d774ed3ee"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Jan 04 18:57:04 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Jan 04 18:57:04 2013"
      },
      "message": "Fix gsutil rm bug that caused exit status 1 when encountered non-existent URI\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@302 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "776b2a3e47edea90ac29ea7b5291451d774ed3ee",
      "tree": "05e2dd9bbd10789ef00db374f922019817846b3b",
      "parents": [
        "26d15b1270cb21ff97dd4826152f861a2a692e95"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Jan 04 17:50:14 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Jan 04 17:50:14 2013"
      },
      "message": "Fix for cp test; update to \u0027help dev\u0027 doc; typo fix in setmeta doc\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@301 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "26d15b1270cb21ff97dd4826152f861a2a692e95",
      "tree": "061615a3b7fe3d543be871b98771f76fc8d76bb7",
      "parents": [
        "605fe53b86e70235ad9c8d4addafedf2255a7edf"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Jan 03 21:58:41 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Jan 03 21:58:41 2013"
      },
      "message": "Updated doc for cp command regarding metadata not being preserved when copying between providers\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@300 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "605fe53b86e70235ad9c8d4addafedf2255a7edf",
      "tree": "c543408a8dee4677a7340afabd7ca38dfeb8f344",
      "parents": [
        "639a633c2f6a546af7df161b3ed8df10e2f6fea9"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Jan 03 03:51:31 2013"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Jan 03 03:51:31 2013"
      },
      "message": "Added gsutil cp -N option to override streaming uploads\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@299 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "639a633c2f6a546af7df161b3ed8df10e2f6fea9",
      "tree": "9319265668ecd921553b9edb70217acc3068fe07",
      "parents": [
        "6da2e08eb3cc9dd361f9231baa3ae16649cc19fb"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Dec 30 23:29:51 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Dec 30 23:29:51 2012"
      },
      "message": "Fixed gsutil ls command documentation typo for the -L option.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@298 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "6da2e08eb3cc9dd361f9231baa3ae16649cc19fb",
      "tree": "1091b13cf84f9f1a5427fe87c536ab5413274fac",
      "parents": [
        "59eaff1e290797d06e1093aa878cd64c2298d7c3"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Dec 21 16:59:26 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Dec 21 16:59:26 2012"
      },
      "message": "Made gsutil rm -r gs://bucket/folder remove xyz_$folder$ object (which is created by various GUI tools).\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@297 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "59eaff1e290797d06e1093aa878cd64c2298d7c3",
      "tree": "8fb24149c813a49ac34214bde0257fa7e6173ba9",
      "parents": [
        "bec8eb244c61d9c16619c8392c28907e268ea204"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 20 21:31:35 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 20 21:31:35 2012"
      },
      "message": "Remove leftover cloudauth and cloudreader dirs.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@296 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "bec8eb244c61d9c16619c8392c28907e268ea204",
      "tree": "8fb24149c813a49ac34214bde0257fa7e6173ba9",
      "parents": [
        "a4505c0d2b6a83d510b1b9c22a2aaeb0656e8b55"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 20 21:11:03 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 20 21:11:03 2012"
      },
      "message": "Remove cloudreader and cloudauth sample code from gsutil. Sample code now lives at https://github.com/GoogleCloudPlatform\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@295 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "a4505c0d2b6a83d510b1b9c22a2aaeb0656e8b55",
      "tree": "3847f33bea2bfa3452bd2e6f2009fb41e33cd32b",
      "parents": [
        "ed0dcb25053b89d8f7c547fbf4148442d34496ac"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Dec 18 01:13:55 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Dec 18 01:13:55 2012"
      },
      "message": "Changed gsutil update command to insist on is_secure and https_validate_certificates\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@294 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ed0dcb25053b89d8f7c547fbf4148442d34496ac",
      "tree": "8ad8436a5724805542cce4919e07c66111068aad",
      "parents": [
        "5129d56cac8f987be66cdce413fa0a141058c6bb"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 17 17:56:03 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 17 17:56:03 2012"
      },
      "message": "Added HTTP scheme to doc/examples for gsutil setcors command\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@293 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "5129d56cac8f987be66cdce413fa0a141058c6bb",
      "tree": "856c8f82a9f50f6dde819d665d95f4b30f83dd74",
      "parents": [
        "4c9e9b0674e51343a0de3852c3087f208ff5a9d2"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Dec 14 00:32:53 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Dec 14 00:32:53 2012"
      },
      "message": "Fixed help command handling when terminal does not have the number of rows set\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@292 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "4c9e9b0674e51343a0de3852c3087f208ff5a9d2",
      "tree": "8a5f08edd66eb03e8f92007030908f0c3ce114a1",
      "parents": [
        "03e595f52f27ec54088761f8164fdca261173d67"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 13 18:12:14 2012"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 13 18:12:14 2012"
      },
      "message": "Change cp tests that don\u0027t specify a Content-Type to check for new\nbinary/octet-stream default instead of server-detected mime type.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@291 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "03e595f52f27ec54088761f8164fdca261173d67",
      "tree": "3418e17b0b8ed8a4e1b29c629888efdfe2c5a849",
      "parents": [
        "080c853c34176ae5d48127157998741da60e9695"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 13 18:11:07 2012"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 13 18:11:07 2012"
      },
      "message": "Change minimum version in documentation from 2.5 to 2.6 since gsutil no longer works in Python 2.5.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@290 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "080c853c34176ae5d48127157998741da60e9695",
      "tree": "b9cc034cb336528ace886c912846b399eb26d781",
      "parents": [
        "ae80a88b465be23ba80432b8d09b2b5d501f2f7c"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 13 00:44:15 2012"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 13 00:44:15 2012"
      },
      "message": "Adds perfdiag command and fixes Windows compatibility.\n\nThe perfdiag command runs a diagnostic test against a bucket, collects system\ninformation, and reports results.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@289 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ae80a88b465be23ba80432b8d09b2b5d501f2f7c",
      "tree": "f7688eb555e7d0b7d4341a44be61df55e3b9318e",
      "parents": [
        "c94e22b6cbee509afee557f1545fff6cf29e03ca"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Dec 11 23:01:52 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Dec 11 23:01:52 2012"
      },
      "message": "Changed resumable upload threshold from 1 MB to 2 MB\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@288 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "c94e22b6cbee509afee557f1545fff6cf29e03ca",
      "tree": "b434f8c53c9b9592fb3ce23fdcd2c9993566d00d",
      "parents": [
        "8ed2a020d198ea36bcb9af08000fc0774f0b7849"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Dec 11 00:41:52 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Dec 11 00:41:52 2012"
      },
      "message": "Fixed bug where gsutil test only cleans up first few test files\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@287 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "8ed2a020d198ea36bcb9af08000fc0774f0b7849",
      "tree": "323649ceeb5e05dd6a07259d93a5e93af68451e1",
      "parents": [
        "99f1d75c6570eefd5cc0bf1b3a39f90468193c8e"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 10 22:17:18 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 10 22:17:18 2012"
      },
      "message": "Release 3.21\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@286 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "99f1d75c6570eefd5cc0bf1b3a39f90468193c8e",
      "tree": "921b5769de64fce0b99769f2103545661770b350",
      "parents": [
        "a31a7d7ce89941368f6d4ef2a24d1517b17f91c5"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 10 18:14:58 2012"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 10 18:14:58 2012"
      },
      "message": "Mods so we send generation subresource only when user requested version parsing\n(-v option for cp and cat commands).\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@285 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "a31a7d7ce89941368f6d4ef2a24d1517b17f91c5",
      "tree": "bab83515a698d086e1ca09ef5a966c3b199ce239",
      "parents": [
        "d1340dde95a990faff12d73bb83248098ab64fc9"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Dec 09 15:41:27 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Dec 09 15:41:27 2012"
      },
      "message": "Added support for specifying src args for gsutil cp on stdin.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@284 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "d1340dde95a990faff12d73bb83248098ab64fc9",
      "tree": "2b38a5500caf1d4a2e5126e116eafc56ca5a1194",
      "parents": [
        "15e587c8376fb885a22c8cc0d9b20e34621e046b"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 06 19:30:38 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Dec 06 19:30:38 2012"
      },
      "message": "Fixed gsutil test cp, which assumed it was run from gsutil install dir\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@283 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "15e587c8376fb885a22c8cc0d9b20e34621e046b",
      "tree": "5662a5a92e1ec6cc9e0807aa64043fd85d08a740",
      "parents": [
        "ec464b26b7065d02b29ea27eb1f604547811a85d"
      ],
      "author": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Dec 05 00:23:29 2012"
      },
      "committer": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Dec 05 00:23:29 2012"
      },
      "message": "Added the ability for the cp command to continue even if there is an error.\nThis can be activated with the -c flag.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@282 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ec464b26b7065d02b29ea27eb1f604547811a85d",
      "tree": "5853abe2500f008a176e8b6cd261b214b1b95855",
      "parents": [
        "8f052f2bb39a0a5a805f94ef8e1b698ef28698af"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 03 17:12:25 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Dec 03 17:12:25 2012"
      },
      "message": "Updated docs about using setmeta with versioning enabled\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@281 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "8f052f2bb39a0a5a805f94ef8e1b698ef28698af",
      "tree": "c6711491d0f1d4ca4014bfa84830945b0970b778",
      "parents": [
        "efd96ebf3466058afc542a105807df303670cc49"
      ],
      "author": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Dec 01 00:33:34 2012"
      },
      "committer": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Dec 01 00:33:34 2012"
      },
      "message": "v3.20 release.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@280 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "efd96ebf3466058afc542a105807df303670cc49",
      "tree": "331c21626e0d74bc1506c7f6083de9ba244e28e1",
      "parents": [
        "f0f117677307a242e7bd5c99d250d30eada215ff"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 30 23:17:07 2012"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 30 23:17:07 2012"
      },
      "message": "Improved versioning support for remove command.\n* Explicitly disallow -a and -v options together.\n* More robust deletes for current versions in \"rm -a\".\n* General style improvements.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@279 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "f0f117677307a242e7bd5c99d250d30eada215ff",
      "tree": "ca92d4bd1c9fd1ee9868a5cf34c0afa5524d4a2b",
      "parents": [
        "cb433617d992aaa55fc76789959aca0def418d35"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 30 18:01:24 2012"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 30 18:01:24 2012"
      },
      "message": "Improved test runner.\n\n* When running gsutil test, test results from individual test suites are\ngathered and a summary is displayed at the end.\n\n* Added return code handling to gsutil commands. Each RunCommand function can\nnow return an integer error code. The test command was updated to return a\nnon-zero error code when any of the tests don\u0027t pass.\n\n* Changed test commands to run \"set -o pipefail\" before executing commands when\nthe bash shell is available to avoid missing possible errors when running tests.\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@278 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "cb433617d992aaa55fc76789959aca0def418d35",
      "tree": "f08171c5ab564966991c369185a702ff97ca8586",
      "parents": [
        "0ff4924604957a5b0b110a66d96d7091358993f1"
      ],
      "author": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Nov 29 01:01:41 2012"
      },
      "committer": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Nov 29 01:01:41 2012"
      },
      "message": "Added noclobber (-n) support to the cp command.\n\nWe check to see if the object/file exists before we initiate a copy. In\naddition, if we\u0027re copying to gs we set the x-goog-if-generation-match to zero\nso that we ensure that we don\u0027t clobber an existing object.\n\nUsage of this command:\ngsutil cp -n src dst\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@277 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "0ff4924604957a5b0b110a66d96d7091358993f1",
      "tree": "1fe82f403de248bfc2f86d558761a6d06a7f2eaf",
      "parents": [
        "a33775cc15d8392ca1695164c10c43c67a4fcad0"
      ],
      "author": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Nov 28 23:44:44 2012"
      },
      "committer": {
        "name": "jterrace@google.com",
        "email": "jterrace@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Wed Nov 28 23:44:44 2012"
      },
      "message": "Fixed off-by-one error when reporting bytes transferred\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@276 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "a33775cc15d8392ca1695164c10c43c67a4fcad0",
      "tree": "dec2ca9d1105761eed30b98cafbfedb69224754d",
      "parents": [
        "b4865f695f3f00e43a8e11bb05dfe485edffa344"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Nov 27 02:38:04 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Nov 27 02:38:04 2012"
      },
      "message": "v3.19 release.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@275 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "b4865f695f3f00e43a8e11bb05dfe485edffa344",
      "tree": "0cdacda3238a7c27fc3f58c4f497d467877cf180",
      "parents": [
        "30e245200983564723b1dc3c5bd769391fca45e9"
      ],
      "author": {
        "name": "pstemari@google.com",
        "email": "pstemari@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Nov 27 01:23:12 2012"
      },
      "committer": {
        "name": "pstemari@google.com",
        "email": "pstemari@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Nov 27 01:23:12 2012"
      },
      "message": "Implement support for durable reduced availability storage.\n \n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@274 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "30e245200983564723b1dc3c5bd769391fca45e9",
      "tree": "850c40730ec9f257392bb25d873cc7e8f899b3de",
      "parents": [
        "571bb94372277bab30f476919699cec432db8159"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Nov 26 23:23:39 2012"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Mon Nov 26 23:23:39 2012"
      },
      "message": "Add support for object versions.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@273 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "571bb94372277bab30f476919699cec432db8159",
      "tree": "69b3e4723e671986758f01ac5ebb4eb7c6bfbc0e",
      "parents": [
        "2521981fa3fc77d6e6e3a248ee39118c482e9c48"
      ],
      "author": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Nov 20 01:31:58 2012"
      },
      "committer": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Nov 20 01:31:58 2012"
      },
      "message": "Made the tests more robust by running them through minidom.parseString\n\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@272 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "2521981fa3fc77d6e6e3a248ee39118c482e9c48",
      "tree": "c348e09bb062510687046f282e836ec6bd782d34",
      "parents": [
        "798d0190aa102711721b7d2922f89e88aa34c3c5"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Nov 17 01:16:57 2012"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Nov 17 01:16:57 2012"
      },
      "message": "Fix expected output for setwebcfg tests.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@271 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "798d0190aa102711721b7d2922f89e88aa34c3c5",
      "tree": "ef04026ed414137fe519385cbb7564c2692f885d",
      "parents": [
        "a17e8c455dfcb344d87bce437dc3e5eb36d1f543"
      ],
      "author": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 16 23:44:28 2012"
      },
      "committer": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 16 23:44:28 2012"
      },
      "message": "Bumping the version of the source code to 3.18 to match the binary.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@270 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "a17e8c455dfcb344d87bce437dc3e5eb36d1f543",
      "tree": "f266b7855dfa9fb3576aded0c8a6683bc9868046",
      "parents": [
        "7774af4bcd1deb700b72cbc5d6b404a41bdd6ece"
      ],
      "author": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 09 22:38:47 2012"
      },
      "committer": {
        "name": "rein@google.com",
        "email": "rein@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 09 22:38:47 2012"
      },
      "message": "1. Uploads would not resume in -q mode.\n2. setwebcfg and setcors tests were failing when comparing the resulting XML. The XML returned\nfrom the server was formatted differently (no newlines)\n\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@269 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "7774af4bcd1deb700b72cbc5d6b404a41bdd6ece",
      "tree": "30496810ec8cb554c04d83b4c3027170aac2e027",
      "parents": [
        "2aa4b442e142212c0a741eac15a9b632259208cf"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Nov 04 10:35:46 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Nov 04 10:35:46 2012"
      },
      "message": "Incorporated vapier@ mods to make version command not fail if CHECKSUM file missing.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@268 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "2aa4b442e142212c0a741eac15a9b632259208cf",
      "tree": "47d145b79792ede63d8acef1bee3c5a01d132c15",
      "parents": [
        "ca25ac2c49798dbcc89fd1d59c9b6f58d162541b"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 02 20:11:14 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 02 20:11:14 2012"
      },
      "message": "Updated gsutil help dev instructions for how to check out source\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@267 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "ca25ac2c49798dbcc89fd1d59c9b6f58d162541b",
      "tree": "d1c19319c695e01fa42381058f021b6eaa7f7f27",
      "parents": [
        "db0c3bd0722bc52ba3d693ba53163bc7dbb679a5"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 02 19:18:42 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Nov 02 19:18:42 2012"
      },
      "message": "Removed svn propset that had linked to boto via github gateway, because that\ngateway has become flaky.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@266 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "db0c3bd0722bc52ba3d693ba53163bc7dbb679a5",
      "tree": "d1c19319c695e01fa42381058f021b6eaa7f7f27",
      "parents": [
        "5cba434b828da428a906c8197a23c9ae120d2636"
      ],
      "author": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Oct 09 17:15:36 2012"
      },
      "committer": {
        "name": "yovadia@google.com",
        "email": "yovadia@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Oct 09 17:15:36 2012"
      },
      "message": "Refactor gsutil such that most functionality exists in boto.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@264 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "5cba434b828da428a906c8197a23c9ae120d2636",
      "tree": "17028882576bc2b5e9c0d37da8d5f077b6393fd2",
      "parents": [
        "2d1d6ba7fa41c9b983ebec727cd975ca1760e03b"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Aug 25 23:28:32 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Aug 25 23:28:32 2012"
      },
      "message": "Updated help text for \"gsutil help setmeta\" and \"gsutil help metadata\",\nto clarify and deepen parts of the documentation.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@263 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "2d1d6ba7fa41c9b983ebec727cd975ca1760e03b",
      "tree": "37ae1309b5627bc0f2f9a06a5d455338ffcb5b91",
      "parents": [
        "b41305d0b538bae46777e1d9562ecec0149f8d44"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Aug 25 00:10:11 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Aug 25 00:10:11 2012"
      },
      "message": "Fixed one more place that outputted progress info when gsutil cp -q specified (during streaming uploads)\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@262 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "b41305d0b538bae46777e1d9562ecec0149f8d44",
      "tree": "69104f8236002c923825c199ded74bacde7d2771",
      "parents": [
        "95b0e6249c47f1bfc41b57473e12710ff54d0898"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 17 14:25:40 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 17 14:25:40 2012"
      },
      "message": "Release 3.17.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@261 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "95b0e6249c47f1bfc41b57473e12710ff54d0898",
      "tree": "a9e7b19d24e8455fccd153ff82f2d16816b032d5",
      "parents": [
        "93046a7c7c6773aaa36047789e36984e0736347f"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 17 14:23:20 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 17 14:23:20 2012"
      },
      "message": "Implemented simplified syntax for setmeta command. The old syntax still works but is now deprecated.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@260 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "93046a7c7c6773aaa36047789e36984e0736347f",
      "tree": "e97d99be4515c7f84a01138c603b0f20eb861b3b",
      "parents": [
        "9a54199038608d23a67c528da04ea188603eee8e"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Aug 16 16:28:20 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Aug 16 16:28:20 2012"
      },
      "message": "Clarified a detail in temp file change doc added in previous commit.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@259 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "9a54199038608d23a67c528da04ea188603eee8e",
      "tree": "6b46c9822fb2b4976225ddf3cd9c5d657367ab8e",
      "parents": [
        "e93c11438788fc0b39064bfef811e8e21e65363b"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Aug 16 16:26:00 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Aug 16 16:26:00 2012"
      },
      "message": "Added help to gsutil cp -z option, to describe how to change where temp files are written.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@258 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "e93c11438788fc0b39064bfef811e8e21e65363b",
      "tree": "c3166c52ee3800c43abd616f343203ccf4a1a188",
      "parents": [
        "e0c71349f473578cb04b1a45f668fc2bc8e56b74"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Aug 14 22:41:29 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Aug 14 22:41:29 2012"
      },
      "message": "Fixed race condition when multiple threads attempt to get an OAuth2 refresh token concurrently.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@257 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "e0c71349f473578cb04b1a45f668fc2bc8e56b74",
      "tree": "0e8736b46260ff30d7b73adbfa003ec1085329c6",
      "parents": [
        "4881501104a41a526b3378c533eff9a19087e51b"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Aug 14 01:26:48 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Aug 14 01:26:48 2012"
      },
      "message": "Release 3.16\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@256 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "4881501104a41a526b3378c533eff9a19087e51b",
      "tree": "625734428c5f07493ef594884f54441c10d15e4a",
      "parents": [
        "430f67588ddc222fd76addbbc52fe8160442789f"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 23:33:05 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 23:33:05 2012"
      },
      "message": "Release 3.15.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@255 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "430f67588ddc222fd76addbbc52fe8160442789f",
      "tree": "6ef61a6cb4934bcd8300c59dbef4bbfd9b3b36a0",
      "parents": [
        "bc0e6429e09612e3cc1a47d520d2b7b918f674d8"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 19:18:10 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 19:18:10 2012"
      },
      "message": "Fixed copy/paste error in config file documentation for https_validate_certificates option.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@254 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "bc0e6429e09612e3cc1a47d520d2b7b918f674d8",
      "tree": "f26382c9aee85f7fffea7b0038ba282c12aae59d",
      "parents": [
        "aa1442c4a9ad0285068bf44df39a8549fb7acf02"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 18:56:08 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 18:56:08 2012"
      },
      "message": "Changed gsutil to unset http_proxy environment variable if it\u0027s set, because it confuses boto. (Proxies should instead be configured via the boto config file.)\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@253 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "aa1442c4a9ad0285068bf44df39a8549fb7acf02",
      "tree": "4a334156f7abe1abd3436fb46c1627ae716b289a",
      "parents": [
        "62f48fdc783ad968789f4a68a03ffd93d6df8831"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 18:35:39 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 12 18:35:39 2012"
      },
      "message": "Made gsutil understand bucket subdir conventions used by various tools (like\nGCS Manager and CloudBerry), so if you cp or mv to a subdir you created with\none of those tools it will work as expected.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@252 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "62f48fdc783ad968789f4a68a03ffd93d6df8831",
      "tree": "2b0972c137e598f6f859096d0ef0dcb65b2142b5",
      "parents": [
        "5af0297c51ce6fbfd06faedb525925bc9ccf1989"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Aug 11 22:01:52 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sat Aug 11 22:01:52 2012"
      },
      "message": "Fixed naming bug when performing gsutil mv from a bucket subdir to and existing bucket subdir.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@251 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "5af0297c51ce6fbfd06faedb525925bc9ccf1989",
      "tree": "01e6f276eeaf3d3562bf8fc5b38f246fa091f6d0",
      "parents": [
        "58d7692f0875302847a7f7d6ce4da76b60971608"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 10 20:45:28 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 10 20:45:28 2012"
      },
      "message": "Hotfix to fix bug that stopped cross-provider copies into gs:// from working.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@250 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "58d7692f0875302847a7f7d6ce4da76b60971608",
      "tree": "60d7b399c252472928a4ceb4d0280cc22c9b0445",
      "parents": [
        "790fcd112809e27e53620765c4d719b4e669b472"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 05 12:37:41 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Sun Aug 05 12:37:41 2012"
      },
      "message": "Implemented gsutil setmeta command\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@249 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "790fcd112809e27e53620765c4d719b4e669b472",
      "tree": "8c34b347b202332e7a1d1cb8666d60ef2c62042e",
      "parents": [
        "7518ef7f924368ca9dfe6ca53f3b28a9ce7d0692"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 03 00:33:39 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Fri Aug 03 00:33:39 2012"
      },
      "message": "Minor typo fixes.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@248 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "7518ef7f924368ca9dfe6ca53f3b28a9ce7d0692",
      "tree": "879912a0ff5a9da60db8368f3fc96e14bc6e6bff",
      "parents": [
        "e3e3a8af24260bf709eee730540d6b72db11c0d0"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Aug 02 12:40:02 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Thu Aug 02 12:40:02 2012"
      },
      "message": "Fixed performance bug when downloading a large object with Content-Encoding:gzip, where decompression attempted to load entire object in memory. Also added \"Uncompressing\" log output if file is larger than 50M, to make it clear the download hasn\u0027t stalled.\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@247 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    },
    {
      "commit": "e3e3a8af24260bf709eee730540d6b72db11c0d0",
      "tree": "58c446083b18efa9cd1932046ef6031de00d073b",
      "parents": [
        "946d69797159b94da3aa59d557a65f1cad9ffa8d"
      ],
      "author": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jul 31 20:50:20 2012"
      },
      "committer": {
        "name": "mfschwartz@google.com",
        "email": "mfschwartz@google.com@56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa",
        "time": "Tue Jul 31 20:50:20 2012"
      },
      "message": "Added change needed to make resumable transfer progress messages not print when running gsutil cp -q\n\n\ngit-svn-id: svn://svn.chromium.org/gsutil/trunk/src@246 56d8b958-6b11-9cbd-d51d-67dd3ef4e9fa\n"
    }
  ],
  "next": "946d69797159b94da3aa59d557a65f1cad9ffa8d"
}
