)]}'
{
  "log": [
    {
      "commit": "59973455a3849c23d992f5498a322e55f9d596da",
      "tree": "d0d9e89e657bd3a38207e688d5e3212c0c7bef96",
      "parents": [
        "d908a546e28d1e9f85f5690cf6c3a080f06ba711"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Nov 14 18:31:11 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Nov 14 18:31:11 2013"
      },
      "message": "Delete swarm_client.\n\nIts home is now at https://code.google.com/p/swarming/source/browse?repo\u003dclient.\n\nR\u003dvadimsh@chromium.org\n\nReview URL: https://codereview.chromium.org/69143004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@235189 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "d908a546e28d1e9f85f5690cf6c3a080f06ba711",
      "tree": "0e17e79c21b4fb7b10f6ba1152b2bf822a4779bc",
      "parents": [
        "c788a690d8927632b13d3a4e9cfa494a440176cc"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 30 01:36:17 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 30 01:36:17 2013"
      },
      "message": "Report all swarming and isolate fatal errors in a consistent way.\n\nIt makes them easier to extract with regular expressions in log parsing tools.\n\nBUG\u003d309661\n\nReview URL: https://codereview.chromium.org/51383003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@231704 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "c788a690d8927632b13d3a4e9cfa494a440176cc",
      "tree": "1ae7d2a10844ef5c34e63ca005df830cec7897a9",
      "parents": [
        "141ef86f4abf255e578320bfe6e42006c251bc39"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Oct 28 14:40:29 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Oct 28 14:40:29 2013"
      },
      "message": "Set the Swarm Test encoding to UTF-8\n\nBy default Swarm assumes the encoding is ascii.\n\nR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/48863002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@231324 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "141ef86f4abf255e578320bfe6e42006c251bc39",
      "tree": "1b7abd1d8ef89ad1994464017ef2361807975811",
      "parents": [
        "afbd889f61c1cb92a2b08d5279bcf851124761a2"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Oct 24 16:45:45 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Oct 24 16:45:45 2013"
      },
      "message": "Set the priority in the correct location\n\nR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/40553002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@230741 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "afbd889f61c1cb92a2b08d5279bcf851124761a2",
      "tree": "897ffbfa0f78889ec274974840e912cbb9ad5ab7",
      "parents": [
        "87557b9bdcde6708f3bf77aa2f6f82c7930f6801"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Oct 21 13:09:55 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Oct 21 13:09:55 2013"
      },
      "message": "Fix config typo in load tests.\n\nR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/29783003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@229791 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "87557b9bdcde6708f3bf77aa2f6f82c7930f6801",
      "tree": "1bf54ee2508aea776b67cf51720271f0dc415573",
      "parents": [
        "f24e5c3a284b836668b956cbbe7d92c62c90f303"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 16 18:04:11 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 16 18:04:11 2013"
      },
      "message": "Convert an assert to a proper error message.\n\nThe assert is confusing and doesn\u0027t explain what the problem is. Hopefully the\nerror message is now slightly more informative.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/27165004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@228948 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "f24e5c3a284b836668b956cbbe7d92c62c90f303",
      "tree": "b2ec9ad34842e67705f2c7ef1fb867cfa7c23d53",
      "parents": [
        "672cd2b800afdd4b4fbd546192addbe97718db94"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Oct 11 21:16:21 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Oct 11 21:16:21 2013"
      },
      "message": "Use isolatestorage.Storage class in swarming.py instead of url_open calls.\n\nThat way swarming.py uses same isolate server protocol as the rest of the\ncode.\n\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/26124006\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@228254 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "672cd2b800afdd4b4fbd546192addbe97718db94",
      "tree": "aa5c66a51e43329374ceed0ec988e19aeacaae9f",
      "parents": [
        "76e0be4a94f581e6d21a1aaaa406e8a23e00cd40"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 08 17:49:33 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 08 17:49:33 2013"
      },
      "message": "Avoid uploading same content multiple times in upload_tree.\n\nUpload only items with unique hashes (regardless of file paths). Items that\nrepresent different files with same content are indistinguishable from point\nof view of isolate server.\n\nBUG\u003d\n\nReview URL: https://codereview.chromium.org/26525002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@227541 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "76e0be4a94f581e6d21a1aaaa406e8a23e00cd40",
      "tree": "68f0a675ca3f729f7d6ef95d7a86116ed37abbb6",
      "parents": [
        "7b5dae3d774200a9dd4d08465fc6587b017c3935"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Oct 04 14:36:47 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Oct 04 14:36:47 2013"
      },
      "message": "Create swarming load test.\n\nswarming_load_test_bot.py creates fake Swarming bots that fake running tasks.\nswarming_load_test_client.py creates fake Swarming tasks and wait for them to\ncomplete.\nThe goal here is to see how the server melts down, if it does, when a lot of\nconcurrent pending tasks occur.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/25530003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@227002 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "7b5dae3d774200a9dd4d08465fc6587b017c3935",
      "tree": "29169904811da4bf63c80cc0d8bf13e222895d3b",
      "parents": [
        "5010301d9a981e9097bfc89cb3ca848f5c6f864d"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Oct 03 16:59:59 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Oct 03 16:59:59 2013"
      },
      "message": "Refactor fetch implementation in isolateserver.py.\n\nMain changes:\n  * Extract multithreaded fetch implementation from DiskCache into new\n    FetchQueue class.\n  * Move decompression code from IsolateServer to Storage.\n  * Rearrange class order in isolateserver.py.\n\nBUG\u003d\n\nDO NOT COMMIT\n\nneeds tests\n\nReview URL: https://chromiumcodereview.appspot.com/25431003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226776 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "5010301d9a981e9097bfc89cb3ca848f5c6f864d",
      "tree": "76453cb0dd8740dd0cee51dd492721270aa70a3b",
      "parents": [
        "47f8c92a792374f9fc48f01f9e532a0aa0b3e613"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 02 22:46:12 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 02 22:46:12 2013"
      },
      "message": "Make Progress support an arbitrary number of columns.\n\nMake isolateserver_load_test use this, so the amount of data sent is used in the\nmiddle column.\n\nMake many Progress members protected.\n\nRemove QueueWithProgress.set_progress() and fix the constructors so it is not\nnecessary anymore.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/25478012\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226590 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "47f8c92a792374f9fc48f01f9e532a0aa0b3e613",
      "tree": "c02d7b3fc9628ccbaee6e4e42683162a4b74893a",
      "parents": [
        "54f416f4038978e3f550c28332f0a21b5f6d49fc"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 02 20:01:53 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Oct 02 20:01:53 2013"
      },
      "message": "Add ThreadPool.abort() to stop processing early.\n\nMake Progress more responsive in ThreadPool.join().\nChange update_item() to allow decrement.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/25478010\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226540 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "54f416f4038978e3f550c28332f0a21b5f6d49fc",
      "tree": "9cec332e204a84bb70a4e3dfe5fefbe8fcd2d730",
      "parents": [
        "891b4f80b392e3de167ddf9e80382cb4c20fd31a"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 22:54:47 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 22:54:47 2013"
      },
      "message": "Monkey patch httplib on python \u003c\u003d2.6.2 to make it work with \u0027requests\u0027 library.\n\nReview URL: https://chromiumcodereview.appspot.com/25615002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226325 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "891b4f80b392e3de167ddf9e80382cb4c20fd31a",
      "tree": "cb6511d970de959d641fa091098da524670591d8",
      "parents": [
        "d2ac7948ef393cecd8f201f3c3cf8839a387a3ff"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 20:57:33 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 20:57:33 2013"
      },
      "message": "Rename load_test to isolateserver_load_test and fix from r226265.\n\nMove graphing functions into utils/graph.py.  It will be reused by other load\ntest scripts.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/25536006\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226297 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "d2ac7948ef393cecd8f201f3c3cf8839a387a3ff",
      "tree": "84f4aac050ba8dfee22907cc67448c9c04208ab9",
      "parents": [
        "814d23f29bf388c76acff89fd99c32daaba63ba0"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 20:38:43 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 20:38:43 2013"
      },
      "message": "Update \u0027requests\u0027 lib to v2.0.\n\nNew version has a bunch of relevant fixes:\n  * Timeouts now apply to read time if stream\u003dFalse.\n  * Chunked encoding fixes.\n  * Better handling of streaming downloads.\n  * Improved streaming behaviour, particularly for compressed data.\n\nIt looks like Session object in new version copies cookie jar rather than holds\nreference to it. Thus new RequestEngine.reload_cookies method that is\ncalled whenever auth related cookies are added to original cookie jar.\n\nBUG\u003d\nR\u003dmaruel@chromium.org\n\nReview URL: https://codereview.chromium.org/25004007\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226291 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "814d23f29bf388c76acff89fd99c32daaba63ba0",
      "tree": "07f42e5f9c808b49176b27103166b981d07d3ff2",
      "parents": [
        "0895c61df27871d5ce9b5e0622c431bd1218547a"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 19:08:00 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 19:08:00 2013"
      },
      "message": "Fix running \u0027import run_isolated\u0027 at python interactive prompt.\n\nThis was breaking \u0027import swarming\u0027 since it imports run_isolated.\n\nswarming.py:\n- Rename manifest_hash to isolated_hash, the previous name was confusing.\n- Only add the data section if necessary, if .zip_and_upload() was called.\n- Assumes slave_os is already the proper key in PLATFORM_MAPPING_SWARMING.\n- Have polling quit sooner.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/25549003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226272 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "0895c61df27871d5ce9b5e0622c431bd1218547a",
      "tree": "d35cfbff3d6c61e12a41e0a594f63f0b05ee2e66",
      "parents": [
        "bcb966b4b8f17e4af607fd09b0cd6b6ebdf75651"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 18:48:57 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 18:48:57 2013"
      },
      "message": "Improve Progress.update_item() to make it simpler to understand.\n\nMake raw output explicit instead of being a side effect of index\u003dFalse.\nChange all defaults to False so only True arguments have to be specified.\nUse named arguments at all call sites to make the code clearer.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/25373007\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226271 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "bcb966b4b8f17e4af607fd09b0cd6b6ebdf75651",
      "tree": "dfc4b46fe29d1c7cb66d21d510cfff86d95140dc",
      "parents": [
        "561d4b21a707fea29865e56eb46bcfcea028a679"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 18:14:18 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Oct 01 18:14:18 2013"
      },
      "message": "Client side implementation of new /content-gs isolate protocol.\n\nReplaces existing /content protocol. Also refactor Storage to\nuse Item class to represent uploaded files instead of tuples.\n\nBUG\u003d289670\n\nReview URL: https://chromiumcodereview.appspot.com/25093003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@226265 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "561d4b21a707fea29865e56eb46bcfcea028a679",
      "tree": "2179e3ff11752b567b050ffbe7a765380f5396ac",
      "parents": [
        "2e306cfa79d163590b12bec3b660ac9c60e44253"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 26 21:08:08 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 26 21:08:08 2013"
      },
      "message": "Move file path functions into utils/file_path.py.\n\nThese are useful functions by themselves.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24813003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@225565 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "2e306cfa79d163590b12bec3b660ac9c60e44253",
      "tree": "cb6317c541d5fd40dfd086fde4553ec45885b035",
      "parents": [
        "7cdf1c0a787545096b3c0c66c950c02239152174"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 26 01:32:53 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 26 01:32:53 2013"
      },
      "message": "Add unit tests for Storage class.\n\nThey test Storage implementation separately from actual isolate server\nprotocol (provided by a StorageApi subclass).\n\nBUG\u003d289670\n\nReview URL: https://chromiumcodereview.appspot.com/24484009\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@225295 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "7cdf1c0a787545096b3c0c66c950c02239152174",
      "tree": "592e103068ae7238e9fcead750a1f4fadddfb2fc",
      "parents": [
        "8313050830e11bc09910dd4bd36eff2b7a77f8c2"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 25 00:24:16 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 25 00:24:16 2013"
      },
      "message": "Refactor upload_tree method.\n\nIt\u0027s a preparation for splitting isolateserver.py unit tests into\ntwo sets: tests of common Storage methods, and tests of concrete\nprotocol implementations.\n\nSuch separation will simplify adding tests for IsolateServerGS implementation\nthat uses direct Google Storage uploads.\n\nMain changes:\n  * Split StorageApi into abstract StorageApi class with low-level methods and\n    more high-level Storage class that uses StorageApi.\n  * upload_tree is now a method of Storage.\n  * It uses only two thread pools.\n  * upload_tree can be called multiple times, it will reuse same thread pools.\n  * It compress files only when uploading into *-gzip namespace.\n\nBUG\u003d289670\n\nReview URL: https://chromiumcodereview.appspot.com/24360012\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@225106 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "8313050830e11bc09910dd4bd36eff2b7a77f8c2",
      "tree": "b4e2e91eb9b00e7285c93bd46e3f7df9289ba48d",
      "parents": [
        "044327cd84a9f8d008aa871972e9641e2ca28e44"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 24 00:49:25 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 24 00:49:25 2013"
      },
      "message": "TaskChannel helper class to pass task results from thread pool tasks.\n\nReview URL: https://chromiumcodereview.appspot.com/24335010\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224848 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "044327cd84a9f8d008aa871972e9641e2ca28e44",
      "tree": "9986f35de1f75482e6b6b89f03219cc6b880ab33",
      "parents": [
        "e9403abed8fc4720141325057190690e3ca329c6"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sun Sep 22 19:51:07 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sun Sep 22 19:51:07 2013"
      },
      "message": "Make get_http_service recognize Google Storage domains.\n\nGoogle Storage URLs point to Google Storage servers that are different from\nAppEngine servers we used up to this point. In particular:\n  * One can not interactively authenticate into Google Storage.\n    If it returns 403 it\u0027s a fatal error. It happens when URL\u0027s signature\n    expires or bucket ACLs prevent read access, etc.\n  * Adding \u0027UrlOpenAttempt\u003d\u003cindex\u003e\u0027 query parameter to Google Storage URL\n    doesn\u0027t make sense and can break URL\u0027s signature.\n  * No need to use cookies with GS domains.\n  * GS upload URLs expect PUT requests, not POST.\n  * GS can return 408 error, that should be retried.\n\nBUG\u003d289670\n\nReview URL: https://chromiumcodereview.appspot.com/24198014\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224636 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "e9403abed8fc4720141325057190690e3ca329c6",
      "tree": "c888e3ec7500e8b833ef0d5cc89657c0c73e784c",
      "parents": [
        "73e9f9e74a89b5de73b4881a98c5338d8ca1bc6b"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 20 18:03:49 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 20 18:03:49 2013"
      },
      "message": "Autumn tools cleanup to increase general consistency across the scripts.\n\nDo not fail .isolated.stats with \u0027os\u0027 not being the current OS. This happens\nwhen a user wants to run a python script on a swarming slave running another OS.\nFix swarming.py\u0027s invocation of \u0027isolate.py archive\u0027 to specify the proper OS.\n\nRename internal uses of \u0027isolate.py hashtable\u0027 to \u0027isolate.py archive\u0027.\n\nAdd --os to run_example_swarm.py.\n\nRemove isolateserver-dev.appspot and chromium-swarm as defaults flag values\nrespectively for flags --isolate-server and --swarming. Sadly this means more\ntyping but most user do not want to use this value, so it is confusing. These\ndefault values were highly chromium-specific.\n\nUse the occasion to standardize the argument processing across all the tools.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24078028\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224429 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "73e9f9e74a89b5de73b4881a98c5338d8ca1bc6b",
      "tree": "12e16458c9a56e74055d76d2edf3bc47fa0a66d9",
      "parents": [
        "999a1fdfc320efd50b4445921738b5e7af4294ca"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 20 17:42:34 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 20 17:42:34 2013"
      },
      "message": "Add flag --no-log, rename --log_file to --log-file.\n\nrun_isolated.py logs by default, making it hard to disable logging. Create\n--no-log to make it easier to disable logging. Rename the argument from \u0027_\u0027 to\n\u0027-\u0027 to be consistent with the other flags.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23519013\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224420 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "999a1fdfc320efd50b4445921738b5e7af4294ca",
      "tree": "1c3fc7e6b00b7a012aa5158bbf98737d7f789364",
      "parents": [
        "385d73d3c7a86458f49f5c92af4745f2d7906c88"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 20 17:41:07 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 20 17:41:07 2013"
      },
      "message": "Fix wrong module for ConfigError.\n\nThis would cause an AttributeError instead of the desired ConfigError.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24146005\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224418 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "385d73d3c7a86458f49f5c92af4745f2d7906c88",
      "tree": "f81b331f7fca1a8a1061bf4f1dfc09b345845721",
      "parents": [
        "4f2ebe427fa4b88618275079725c3621a9e3ea0d"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 19 18:33:21 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 19 18:33:21 2013"
      },
      "message": "Includes \u0027version\u0027 and \u0027algo\u0027 to .isolated files.\n\n\u0027algo\u0027 forces the .isolated file to be externally consistent with the\nisolateserver storing the data. This is a stepping stone to reduce the\nhardcoding of hashlib.sha1.\n\n\u0027version\u0027 is useful if we ever screw up and need to extend the file format.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23583053\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224172 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "4f2ebe427fa4b88618275079725c3621a9e3ea0d",
      "tree": "d3f46c34987b7ac5a14ee7effb6929cca63bb6bc",
      "parents": [
        "35122bec978a37d4ee1bfb4ea4006a63e2fec06f"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 19 13:09:08 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 19 13:09:08 2013"
      },
      "message": "Add --isolated option to isolateserver.py download command.\n\nMake load_isolated() stricter. Also make it replace path to the native path\nformat so someone can download an .isolated tree from Windows to linux without\nproblem. This is useful for OS agnostic tasks, like a purely python job.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24130003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224118 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "35122bec978a37d4ee1bfb4ea4006a63e2fec06f",
      "tree": "5bd199919e800b82d4a0093b3d91f4bf6a77cc1a",
      "parents": [
        "4160164b890b55252eb6579d546f94c9adf22347"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 19 02:48:00 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 19 02:48:00 2013"
      },
      "message": "Refactor upload_tree method to be oblivious of IsolateServer implementation.\n\nIt\u0027s a preparation for introducing another IsolateServer implementation that\nuses direct Google Storage urls (instead of blobstore urls) and has a different\nupload flow.\n\nMain changes:\n  * StorageApi base class that implements high level storage logic on top of\n    abstract low level methods \u0027fetch\u0027, \u0027push\u0027, \u0027check_missing_files\u0027. It has\n    two implementations now, and soon I\u0027ll be adding a third one.\n  * Introducting |push_urls| concept. It\u0027s an orbitrary opaque object\n    associated with a file. It is passed from check_missing_files() to push().\n    It will be used to carry signed Google Storage upload URLs.\n  * Replacing zipping function with a generator. It\u0027s a step toward streaming\n    uploads support.\n  * Better doc strings, minor cleanup.\n\nBUG\u003d289670\n\nReview URL: https://chromiumcodereview.appspot.com/24246003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@224021 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "4160164b890b55252eb6579d546f94c9adf22347",
      "tree": "7e72f489a26995a95ccaffe2c9ecd72a8f00e571",
      "parents": [
        "8750e4b9c3f0f20a05cd127353587cb2c62a0e95"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 18 19:40:46 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 18 19:40:46 2013"
      },
      "message": "Move most of the run_isolated.py isolated parsing code to isolateserver.py.\n\nThis will be used later for download_isolated().\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23871004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223916 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "8750e4b9c3f0f20a05cd127353587cb2c62a0e95",
      "tree": "19a332340c08292c5635f71ce54532fe11fc9ea3",
      "parents": [
        "d1e20c9126828d47a778dd11f107260443048f94"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 18 02:37:57 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 18 02:37:57 2013"
      },
      "message": "Modify the datastore APIs to a streaming model.\n\nThey are reduced to two functions: .fetch() and .push(), both using generators.\n\nStripped WorkerPool, the caller has to manage tasks return values.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23450042\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223771 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "d1e20c9126828d47a778dd11f107260443048f94",
      "tree": "c3dc99ce682b5566bb1be0bc41ccfbefada5fccc",
      "parents": [
        "14550048398a09d9f148e39b1a805f5e2cc161bc"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 20:54:26 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 20:54:26 2013"
      },
      "message": "Move upload_hash_content_to_blobstore() into IsolateServer.\n\nIt is an implementation detail to make it protected.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23475054\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223682 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "14550048398a09d9f148e39b1a805f5e2cc161bc",
      "tree": "e03468561bbc805fcf94ccf44baae8a5a7bd5de0",
      "parents": [
        "781ccf6853784ac68843d317385a831aad21ad92"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 20:36:38 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 20:36:38 2013"
      },
      "message": "Remove many slow tests from the upload presubmit check.\n\nOn my machine, commit presubmit check takes 1:11 and upload presubmit check now\ntakes 15s, which is more reasonable. Note that the majority of this time is\npylint.\n\nIt\u0027ll make my colleagues happier.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23724040\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223679 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "781ccf6853784ac68843d317385a831aad21ad92",
      "tree": "4480a9cec46489c35d5c143c9acf551a18bbbc0f",
      "parents": [
        "be77f8cbd5e904502ec7f45749295b308b75ede6"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 19:39:47 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 19:39:47 2013"
      },
      "message": "Rename RemoteOperations to WorkerPool.\n\nUses AutoRetryThreadPool under the hood.\nFixes a bug where priority was inverted. :(\n\nRestrict WorkerPool lifetime with \u0027with\u0027 statements.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23506043\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223656 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "be77f8cbd5e904502ec7f45749295b308b75ede6",
      "tree": "7902ccacc61ca0b9e1f0b696971ac21572bd3a6b",
      "parents": [
        "af25485af8ad2f2fdf591e73cf47c249b6b10dea"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 18:21:53 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 18:21:53 2013"
      },
      "message": "Adds AutoRetryThreadPool which automatically retries tasks on exception.\n\nIt is inspired by RemoteOperations but this one is unit tested and actually\nworks.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23456034\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223638 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "af25485af8ad2f2fdf591e73cf47c249b6b10dea",
      "tree": "01ea0188cc869a7bd117930af48935097027750f",
      "parents": [
        "7b844a651a680db000f931762f4351141c5938e1"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 17:48:14 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 17:48:14 2013"
      },
      "message": "Move 4 functions from run_isolated.py to isolateserver.py.\n\nThis is to simplify the diff on a follow up CL.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23522059\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223634 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "7b844a651a680db000f931762f4351141c5938e1",
      "tree": "e2615d9d7ba53b3e2e9530f05a36905d6504cd11",
      "parents": [
        "9958e4a76698eba908e823c3d538f385f387d682"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 13:04:59 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 13:04:59 2013"
      },
      "message": "Reduce the hardcoding of the sha1 algorithm.\n\nWhile it\u0027s still not completely generic, it is somewhat more generic in it\u0027s\nimplementation w.r.t. the hashing algorithm used than it was.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24193002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223600 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "9958e4a76698eba908e823c3d538f385f387d682",
      "tree": "2bfa4a39b3dad339124950c5cec440fa61eb92cc",
      "parents": [
        "e45728deb0ec103ac6970135563ee3aa588939b0"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 00:01:48 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 17 00:01:48 2013"
      },
      "message": "Migrate exception classes from run_isolated to isolateserver.\n\nThis simplifies follow up CLs.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24078016\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223481 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "e45728deb0ec103ac6970135563ee3aa588939b0",
      "tree": "81e87529cdea2cf2ae2c251bf1dee826b0ca306e",
      "parents": [
        "11f541148b4d885dfab3d9edfe2cf324439c1d68"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Sep 16 23:23:22 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Sep 16 23:23:22 2013"
      },
      "message": "Various cleanup in run_isolated.py and isolateserver.py.\n\n- Rename Cache to DiskCache.\n- Make more function protected to reduce the visible API.\n- Split IsolateServer.fetch() from IsolateServer.retrieve() so the former can\n  eventually be used to retrieve files that won\u0027t be written to disk.\n- Have IsolateServer clean up the mess when a download fails instead of having\n  RemoteOperation do it.\n- Rename valid_file() to is_valid_file().\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23710061\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223467 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "11f541148b4d885dfab3d9edfe2cf324439c1d68",
      "tree": "9a7635f80a692cf533344f5633534487a7e1ce5d",
      "parents": [
        "2f952d8dfe1e176e5180db62b84d564bfeb029a8"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Sep 16 23:16:42 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Sep 16 23:16:42 2013"
      },
      "message": "Remove smoke test that access remote services from PRESUBMIT.py\n\nIt is problematic, as these services can be under load or god knows what could\nhappen. In practice we loose a bit of coverage but it is still there with the\ncanary master so it is not a big loss, and it will speed up significantly the\nCQ.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24147003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@223461 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "2f952d8dfe1e176e5180db62b84d564bfeb029a8",
      "tree": "766e75a4b0afab4ee2f64a46074b6710d864fc4e",
      "parents": [
        "b7e79a21bea459f781907db2d7e07bec9090f361"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 13 01:53:17 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 13 01:53:17 2013"
      },
      "message": "Rename isolate.py hashtable to archive.\n\nIt\u0027s much nicer and makes more sense. It\u0027s also coherent with isolateserver.py\narchive.\n\nInclude a follow up of r222945 with coding style.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/24134002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222953 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "b7e79a21bea459f781907db2d7e07bec9090f361",
      "tree": "eebf6e13e61a4fc2302e087ddb0a3d7decb5db7a",
      "parents": [
        "35a2dbda0a33f6cd51ebd2395b2828a27139f81d"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 13 01:24:56 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 13 01:24:56 2013"
      },
      "message": "Add code to download single files to isolateserver.py download.\n\nMove more code out of run_isolated.py to isolateserver.py.\n\nChange run_isolated.py from --remote to --isolate-server. This is more coherent\nwith the other scripts.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23903049\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222945 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "35a2dbda0a33f6cd51ebd2395b2828a27139f81d",
      "tree": "69c34e0e0ea7bff46c4005da0c6b97fbac811a34",
      "parents": [
        "7d1b1e3e8a206e5d11bdf61d44f3eb5b2339c6fe"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 13 01:01:51 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Sep 13 01:01:51 2013"
      },
      "message": "Pass correct path to cacert.pem to \u0027requests\u0027 library when running from zip.\n\nAlso add a tiny tool to build run_isolated.zip.\n\nBUG\u003d288028\nTBR\u003dmaruel@chromium.org\n\nReview URL: https://chromiumcodereview.appspot.com/23441058\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222944 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "7d1b1e3e8a206e5d11bdf61d44f3eb5b2339c6fe",
      "tree": "b4eb62d6ca1316218bea2781723be5f977d2afbb",
      "parents": [
        "dedbf49c16eaa06fc5b9455e0f2ab9a365632815"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 23:18:46 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 23:18:46 2013"
      },
      "message": "Use \u0027requests\u0027 library for HTTP requests instead of urllib2.\n\nAdvantages:\n  * Connection pooling.\n  * HTTPS certificate validation.\n  * Streaming downloads (chunked transfer encoding).\n\nBUG\u003d288028\n\nReview URL: https://chromiumcodereview.appspot.com/23532062\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222904 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "dedbf49c16eaa06fc5b9455e0f2ab9a365632815",
      "tree": "241617be8f19ef77bd6bd2297ba3c603e66f323b",
      "parents": [
        "2c66cb8d57e98d4633707541a1b69f2ae924bb96"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 20:42:11 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 20:42:11 2013"
      },
      "message": "Switch import flow between run_isolated.py and isolateserver.py.\n\nisolateserver.py becomes the base library to interact to an isolateserver\ninstance as a client, not run_isolated.py. swarming.py and isolate.py will then\nuse isolateserver.py as a library.\n\nThe transition is still incomplete, more code will be transitionned\nincrementally.\nThat\u0027s why shortcuts for ConfigError and MappingError are kept.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23672037\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222857 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "2c66cb8d57e98d4633707541a1b69f2ae924bb96",
      "tree": "84430f8ea4ad8b8a6079379505fd21abd54d5862",
      "parents": [
        "3e42ce8279efa166fb942c1b867dfe200407b8fb"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 20:10:05 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 20:10:05 2013"
      },
      "message": "Add \u0027requests\u0027 library to third_party.\n\nBUG\u003d288028\n\nReview URL: https://chromiumcodereview.appspot.com/24076010\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222845 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "3e42ce8279efa166fb942c1b867dfe200407b8fb",
      "tree": "7f595bf79a713e4dfde9b2f8197249ae9c5ceadc",
      "parents": [
        "043b76dfa910b0927146152d04980369aeb09f5c"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 18:36:59 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 18:36:59 2013"
      },
      "message": "Create IsolateServer in both run_isolated.py and isolateserver.py.\n\nThis is to eventually merge the code with isolateserver.py but this is a\nstepping stone so the CL is not too large. In the meantime it is a bit weird\nbecause there is two IsolateServer class but the class will eventually be moved\ninto isolateserver.py, which run_isolated.py will import.\n\nRemove --download support from run_isolated.py. It will be added back as\nisolateserver.py download subcommand later.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23851024\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222821 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "043b76dfa910b0927146152d04980369aeb09f5c",
      "tree": "ac7d427f992179d2d4b81396c12b4267d33780eb",
      "parents": [
        "0f08cb80f1a07c71187cea80ff6baf2b400b2ede"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 16:15:13 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Sep 12 16:15:13 2013"
      },
      "message": "Refactor utils.net to hide away urllib2 classes.\n\nIt\u0027s a preparation for replacing \u0027urllib2\u0027 with \u0027requests\u0027 library.\n\nMain changes:\n  * Thin abstraction layer on top of urllib2 calls (HttpRequest, HttpResponse and\n    RequestEngine classes).\n  * Extract AppEngine authentication code into its own class. It won\u0027t change\n    when switching to \u0027requests\u0027 (i.e. it will continue to use urllib2 since\n    it\u0027s how it\u0027s implemented in third party upload.py).\n  * Extract retry loop implementation into separate set of functions (to split\n    complexity of HttpService.request method).\n  * Modify unit tests to mock RequestEngine.perform_request instead of\n    urllib2 functions. It makes unit tests independend of actual low level\n    requests driver.\n\nBUG\u003d288028\n\nReview URL: https://chromiumcodereview.appspot.com/23548029\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@222791 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "0f08cb80f1a07c71187cea80ff6baf2b400b2ede",
      "tree": "0899b09b17b73651693be73ab5e8696b8c4b9284",
      "parents": [
        "1db62f0a3d8588522b1586bf676817792253cb17"
      ],
      "author": {
        "name": "earthdok@chromium.org",
        "email": "earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 04 13:55:15 2013"
      },
      "committer": {
        "name": "earthdok@chromium.org",
        "email": "earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Sep 04 13:55:15 2013"
      },
      "message": "Fix division by zero in run_test_cases.py\n\nMake sure that cluster size is \u003e\u003d 1. Previously it could be 0 if we had more\njobs than test cases, which lead to a division by zero.\n\nBUG\u003dNONE\nR\u003dmaruel@chromium.org\n\nReview URL: https://chromiumcodereview.appspot.com/23530025\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@221184 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "1db62f0a3d8588522b1586bf676817792253cb17",
      "tree": "7c65af8404a5c6d264faf5967a5e206648a2dd04",
      "parents": [
        "23d6fe2164e5e2e75fc0c3a2f6319c164f3edc09"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 03 18:07:06 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 03 18:07:06 2013"
      },
      "message": "Change Progress to print a line before the first item completed.\n\nOtherwise nothing would be printed before the first item is completed, which\ncould occasionally be long. Refactor threading_utils.Progress to be more\nversatile.\n\nMake load_test.py progress print the total amount of data transferred up to now.\nUseful to have a better sense of progress when using --max-size.\n\nRefactor the code to reduce closure usage. Add support for SI units in some\nparameters. Add json output.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23442012\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220978 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "23d6fe2164e5e2e75fc0c3a2f6319c164f3edc09",
      "tree": "90f4242b4f3f9392652d169173f8a139e4eceec2",
      "parents": [
        "8ac33a068e9de14b841f7e69b71fb19699a6eae1"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 03 17:20:04 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Sep 03 17:20:04 2013"
      },
      "message": "Fix run_swam_tests_on_swarm.py.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23494017\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220966 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "8ac33a068e9de14b841f7e69b71fb19699a6eae1",
      "tree": "712be5292e6a8e285acd9aa2c301ecb2274c5ad9",
      "parents": [
        "6736b06823c7fab7e1a7fb3d262b47698c8b90d9"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 31 13:44:37 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 31 13:44:37 2013"
      },
      "message": "Fix run_swarm_tests_on_swarm.\n\nIt somehow wasn\u0027t caught by pylint.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23691026\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220727 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "6736b06823c7fab7e1a7fb3d262b47698c8b90d9",
      "tree": "5210aa5571949409ead2855f528de32e37bdb0e0",
      "parents": [
        "c2bfef43299fdcdab2a1ffd5e8186879e64a1396"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 31 13:43:08 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 31 13:43:08 2013"
      },
      "message": "Update load_test to use Progress.\n\nMove Progress support code out of run_test_cases into threading_utils.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23597010\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220726 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "c2bfef43299fdcdab2a1ffd5e8186879e64a1396",
      "tree": "64e66f29cc12e03e7ae15f2a61b2245cf6f353eb",
      "parents": [
        "8ad3d8e52dfed976b0567225423c05a531f8c8e9"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 30 21:46:26 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 30 21:46:26 2013"
      },
      "message": "Add isolate server load test.\n\nWrote neat ascii histogram tool. I\u0027m pretty sure you\u0027ll love it.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23788002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220666 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "8ad3d8e52dfed976b0567225423c05a531f8c8e9",
      "tree": "33cc2343385ac457113bc09675151c00186d5c88",
      "parents": [
        "29029883e526d30c9aeaf08d73477540f6804cde"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 30 12:17:29 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 30 12:17:29 2013"
      },
      "message": "Remove stale code in smoke test.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23669005\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220562 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "29029883e526d30c9aeaf08d73477540f6804cde",
      "tree": "ef8b9fea247a525fe18170ec2e5408397e8b7a6a",
      "parents": [
        "b61979a4efee585ba69d1c8fad44061b9f2ef688"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 30 12:15:40 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 30 12:15:40 2013"
      },
      "message": "Improve isolate.py coherency.\n\nStop calling parser.enable_interspersed_args() and document the proper way to\nadd extraneous arguments.\n\nAdd unit test and improve its resiliency.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23464018\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220561 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "b61979a4efee585ba69d1c8fad44061b9f2ef688",
      "tree": "9a248abae73e9f87ff2260d54743a72983266a49",
      "parents": [
        "fb78d438df12e9f70402c5b74d8dc535c6e58c13"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Aug 29 15:18:51 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Aug 29 15:18:51 2013"
      },
      "message": "Move short_expression_finder.py into utils/\n\nIt\u0027s where it belongs.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23678003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220303 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "fb78d438df12e9f70402c5b74d8dc535c6e58c13",
      "tree": "43c7052209dce324e452f0cc2ed7db53b59f606a",
      "parents": [
        "2475849e50d43a76d5cb6fb01294afea27c0327b"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 21:22:40 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 21:22:40 2013"
      },
      "message": "Rename isolateserver_archive.py to isolateserver.py and convert to subcommand.\n\nAdded \u0027download\u0027 but haven\u0027t implemented it yet. It will mean moving the\nimplementation from run_isolated.py back into isolateserver.py, so this is a bit\nmore involved.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23618012\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220093 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "2475849e50d43a76d5cb6fb01294afea27c0327b",
      "tree": "7efc195822707a1e8d996642250a356af85d2823",
      "parents": [
        "9c1c7b5a375b4d032f22597bab96f3b11a9d7f19"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 19:10:54 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 19:10:54 2013"
      },
      "message": "Increase the wait time for a shard to 80 minutes.\n\nThis should help ensure we  don\u0027t drop tests due to them taken to long\nto start running, even when we are at full load.\n\nR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23462011\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220070 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "9c1c7b5a375b4d032f22597bab96f3b11a9d7f19",
      "tree": "a1b1a0c96b456a42bed693fca3df0a0e3b19e281",
      "parents": [
        "6b706210f57a217a11c22443b490a3ad26f0ebb1"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 19:04:36 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 19:04:36 2013"
      },
      "message": "Fix swarming.py\u0027s collect() to actually work.\n\nOtherwise it would always return None, ugh. Add regression tests.\n\nSilence output of an unrelated unit test.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23658005\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220069 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "6b706210f57a217a11c22443b490a3ad26f0ebb1",
      "tree": "824295a16ec1097268f285b311ddaced1db2223e",
      "parents": [
        "0437a73226a5f1a6fbef3eeec4d58564fdd664f9"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 15:03:46 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 28 15:03:46 2013"
      },
      "message": "Move url_open with dependencies to utils.net module.\n\nAlso add back run_isolated.zip support to swarming.py.\n\nBUG\u003d277130\n\nReview URL: https://chromiumcodereview.appspot.com/23657003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@220027 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "0437a73226a5f1a6fbef3eeec4d58564fdd664f9",
      "tree": "83fd3877251850497562b290e797ec871d25c5e8",
      "parents": [
        "246ff8791006c8bc84ee89a4c3883ecfe6ae9d17"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Aug 27 16:05:52 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Aug 27 16:05:52 2013"
      },
      "message": "Merge all swarm_*.py scripts into swarming.py.\n\nUse subcommand.py to implement the subcommands.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/22980008\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@219798 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "246ff8791006c8bc84ee89a4c3883ecfe6ae9d17",
      "tree": "c5f94962abd4fc202b4a3cc3f46da724678c5463",
      "parents": [
        "0be5ee785cc93b210f12263bac41ef71ad71e996"
      ],
      "author": {
        "name": "ckocagil@chromium.org",
        "email": "ckocagil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 26 22:11:48 2013"
      },
      "committer": {
        "name": "ckocagil@chromium.org",
        "email": "ckocagil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 26 22:11:48 2013"
      },
      "message": "More detailed error message on failed \"--gtest_list_tests\". This will inform sheriffs and authors about what this error means and what to look for in order to fix it.\n\nReview URL: https://chromiumcodereview.appspot.com/23380004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@219626 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "0be5ee785cc93b210f12263bac41ef71ad71e996",
      "tree": "e4211bacc34197e88bc47cabdbfb18d9b8daace4",
      "parents": [
        "a4326473d9d0ec29927eb043da53197211e7b80d"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 26 18:18:36 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 26 18:18:36 2013"
      },
      "message": "Fix run_isolated_smoke_test to work when /tmp is on a separate partition.\n\nThis was broken since r211201 when the current working directory is different\nfrom /tmp, it would throw an exception. This is necessary for performance\nconcerns.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23380003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@219566 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "a4326473d9d0ec29927eb043da53197211e7b80d",
      "tree": "6f2f2143ee09997d6b3f2d1b12be86a84b2bf8dc",
      "parents": [
        "3e97deb39b20ff74cd2e496c2ca0415547645284"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 24 02:05:41 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 24 02:05:41 2013"
      },
      "message": "Move some commonly used classes and functions into utils.tools module.\n\nThese includes:\n  OptionParserWithLogging\n  Profiler\n  disable_buffering\n  fix_python_path\n\nBUG\u003d277130\n\nReview URL: https://chromiumcodereview.appspot.com/23364009\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@219402 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "3e97deb39b20ff74cd2e496c2ca0415547645284",
      "tree": "29e0752533d34a8573fad22a2ba9bc5026ed7f68",
      "parents": [
        "b074b16c752e14fabf7c782d51507cd260dd9560"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 24 00:56:44 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Aug 24 00:56:44 2013"
      },
      "message": "Extract LRU dictionary implementation from Cache class and optimize it.\n\nCache class used expensive (in terms of algorithmic complexety) implementation\nof the LRU cache based on array. In particular \u0027touch\u0027 operation to update item\u0027s\nage had O(N) complexity.\n\nThis imlementation uses OrderedDict to store (key, value) pairs in order they are accessed.\nThus almost all LRU operations are O(1) on average.\n\nAlso move third_party/upload.py into third_party/rietveld/. That way all third party libraries are in their own directories.\n\nBUG\u003d277130\n\nReview URL: https://chromiumcodereview.appspot.com/22793015\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@219398 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "b074b16c752e14fabf7c782d51507cd260dd9560",
      "tree": "84b824bf5142bc47680b6027f5430b9dc80fd32f",
      "parents": [
        "85071060d9cfba5047cd2621b80c13fbcbaf283d"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Aug 22 17:55:46 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Aug 22 17:55:46 2013"
      },
      "message": "Extract threading related code into utils.threading_utils.\n\nIt includes ThreadPool, DeadlockDetector, Bit and num_processors().\n\nBUG\u003d277130\n\nReview URL: https://chromiumcodereview.appspot.com/22985016\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@219049 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "85071060d9cfba5047cd2621b80c13fbcbaf283d",
      "tree": "7ca80d29448e48121fd7d2fcca6a9ed520964c09",
      "parents": [
        "8b9d56b8f426469b9ccd71bb56e213be62236f80"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 21 23:37:45 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 21 23:37:45 2013"
      },
      "message": "Fix error in run_isolated when running from zip on Mac.\n\nFor some reason when running a script from zip package on Mac (and only on Mac)\nmain script\u0027s __file__ is set to None. That breaks some initialization code\nin run_isolated.py.\n\nR\u003dmaruel@chromium.org\nBUG\u003d276743\n\nReview URL: https://chromiumcodereview.appspot.com/23205028\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@218863 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "8b9d56b8f426469b9ccd71bb56e213be62236f80",
      "tree": "5cb7d23ae49a59b54df799ec74f0781d344855b5",
      "parents": [
        "eea5242c050b690ee152fbbbc89ae66b02f128eb"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 21 22:24:35 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 21 22:24:35 2013"
      },
      "message": "Convert run_isolated.py into zip package when uploading it to isolate server.\n\nIt makes it possible to split huge run_isolated.py into multiple files but still\nupload them all as a single executable file.\n\nAlso ensure all generated zip files do not depend on any file modification time or\ndirectory traversal order. That makes a zip package a function of content of zipped files\nonly.\n\nAnd finally fix \u0027content/contains\u0027 check for swarm_data.zip in swarm_trigger_step.py.\nIt used hexlified SHA1 instead of binary one.\n\nBUG\u003d276743\n\nReview URL: https://chromiumcodereview.appspot.com/23074006\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@218845 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "eea5242c050b690ee152fbbbc89ae66b02f128eb",
      "tree": "e387cd6c751dfa2966c60c73abbc2bd6e76ac821",
      "parents": [
        "3d671996d4e12703f75c9f314b32f64602e410c3"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 21 19:35:54 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 21 19:35:54 2013"
      },
      "message": "Use adaptive batch size when checking for existence of files on server.\n\nCheck for existence of 10 largest files first, than next 100, than next 200\nand so on. An assumption is that first query will detect most of missing files and\nwill do it fast (since query is small). Then script can continue checking for other\nmissing files (most of them should be in cache) while already uploading stuff in parallel.\n\nBUG\u003d157595\n\nReview URL: https://chromiumcodereview.appspot.com/22853010\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@218801 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "3d671996d4e12703f75c9f314b32f64602e410c3",
      "tree": "1d14145231097900da6ee020089e25725eb2ef18",
      "parents": [
        "e53225103c686f3c7099c5771cb506737100808c"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Aug 20 00:38:27 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Tue Aug 20 00:38:27 2013"
      },
      "message": "Add --version flag support.\n\nAdding --version to all tools will help with future proofing the tools from an\ninfrastructure standpoint since it\u0027ll be useful to determine if a flag is\nsupported or not depending on the tool\u0027s version.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23129017\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@218375 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "e53225103c686f3c7099c5771cb506737100808c",
      "tree": "de4e9c3e62d837d7ffed0a3efab499fb8e9d3b78",
      "parents": [
        "3e016bdf187fd80ced02b7db44adedc4a597914a"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 19 20:17:57 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 19 20:17:57 2013"
      },
      "message": "Switch trace_inputs.py and isolate.py to subcommand.py.\n\nAdd subcommand.py and fix_encoding.py in third_party/depot_tools.\n\nThis meant changing the CMD handlers a bit since in the case of subcommand.py,\nthe OptionParser is shared across all commands.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/22902007\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@218301 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "3e016bdf187fd80ced02b7db44adedc4a597914a",
      "tree": "487d608f5681a1e850c153f0eed70b47b3974da6",
      "parents": [
        "527f8d5dfe639f34caaf0da471cf154a53e8affc"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 16 17:41:59 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Aug 16 17:41:59 2013"
      },
      "message": "Use auto_stub.TestCase.mock instead of mocking manually.\n\nIt results in much cleaner code.\n\nR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23089006\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@218039 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "527f8d5dfe639f34caaf0da471cf154a53e8affc",
      "tree": "aabaa30de0e90b43d0ddd8692af48a2b46cead00",
      "parents": [
        "51336a32732d4eea3f07e44e4a62c4d8103ef29f"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 14 17:57:49 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Aug 14 17:57:49 2013"
      },
      "message": "Add --priority flag when triggering a Swarming task.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/23099004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@217581 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "51336a32732d4eea3f07e44e4a62c4d8103ef29f",
      "tree": "5773274e7f9810c23175829cdbc8de8286ace34e",
      "parents": [
        "3683afe23ae6ace07aef7d96668de9f38a843955"
      ],
      "author": {
        "name": "phajdan.jr@chromium.org",
        "email": "phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 12 17:38:13 2013"
      },
      "committer": {
        "name": "phajdan.jr@chromium.org",
        "email": "phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Mon Aug 12 17:38:13 2013"
      },
      "message": "Use even less jobs for heavy tasks.\n\nBUG\u003dnone\n\nReview URL: https://chromiumcodereview.appspot.com/22555006\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@217028 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "3683afe23ae6ace07aef7d96668de9f38a843955",
      "tree": "ce3b1543ae98012071e0326151f1da303f389476",
      "parents": [
        "c60aabe2367cea6a9cdecd895a9da5a0a381201d"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Jul 27 00:09:27 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Sat Jul 27 00:09:27 2013"
      },
      "message": "Get rid of chromium_default_blacklist().\n\nUse a list of regexp instead, and create a function to add the --trace-blacklist\nargument.\n\nAdd gen_blacklist() to precompile the regexes.\n\nThis is in preparation of reducing the number of references to chromium. It also\nstandardize the blacklists to be user configurable in all the scripts.\n\nTBR\u003dvadimsh@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20746002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@214004 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "c60aabe2367cea6a9cdecd895a9da5a0a381201d",
      "tree": "964ae9acc9f35559b65df5e530102cfa0dd65b09",
      "parents": [
        "52a7edad418b95ac44dd35dc98506330f0ffff9b"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 20:01:20 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 20:01:20 2013"
      },
      "message": "Move zip_profiler.py under tools since it\u0027s not a primary tool.\n\nSet its executable bit.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20452002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213678 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "52a7edad418b95ac44dd35dc98506330f0ffff9b",
      "tree": "e9e12077454f4fd1f50b9b09f79e9cc851fb9166",
      "parents": [
        "dcdbfc869299319379ec2fc2386e177d1c819440"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 18:57:49 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 18:57:49 2013"
      },
      "message": "Add --trace-blacklist support to isolate_test_cases and fix_test_cases.\n\nAdd explicit blacklist for .run_test_cases files in fix_test_cases_smoke_test.py\nIt is because .run_test_cases blacklist is a chromium specific filter.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20409002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213668 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "dcdbfc869299319379ec2fc2386e177d1c819440",
      "tree": "69a31e28978d2ed4813e4091c80975bebbc58e6a",
      "parents": [
        "565096ddaa16820667575991702aea7e41c7a3cb"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 18:54:57 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 18:54:57 2013"
      },
      "message": "Separate more chromium functionality.\n\nMake the base implementation more explicit.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20370003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213667 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "565096ddaa16820667575991702aea7e41c7a3cb",
      "tree": "abbc044a666f8e9e95d2138f55c0f6d1fb5bc8ab",
      "parents": [
        "f3e335f6213cc0e4b40e6efcb84c7fc50d91fa58"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 17:18:36 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 17:18:36 2013"
      },
      "message": "Refactor more chromium specific code out of the normal code path.\n\nMove \u0027seed\u0027 before \u0027disabled\u0027 as argument to make the chromium functions more\nsimilar.\n\nMake list_test_cases.py not ignore the --seed argument but keep its default to\n0.\n\nAdd more docstrings.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20350002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213648 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "f3e335f6213cc0e4b40e6efcb84c7fc50d91fa58",
      "tree": "733de4154db8b59d843bd486c3fa733294078c09",
      "parents": [
        "75c05b4fa4768dd300ae94755c04df23792cff95"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 16:02:23 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 16:02:23 2013"
      },
      "message": "swarm_trigger_step: Split chromium specific code into a separate function.\n\nReconstruct swarm_trigger_step.py to be a bit more generic, opening for\nargument based commands.\n\nMake the style a bit more coherent. Also makes the Manifest instance mutation\nmore obvious.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20334002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213639 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "75c05b4fa4768dd300ae94755c04df23792cff95",
      "tree": "8cb2f2594cfe8ad4e4426a5a7b555fb49f3bbee9",
      "parents": [
        "d0ef3329c41f0c547eedd30191c73b951284e8d4"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 15:51:48 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 15:51:48 2013"
      },
      "message": "Strip or separate many chromium-specific things.\n\nUrls are moved at the top as a constant so it is easier to override. Updated\ndocumentation urls to point at the wiki pages on the Swarming project.\n\nThis will make the separation of chromium branch easier.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20305003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213637 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "d0ef3329c41f0c547eedd30191c73b951284e8d4",
      "tree": "8a72a8b4806c912b03a3a0de04c4f9c50b4fa99e",
      "parents": [
        "86681e9a54c88972dba217b4f1007222dd8936a4"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 15:18:11 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 15:18:11 2013"
      },
      "message": "Fix a case where no test is run causing an internal exception.\n\nMake sure the thread doesn\u0027t crash.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/20326002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213633 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "86681e9a54c88972dba217b4f1007222dd8936a4",
      "tree": "25841f8a46720b4caffe737ae8eea052699cdf26",
      "parents": [
        "ea10198eec32f99c05971e26ac763bf8939c50be"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 13:34:09 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 25 13:34:09 2013"
      },
      "message": "Move all googletest related scripts into googletest/\n\nMove unit and smoke tests accordingly.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19917006\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213621 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "ea10198eec32f99c05971e26ac763bf8939c50be",
      "tree": "2c0095054d3b53518a1f45b8e757a03d450d02c8",
      "parents": [
        "b7c003d06a8a83c6dd8d271acf7c63497946221d"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 24 15:54:29 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 24 15:54:29 2013"
      },
      "message": "Fix two layering violations between run_test_cases and non googletest tools.\n\n1) Remove code duplication in OptionParser setup.\n\nMove class OptionParserWithLogging from run_test_cases.py into run_isolated.py.\nrun_isolated.py already had the same functionality but directly inside main().\nEnforces utf-8 encoding for the log files.\n\nFix isolate_merge.py to stop importing run_test_cases.py since it\u0027s unrelated.\n\n2) Move num_processor() from run_test_cases.py into run_isolated.py.\n\nFix isolateserver_archive.py to stop importing run_test_cases.py since it\u0027s\nunrealted.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19473003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213438 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "b7c003d06a8a83c6dd8d271acf7c63497946221d",
      "tree": "37e25d425cf42bd04cb420701d6626d1cc4ff5db",
      "parents": [
        "36a0381b19b0277d766c502a3319390e4f4c8247"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 24 13:04:30 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 24 13:04:30 2013"
      },
      "message": "Remove automatic copying fallback in run_isolated.\n\nThe cache *must* be on the same drive than the temporary directory used to run\nthe test. This is necessary otherwise the performance drop is just too bad.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/5707702298738688\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@213421 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "36a0381b19b0277d766c502a3319390e4f4c8247",
      "tree": "703baebe37c0a0ae22a8920bdebff331dfaab547",
      "parents": [
        "db18a94a727a8fb042de269d07fb104cde267527"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 19 19:26:18 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 19 19:26:18 2013"
      },
      "message": "Remove references to vlan.\n\nIt is not needed going forward.\n\nTBR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19516005\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212624 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "db18a94a727a8fb042de269d07fb104cde267527",
      "tree": "f9f1c8014eaf45d0fa6f965b3312ecee702e86c0",
      "parents": [
        "1d3a9138ba5b7b544b0f84cc58a44227d1a0fd06"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 19 15:48:49 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 19 15:48:49 2013"
      },
      "message": "Get rid of the \u0027No output!\u0027 generated by swarm.\n\nThe fix is to output a white line.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19813003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212588 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "1d3a9138ba5b7b544b0f84cc58a44227d1a0fd06",
      "tree": "0063f2067bfd4dd5b966bdc877a713aff4380d53",
      "parents": [
        "888651337c409d517c069336474a5bc8fa159af8"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 18 20:06:15 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 18 20:06:15 2013"
      },
      "message": "Reword a sentence so it doesn\u0027t trigger as a warning.\n\nOtherwise the compile step is yellow with warnings for things that are not\nreally a problem.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19638010\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212406 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "888651337c409d517c069336474a5bc8fa159af8",
      "tree": "f2b59da9c9c395fbbf1676f265898c429c321700",
      "parents": [
        "3a882fda0433bb445f8cd5658d3e10421c583b1e"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 18 15:25:52 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 18 15:25:52 2013"
      },
      "message": "Temporary work around r212342.\n\nThis will be removed once swarm_client is rolled into chromium and LKGR is\nupdated which may be a few days/week.\n\nTBR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19672008\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212360 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "3a882fda0433bb445f8cd5658d3e10421c583b1e",
      "tree": "320e2d4da4f4f1a6dea72ea090a8f6fc39355c5a",
      "parents": [
        "77a1e45dc63951bde82dbcf637ba0192a4bcc803"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 18 13:34:51 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 18 13:34:51 2013"
      },
      "message": "Increase Time to Retrieve Shard Results.\n\nIncrease the time from 6 minutes to 40 minutes to ensure that we\nrarely have shards dropped due to this. Also log errors when shards\nare dropped this way to ensure it is explained why the shard is missing.\n\n\nR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19637004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212342 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "77a1e45dc63951bde82dbcf637ba0192a4bcc803",
      "tree": "50c8d88fa52a17622f132e0a6990cbb521ec01a4",
      "parents": [
        "fba3e59635fab06ce7069031bc7c66663aaa6942"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 19:59:09 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 19:59:09 2013"
      },
      "message": "Print the number of results left to get in swarm_get_results.py\n\nTBR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19593005\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212118 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "fba3e59635fab06ce7069031bc7c66663aaa6942",
      "tree": "3946775dedec15af4036261bdedb5d47879c6a46",
      "parents": [
        "43c0e4daa3329b284f055b7c82f53e742ecdd3ff"
      ],
      "author": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 18:57:26 2013"
      },
      "committer": {
        "name": "csharp@chromium.org",
        "email": "csharp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 18:57:26 2013"
      },
      "message": "Add additional logging to swarm_get_results.py\n\nThis is to help track down the missing shards and will be removed later.\n\nTBR\u003dmaruel@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19531003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212101 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "43c0e4daa3329b284f055b7c82f53e742ecdd3ff",
      "tree": "9a6be92d1f1a4193e18e3b789f7a35767500af87",
      "parents": [
        "9d27eeb8f415100a8088c66d9621be2e5f3412dc"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 17:59:29 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 17:59:29 2013"
      },
      "message": "Move PLATFORM_MAPPING as a constant.\n\nThis reduce constants duplication.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19484004\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212087 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "9d27eeb8f415100a8088c66d9621be2e5f3412dc",
      "tree": "9079ab6c880ce140e70c878ada66578f0c97bee2",
      "parents": [
        "80f73005be989b2c51271160ea4a2a60f8c04bcc"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 17:57:57 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Wed Jul 17 17:57:57 2013"
      },
      "message": "Deletes stale run_tha_test* directories.\n\nFailed run_isolated.py may leave directories behind. Make sure they get\neventually deleted. Otherwise they can cause problems like reaching the limits\nof hardlinks on a NTFS partition.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19484003\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@212086 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "80f73005be989b2c51271160ea4a2a60f8c04bcc",
      "tree": "969346956e06d865c1311b385bf56df71178d884",
      "parents": [
        "140d6f8986f7105c40251b1747a371735fe1ec57"
      ],
      "author": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 12 14:52:44 2013"
      },
      "committer": {
        "name": "vadimsh@chromium.org",
        "email": "vadimsh@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 12 14:52:44 2013"
      },
      "message": "Use socket read timeout when downloading files from isolate server.\n\nReview URL: https://chromiumcodereview.appspot.com/18750008\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@211397 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "140d6f8986f7105c40251b1747a371735fe1ec57",
      "tree": "5a63fc9667203a9cc044ef3129be6e76e085b1c7",
      "parents": [
        "ba6489b085c6862ce38177583ac9eaa6cbdce7e3"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 12 13:29:23 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Fri Jul 12 13:29:23 2013"
      },
      "message": "Stop forcibly decorating output.\n\nThese fake gtest wrapping lines generated by swarm are not needed.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/18755008\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@211389 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "ba6489b085c6862ce38177583ac9eaa6cbdce7e3",
      "tree": "f4e869bd57169c1d3d3e1ba3e96da286b0b6d8c5",
      "parents": [
        "4d97b75dea76ae8991570a2043ae414f0bea4861"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 11 20:23:33 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 11 20:23:33 2013"
      },
      "message": "Add HARDLINK_WITH_FALLBACK which falls back to copy and change HARDLINK meaning.\n\nChange HARDLINK to not have implicit fallback.\nUpdate all callers to fallback for now. A separate CL will remove the fallback.\n\nR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/5681726336532480\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@211201 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "4d97b75dea76ae8991570a2043ae414f0bea4861",
      "tree": "3f42278d5acf8081c8313aee074c6370bcb1f45e",
      "parents": [
        "d996a304987907c91266e599b87aae4d8594a1a0"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 11 17:14:07 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 11 17:14:07 2013"
      },
      "message": "Revert r211136 \"Experiment with blacklisting \u0027~\u0027 in COOKE_FILE.\"\n\nIt seems there\u0027s a misconfiguration on one of the buildbot slave. Investigation\ncan be done without having this assert in.\n\nTBR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19059002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@211141 0039d316-1c4b-4281-b951-d872f2087c98\n"
    },
    {
      "commit": "d996a304987907c91266e599b87aae4d8594a1a0",
      "tree": "1cee4167e4947e5a978ea9dc23bf5df3118e2028",
      "parents": [
        "ea769023ab1956b6c0352b0681b68c0db6e503fb"
      ],
      "author": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 11 16:32:56 2013"
      },
      "committer": {
        "name": "maruel@chromium.org",
        "email": "maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98",
        "time": "Thu Jul 11 16:32:56 2013"
      },
      "message": "Experiment with blacklisting \u0027~\u0027 in COOKE_FILE.\n\nThis CL is meant to be reverted once I see the failure on the canary slave.\n\nTBR\u003dcsharp@chromium.org\nBUG\u003d\n\nReview URL: https://chromiumcodereview.appspot.com/19057002\n\ngit-svn-id: svn://svn.chromium.org/chrome/trunk/tools/swarm_client@211136 0039d316-1c4b-4281-b951-d872f2087c98\n"
    }
  ],
  "next": "ea769023ab1956b6c0352b0681b68c0db6e503fb"
}
