)]}'
{
  "log": [
    {
      "commit": "0eb35cbe5096128e4a760aca6842ecdbea5baf1a",
      "tree": "6134f979145140346b3eeeacfd12cbd6572f32d3",
      "parents": [
        "ce201a5311c2fe90dce479ee12c078cd26ccc0c4"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Tue Nov 19 18:46:29 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "chirayudesai1@gmail.com",
        "time": "Thu Nov 21 06:03:22 2013 +0000"
      },
      "message": "Fix some python3 encoding issues\n\n* Add .decode(\u0027utf-8\u0027) where needed\n* Add \u0027b\u0027 to `open` where needed, and remove where unnecessary\n\nChange-Id: I0f03ecf9ed1a78e3b2f15f9469deb9aaab698657"
    },
    {
      "commit": "ce201a5311c2fe90dce479ee12c078cd26ccc0c4",
      "tree": "df5cde7fb813c47ff5c488d62fce1e92900db871",
      "parents": [
        "12fd10c20115046dcd2fbe468a45e566f38ffbc9"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Oct 16 14:42:42 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Oct 16 14:42:42 2013 -0700"
      },
      "message": "Fix a small whitespace consistency issue\n\nChange-Id: Ie98c79833ca5e7ef71666489135f7491223f779c\n"
    },
    {
      "commit": "12fd10c20115046dcd2fbe468a45e566f38ffbc9",
      "tree": "071b7878cdcf5ff17b094c8158cf0654efbba1fd",
      "parents": [
        "fbd3f2a10bf4ddd1f001543c6262c6866a84f0a1",
        "a17d7af4d9dd9165935a26a9971faed2c05bc278"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Oct 16 21:41:33 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 16 21:41:33 2013 +0000"
      },
      "message": "Merge \"Dan\u0027t accessing attr of None (`manifest` subcmd)\""
    },
    {
      "commit": "a17d7af4d9dd9165935a26a9971faed2c05bc278",
      "tree": "0ce989ff6a876bf78100f00bbf0ed9d6f1e1830e",
      "parents": [
        "37128b6f709410763f85d112a1a3e6f9e42e1338"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Oct 16 14:38:09 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Oct 16 14:38:09 2013 -0700"
      },
      "message": "Dan\u0027t accessing attr of None (`manifest` subcmd)\n\nIf d.remote is None, this code failed for obvious reasons.  This is a\nsimple fix.\n\nChange-Id: I413756121e444111f1e3c7dc8bc8032467946c13\n"
    },
    {
      "commit": "fbd3f2a10bf4ddd1f001543c6262c6866a84f0a1",
      "tree": "998e83b44047d48430711b3a918905a2b04dd45b",
      "parents": [
        "37128b6f709410763f85d112a1a3e6f9e42e1338"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Oct 15 12:59:00 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Oct 15 12:59:00 2013 -0700"
      },
      "message": "Only check merge destination if it isn\u0027t None\n\nChange-Id: Ifb1dcd07142933489e93a1f4f03e38289087b609\n"
    },
    {
      "commit": "37128b6f709410763f85d112a1a3e6f9e42e1338",
      "tree": "b87eceeed61ef08a77e6ded4989ad46cff2ce0b0",
      "parents": [
        "143b4cc992b3602b56f1904c4a030a933b01ccc1"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Oct 15 10:48:40 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Oct 15 10:48:40 2013 +0900"
      },
      "message": "Fix indentation\n\ngit-repo uses 2 space indentation.  A couple of recent changes\nintroduced 4 space indentation in some modules.\n\nChange-Id: Ia4250157c1824c1b5e7d555068c4608f995be9da\n"
    },
    {
      "commit": "143b4cc992b3602b56f1904c4a030a933b01ccc1",
      "tree": "7f2835fb313998e33394aad72dbe05b72a4204b7",
      "parents": [
        "53263d873d16220d3b77302dc98cc35c4a5558ef",
        "7487992bd33d5cbf314d234c13a085c56200b33e"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Oct 15 01:40:07 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 15 01:40:08 2013 +0000"
      },
      "message": "Merge \"Better handling of duplicate default\""
    },
    {
      "commit": "53263d873d16220d3b77302dc98cc35c4a5558ef",
      "tree": "7391f540301bdc112ae88f04cfe49a3f378f274d",
      "parents": [
        "b25ea555c39cd500740acb74fa9f1dab71588266",
        "3a2a59eb87b58a4b5a26349434db322846cb6b57"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Oct 10 18:42:59 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 10 18:42:59 2013 +0000"
      },
      "message": "Merge \"repo: use explicit Python executable to run main.py\""
    },
    {
      "commit": "7487992bd33d5cbf314d234c13a085c56200b33e",
      "tree": "51cace1031fb93f10ae6fe2c7dc0bc4e897539ab",
      "parents": [
        "e76efdd7b342577c40aa271fa5ded9d66a783a9b"
      ],
      "author": {
        "name": "Julien Campergue",
        "email": "julien.campergue@parrot.com",
        "time": "Wed Oct 09 14:38:46 2013 +0200"
      },
      "committer": {
        "name": "Julien Campergue",
        "email": "julien.campergue@parrot.com",
        "time": "Thu Oct 10 18:14:27 2013 +0200"
      },
      "message": "Better handling of duplicate default\n\nCurrently, an error is raised if more than one default is defined.\n\nWhen including another manifest, it is likely that a default has\nbeen defined in both manifests.\n\nDon\u0027t raise an error if all the defaults defined have the same\nattributes.\n\nChange-Id: I2603020687e2ba04c2c62c3268ee375279b34a08\nSigned-off-by: Julien Campergue \u003cjulien.campergue@parrot.com\u003e\n"
    },
    {
      "commit": "b25ea555c39cd500740acb74fa9f1dab71588266",
      "tree": "582f1552132c86f08b8934d81b59a8d743619cd7",
      "parents": [
        "3bfd72158c11583213037ddfe5224c2038288383",
        "1e7ab2a63f7ec53aa649015dff8d46ad2501d993"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Oct 10 16:08:42 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 10 16:08:42 2013 +0000"
      },
      "message": "Merge \"Respect remote aliases\""
    },
    {
      "commit": "3bfd72158c11583213037ddfe5224c2038288383",
      "tree": "7065b7e5d905aac5e1474c2b2069629a0d52c86e",
      "parents": [
        "59b31cb6e02b68450f2a5f96bdeffc2a7452d98c"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon Sep 30 15:54:38 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Oct 10 09:06:38 2013 -0700"
      },
      "message": "Don\u0027t upload when dest branch is not merge branch\n\nExample:\n- `repo init -b master` / sync a project\n- In one project: `git checkout -b work origin/branch-thats-not-master`\n- make some changes, `git commit`\n- `repo upload .`\n- Upload will now be skipped with a warning instead of being uploaded to\n  master\n\nChange-Id: I990b36217b75fe3c8b4d776e7fefa1c7d9ab7282\n"
    },
    {
      "commit": "59b31cb6e02b68450f2a5f96bdeffc2a7452d98c",
      "tree": "fa64d25f4b75ac03909a0fc90dddcc4d232c6627",
      "parents": [
        "e76efdd7b342577c40aa271fa5ded9d66a783a9b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 08 23:10:52 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 08 23:14:29 2013 -0700"
      },
      "message": "don\u0027t pass project revision to UploadForReview\n\nPassing a project revisionExpr to UploadForReview will cause it to\ntry to push to refs/for/\u003csha\u003e if the revision points to a sha\ninstead of a branch.  Pass None for dest_branch if no destination\nbranch has been specified, which will cause UploadForReview to\nupload to the merge branch.\n\nThere is room for further improvement, the user prompts will\nstill print \"Upload project \u003cproject\u003e to remote branch \u003csha\u003e\",\nand then upload to the merge branch and not the sha, but that\nis the same behavior that was in 1.12.2.\n\nChange-Id: I06c510336ae67ff7e68b5b69e929693179d15c0b\n"
    },
    {
      "commit": "1e7ab2a63f7ec53aa649015dff8d46ad2501d993",
      "tree": "511ced99493616dc55231a95885f670407becd3a",
      "parents": [
        "e76efdd7b342577c40aa271fa5ded9d66a783a9b"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Oct 08 17:26:57 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Oct 08 17:26:57 2013 -0700"
      },
      "message": "Respect remote aliases\n\nPreviously, change I7150e449341ed8655d398956a095261978d95870\nhad broken alias support in order to fix the manifest command to keep\nit from spitting projects that point to an alias that wasn\u0027t recorded.\nThis commit reverts that commit and instead solves the issue more\ncorrectly, outputting the alias in the remote node of the manifest and\nrespecting that alias when outputting the list of projects.\n\nChange-Id: I941fc4adb7121d2e61cedc5838e80d3918c977c3\n"
    },
    {
      "commit": "e76efdd7b342577c40aa271fa5ded9d66a783a9b",
      "tree": "0dbd051a05bd41dabe8ad110d14f7e4f7a62f9dc",
      "parents": [
        "730ce4c3c2128b489176513253c1f30b378c694c",
        "edd0151a2682bac1dfd27aae1f66e58d40dcf0a8"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Sep 27 17:28:44 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 27 17:28:45 2013 +0000"
      },
      "message": "Merge \"Accept all UTF-8 committer names\""
    },
    {
      "commit": "730ce4c3c2128b489176513253c1f30b378c694c",
      "tree": "05a4bb374c18199cbe5a0d2f4f24644a21a332fc",
      "parents": [
        "745a39ba3dca7699ac057887e79deeb47e2bf8a5",
        "5e0ee145759b4a197bea347ad77e1ad1609efd32"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Sep 27 17:28:07 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 27 17:28:08 2013 +0000"
      },
      "message": "Merge \"Do not use print_function from __future__\""
    },
    {
      "commit": "745a39ba3dca7699ac057887e79deeb47e2bf8a5",
      "tree": "03681b89e5e20230249468002e208622eb92a02e",
      "parents": [
        "efc986c5081fc9a504b698672d955300a99f24bb"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Jun 05 13:16:18 2013 -0700"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Sep 27 19:15:34 2013 +0900"
      },
      "message": "Assume http upload if ssh_info cannot be parsed\n\nWhen uploading a change for review, we sometimes request /ssh_info to\nget the correct port number for uploading via ssh (regardless of\nwhether or not we intend to upload over ssh).\n\nIf we have trouble accessing /ssh_info (for authentication reasons,\netc), we now press on under the assumption that we will upload via http\ninstead of aborting.\n\nChange-Id: Ica6bbeac1279e89424a903529649b7f4af0b6937\n"
    },
    {
      "commit": "efc986c5081fc9a504b698672d955300a99f24bb",
      "tree": "8aa6ca5b14668fac22bdbc0230fc092ca2f6d71a",
      "parents": [
        "70df18944a667329ec894a1df1e77381c5b0c09a",
        "351fe2c793437e1d8a0b222f8478c74cf60ae034"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Sep 27 02:24:39 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 27 02:24:39 2013 +0000"
      },
      "message": "Merge changes I4b77af22,Ib5bc2de5\n\n* changes:\n  Sync: Improved error message when manifest server RPC call fails\n  Sync: Print name of manifest server used for smart sync/smart tag\n"
    },
    {
      "commit": "edd0151a2682bac1dfd27aae1f66e58d40dcf0a8",
      "tree": "222d256eed627946f07faf185db20d705cb8a790",
      "parents": [
        "70df18944a667329ec894a1df1e77381c5b0c09a"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Sep 26 12:59:58 2013 -0700"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Sep 27 00:35:35 2013 +0000"
      },
      "message": "Accept all UTF-8 committer names\n\nChange-Id: I7d9d49a8bacf2dc332614d26cdfcc905be7a5290\n"
    },
    {
      "commit": "5e0ee145759b4a197bea347ad77e1ad1609efd32",
      "tree": "d02a14fc378797d50140fb80f22c6e0e88d5544c",
      "parents": [
        "70df18944a667329ec894a1df1e77381c5b0c09a"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Sep 26 15:50:49 2013 -0700"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Sep 27 09:32:02 2013 +0900"
      },
      "message": "Do not use print_function from __future__\n\nPython 2.4 and 2.5 do not have a print_function available, so we need a\ncompatible print function for displaying an error message when the user\nhas an older version of Python.\n\nChange-Id: I54d7297be98bb53970e873b36c6605e6dad386c3\n"
    },
    {
      "commit": "70df18944a667329ec894a1df1e77381c5b0c09a",
      "tree": "faff1670b73fb87ec417f79ff0cf2309274bb23e",
      "parents": [
        "b6a16e6390b12b019a7e5e297639e41310375c93",
        "0836a22d38f4fa29d3cbc543fcd7a42813ec052d"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Sep 26 16:30:01 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 26 16:30:02 2013 +0000"
      },
      "message": "Merge \"Wait for git-remote-persistent-https -print_config to exit\""
    },
    {
      "commit": "0836a22d38f4fa29d3cbc543fcd7a42813ec052d",
      "tree": "c7baceadf54c9021ccc729180fab8c41b49990eb",
      "parents": [
        "bc0308478bc98d9b14d0b8f79ad030f474adcc6f"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Sep 25 17:46:01 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Sep 25 17:46:01 2013 -0700"
      },
      "message": "Wait for git-remote-persistent-https -print_config to exit\n\nChange-Id: I5ab96e7c8575682217d440ddc52ecfdc8c35f179\n"
    },
    {
      "commit": "b6a16e6390b12b019a7e5e297639e41310375c93",
      "tree": "1b792452702a63627789129637d00b47d888b32d",
      "parents": [
        "bc0308478bc98d9b14d0b8f79ad030f474adcc6f"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Sep 25 15:06:09 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Sep 25 15:07:22 2013 -0700"
      },
      "message": "Give the node _Default class a destBranchExpr\n\nThis is to avoid the following AttributeError:\n\nline 681, in _ParseProject\nAttributeError: \u0027_Default\u0027 object has no attribute \u0027destBranchExpr\u0027\n\nChange-Id: Ia9f7e2cce1409d22d71bc8a74b33edf2b27702ca\n"
    },
    {
      "commit": "351fe2c793437e1d8a0b222f8478c74cf60ae034",
      "tree": "9eb3b9ada1de282765919e083c49f06295a42f30",
      "parents": [
        "fb99c719390196e35c27f30f875c1b796c307585"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Sep 25 17:54:26 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Sep 25 19:12:13 2013 +0900"
      },
      "message": "Sync: Improved error message when manifest server RPC call fails\n\nWhen the RPC call fails, the error message returned by the server\nis printed, but it is not obvious that this is caused by RPC call\nfailure.\n\nPrefix the error message with a descriptive message that explains\nwhat went wrong.\n\nChange-Id: I4b77af22aacc2e9843c4df9d06bf54e41d9692ff\n"
    },
    {
      "commit": "fb99c719390196e35c27f30f875c1b796c307585",
      "tree": "2dbe72ac9fed4f4b2376e029c6268993d5f74a8c",
      "parents": [
        "bc0308478bc98d9b14d0b8f79ad030f474adcc6f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Sep 25 11:09:34 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Sep 25 19:12:06 2013 +0900"
      },
      "message": "Sync: Print name of manifest server used for smart sync/smart tag\n\nWhen syncing using smart sync or smart tag mode, print the url of\nthe manifest server that is being used.\n\nThis is useful in organisations that have multiple manifest servers\nused in different manifest branches.\n\nChange-Id: Ib5bc2de5af6f4a942d0ef735c65cbc0721059a61\n"
    },
    {
      "commit": "3a2a59eb87b58a4b5a26349434db322846cb6b57",
      "tree": "cb8da8261bd7efe57a00c2488fc9ece582062b9c",
      "parents": [
        "45d21685b93f80b67239849b2d2cfe6b217e335a"
      ],
      "author": {
        "name": "anatoly techtonik",
        "email": "techtonik@gmail.com",
        "time": "Sat Sep 21 19:29:10 2013 +0300"
      },
      "committer": {
        "name": "anatoly techtonik",
        "email": "techtonik@gmail.com",
        "time": "Sat Sep 21 20:03:57 2013 +0300"
      },
      "message": "repo: use explicit Python executable to run main.py\n\nSmall step to support non-POSIX platforms.\n\nChange-Id: I3bdb9c82c2dfbacb1da328caaa1a406ab91ad675\n"
    },
    {
      "commit": "bc0308478bc98d9b14d0b8f79ad030f474adcc6f",
      "tree": "d9f79e138ab9e4ec19282ebfa11f20ea8ecdc854",
      "parents": [
        "610d3c4e46471c8db555026969bb3e2eb75102f0"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon Jul 01 11:05:32 2013 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon Jul 01 11:22:01 2013 -0700"
      },
      "message": "Update gpg key for cco3@android.com\n\ncco3@android.com has a new gpg key, so this needs to be updated in the\nrepo scripts so that he can sign updates.\n\nChange-Id: I9f058263b35bd027502d6e3b814d7aeb801a1e6e\n"
    },
    {
      "commit": "610d3c4e46471c8db555026969bb3e2eb75102f0",
      "tree": "379579d96906f0f71538defffa24a0d28b72b189",
      "parents": [
        "033a7e91de4e15c7da96f4ab21454c5f6e3b2fb6"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Mon Jun 24 14:02:12 2013 +0530"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Jun 28 00:29:11 2013 +0000"
      },
      "message": "upload: fix display of destination branch for SingleBranch\n\nThe command `repo upload --cbr -D \u003csome branch\u003e` will display\nthe default revision, and not the actual destination branch.\n\nFix that and display the branch to which the change will be\nuploaded to.\n\nChange-Id: I712ed0871c819dce6774c47254dac4efec4532e0\n"
    },
    {
      "commit": "033a7e91de4e15c7da96f4ab21454c5f6e3b2fb6",
      "tree": "24ce7b17792615dff6a2cf8546448a88ab9d1d21",
      "parents": [
        "854f2b6ef4f9ea1c304b2e77d552b930b28e7053"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Thu Jun 13 21:14:48 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Thu Jun 13 21:14:48 2013 +0530"
      },
      "message": "DownloadPatchSet: fetch the change only, and nothing else.\n\n* Previously, it would run `git fetch \u003cremote.name\u003e \u003cchange refspec\u003e\n  \u003cremote.fetch\u003e, which would fetch all the branches, even if \u0027sync-c\u0027\n  was set to true in the manifest.\n* Fix that, since all it needs to fetch is the change that was asked\n  for, and nothing else.\n* For some more info, refer to the discussion on:\n  I42a9d419b51f5da03f20a640ea68993cda4b6500\n\nChange-Id: Ibc801695d56fc16e56f999e0f61393f54461785f\n"
    },
    {
      "commit": "854f2b6ef4f9ea1c304b2e77d552b930b28e7053",
      "tree": "17c26004548ed39b2cfee350a63fe283148b445a",
      "parents": [
        "db2ad9dfce438dae14fed0a62b37f0028ee98ad1",
        "a892b1006b5b7193262f3783b9678e2c76978a9b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jun 11 13:58:47 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 11 13:58:47 2013 +0000"
      },
      "message": "Merge \"sync: assign manifest_name earlier\""
    },
    {
      "commit": "a892b1006b5b7193262f3783b9678e2c76978a9b",
      "tree": "b5834be69d2578788a314e269f684bc86d8d8e6b",
      "parents": [
        "ef668c92c2c87c45df02bf1609a89e4479bbb30c"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Tue Jun 11 14:18:46 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Tue Jun 11 14:18:58 2013 +0530"
      },
      "message": "sync: assign manifest_name earlier\n\n* manifest_name was never set if opt.smart_sync or opt.smart_tag is used.\n* Set it earlier, so that the code handles it correctly when it is None.\n* An UnboundLocalError is raised if running `repo sync` without any options:\n  local variable \u0027manifest_name\u0027 referenced before assignment\n* This fixes the above regression caused by commit\n  53a6c5d93a8ba708208826dab64c55fe97f06d0b\n\nChange-Id: I57086670f3589beea8461ce0344f6ec47ab85b7b\n"
    },
    {
      "commit": "db2ad9dfce438dae14fed0a62b37f0028ee98ad1",
      "tree": "6f2dc2aef2456c75759cfe9c845a9d4064ff8bc3",
      "parents": [
        "ef668c92c2c87c45df02bf1609a89e4479bbb30c"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Tue Jun 11 13:42:25 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Tue Jun 11 08:21:10 2013 +0000"
      },
      "message": "Fix urllib.parse (urlparse) handling\n\nRevert \"Fix \"\u0027module\u0027 object is not callable\" error\", and fix it properly.\n\n* The urlparse module is renamed to urllib.parse in Python 3.\n* This commit fixes the code to use \"urllib.parse.urlparse\"\n  instead of creating a new module urlib and setting\n  urlib.parse to urlparse.urlparse.\n* Fixes an AttributeError:\n  \u0027function\u0027 object has no attribute \u0027uses_relative\u0027\n\nThis reverts commit cd51f17c643370e6199216462c1be36f04d57291.\n\nChange-Id: I48490b20ecd19cf5a6edd835506ea5a467d556ac\n"
    },
    {
      "commit": "ef668c92c2c87c45df02bf1609a89e4479bbb30c",
      "tree": "039f3a11ed6bb9be775a4c242132628a58aa529b",
      "parents": [
        "65b162b32fccee038ea331ea47706c4c2ef52692",
        "691a75936d517f05aaa4a5b0f477d9af5f301b6f"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon Jun 10 14:35:13 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 10 14:35:13 2013 +0000"
      },
      "message": "Merge \"Fix a few issues with dest-branch and multiples\""
    },
    {
      "commit": "65b162b32fccee038ea331ea47706c4c2ef52692",
      "tree": "080bc21551d03b899dadd480c8be8833a82237de",
      "parents": [
        "53a6c5d93a8ba708208826dab64c55fe97f06d0b",
        "cd51f17c643370e6199216462c1be36f04d57291"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Mon Jun 10 14:31:30 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 10 14:31:30 2013 +0000"
      },
      "message": "Merge \"Fix \"\u0027module\u0027 object is not callable\" error\""
    },
    {
      "commit": "cd51f17c643370e6199216462c1be36f04d57291",
      "tree": "8ab1624ac46d6adbac6ca3c25d3d716aff251776",
      "parents": [
        "c2791e85f322bb7d5007ee7e673134d5fa2ed662"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Jun 06 19:06:16 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sat Jun 08 14:50:41 2013 +0900"
      },
      "message": "Fix \"\u0027module\u0027 object is not callable\" error\n\nIn a couple of files the urlparse method was not being set up\ncorrectly for python \u003c 3 and this resulted in an error being\nthrown when trying to call it.\n\nChange-Id: I4d2040ac77101e4e228ee225862f365ae3d96cec\n"
    },
    {
      "commit": "53a6c5d93a8ba708208826dab64c55fe97f06d0b",
      "tree": "3500926383ccb256d6d2f76939fc160db80c0665",
      "parents": [
        "c2791e85f322bb7d5007ee7e673134d5fa2ed662"
      ],
      "author": {
        "name": "Victor Boivie",
        "email": "victor.boivie@sonymobile.com",
        "time": "Tue Mar 19 12:20:52 2013 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sat Jun 08 14:31:58 2013 +0900"
      },
      "message": "Degrade: Fix smart sync/smart tag\n\nThis was broken in b2bd91c, which updated the manifest after it had\nbeen overridden, which made it fall back to the original file (and\nnot the one from the manifest server).\n\nThis builds on 0766900 and overrides the manifest by the one\ndownloaded from the manifest server completely.\n\nChange-Id: Ic3972390a68919b614616631d99c9e7a63c0e0db\n"
    },
    {
      "commit": "c2791e85f322bb7d5007ee7e673134d5fa2ed662",
      "tree": "9b50df24eac7bfafed0e247b4928d504d560c227",
      "parents": [
        "74c1f3d5e6ce819797795a2931cc32a9ed5535cb",
        "5bca9fcdd9dfe4fd31fffe332579f982738b5997"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Wed Jun 05 15:54:48 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 05 15:54:48 2013 +0000"
      },
      "message": "Merge \"Print project name for -p on mirror clients\""
    },
    {
      "commit": "5bca9fcdd9dfe4fd31fffe332579f982738b5997",
      "tree": "0a10638609166ab4dc5a8d03b2cede472db3e908",
      "parents": [
        "710d4b03911bc6fc0b313af56e81b957ccae2348"
      ],
      "author": {
        "name": "Jorge Gonzalez",
        "email": "gjorge@google.com",
        "time": "Mon Jun 03 12:00:06 2013 -0700"
      },
      "committer": {
        "name": "Jorge Gonzalez",
        "email": "gjorge@google.com",
        "time": "Mon Jun 03 17:52:01 2013 -0700"
      },
      "message": "Print project name for -p on mirror clients\n\nIt doesn\u0027t make sense to print the relpath, since there\u0027s nothing\nchecked out there and the dir shouldn\u0027t even exist.\n\nChange-Id: Id43631a8e0895929d3a5ad4ca8c2dc9e3d233e70\n"
    },
    {
      "commit": "74c1f3d5e6ce819797795a2931cc32a9ed5535cb",
      "tree": "6fb625b630c36318fbfbdf815efecb1a4801459f",
      "parents": [
        "91f3ba5a3f6e3c76577b94c0a6c31974d5a3f077"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Mon Jun 03 15:05:07 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Tue Jun 04 00:12:15 2013 +0000"
      },
      "message": "Read cookie file from git-remote-persistent-https if applicable\n\ngit-remote-persistent-https proxy implementations may pass cookie file\nconfiguration to git-remote-https. When fetching bundles for\npersistent-http(s) URLs, use the -print_config flag (if supported) to\nextract this information from the proxy binary and pass it to curl,\noverriding http.cookiefile from .gitconfig.\n\nThis adds a few ms overhead per clone.bundle fetch, which should be\nacceptable since it happens only on the initial clone, which takes\nmuch longer anyway.\n\nChange-Id: I03be8ebaf8d3005855d33998cd8ecd412e8ec287\n"
    },
    {
      "commit": "91f3ba5a3f6e3c76577b94c0a6c31974d5a3f077",
      "tree": "f24f107433374a5ae8264af2dbfbf01b59703dc8",
      "parents": [
        "710d4b03911bc6fc0b313af56e81b957ccae2348"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Mon Jun 03 12:15:23 2013 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Tue Jun 04 00:12:01 2013 +0000"
      },
      "message": "Ensure clone.bundle files have proper header\n\nServer auth middleware may return a 200 from a clone.bundle request\nthat is not a bundle file, but instead a login or access denied page.\nInstead of just checking the file size, actually check the first few\nbytes of the file to ensure it is a bundle file before proceeding.\n\nChange-Id: Icea07567c568a24fd838e5cf974c58f9e4abd7c0\n"
    },
    {
      "commit": "691a75936d517f05aaa4a5b0f477d9af5f301b6f",
      "tree": "ee61b4dcb91aeb0ea2d60fa720aa037faed7e585",
      "parents": [
        "a1f77d92c65028a55202062594cb379b6503bf60"
      ],
      "author": {
        "name": "Bryan Jacobs",
        "email": "bryanrj@gmail.com",
        "time": "Fri May 31 15:45:28 2013 -0400"
      },
      "committer": {
        "name": "Bryan Jacobs",
        "email": "bryanrj@gmail.com",
        "time": "Mon Jun 03 10:39:43 2013 -0400"
      },
      "message": "Fix a few issues with dest-branch and multiples\n\nThis fixes dest-branch display with \u003e1 branch being uploaded to at\nonce, and correctly handles setting the target branch in that case.\n\nChange-Id: If5e9c7ece02cc0d903e2cb377485ebea73a07107\n"
    },
    {
      "commit": "710d4b03911bc6fc0b313af56e81b957ccae2348",
      "tree": "ddeea9c2f86363e48d3ca4e53a868a27bd7a39f6",
      "parents": [
        "a1f77d92c65028a55202062594cb379b6503bf60"
      ],
      "author": {
        "name": "Bryan Jacobs",
        "email": "bryanrj@gmail.com",
        "time": "Fri May 31 15:28:05 2013 -0400"
      },
      "committer": {
        "name": "Bryan Jacobs",
        "email": "bryanrj@gmail.com",
        "time": "Sun Jun 02 19:13:18 2013 -0400"
      },
      "message": "Fix a bug in repo upload --cbr\n\nrepo upload --cbr bailed out if some branches did not have\nmodifications when it is used.\n\nChange-Id: I35f264ff7d77bb4bf8f26b4c3faffa184920b6c5\n"
    },
    {
      "commit": "a1f77d92c65028a55202062594cb379b6503bf60",
      "tree": "afacb5f228f4bf005afd044fce188714bf39a8dc",
      "parents": [
        "f609f91b72c0b90026da0eefcc0f52f12840971b",
        "ecf8f2b7c8e68ee78c5a90ecd8a9b48e73195b80"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue May 28 16:56:59 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 28 16:56:59 2013 +0000"
      },
      "message": "Merge \"Handle HTTPException when attempting to get ssh_info\""
    },
    {
      "commit": "ecf8f2b7c8e68ee78c5a90ecd8a9b48e73195b80",
      "tree": "58a1e2c6e9e1c4ea6d8147414dab358a24d45c14",
      "parents": [
        "59bbb580e34bbc5dce76dacaad9ff94f21fa396f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri May 24 12:12:23 2013 +0900"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Sat May 25 08:07:52 2013 +0530"
      },
      "message": "Handle HTTPException when attempting to get ssh_info\n\nThe call to `urlopen` can raise `HTTPException`, but this is not\ncaught which results in a python Traceback.\n\nAdd handling of the exception.  Because `HTTPException` and its\nderived classes do not have any message, print the name of the\nexception in the error message instead.\n\nChange-Id: Ic90fb4cc0e92702375cd976d4a03876c8ce8bffc\n"
    },
    {
      "commit": "f609f91b72c0b90026da0eefcc0f52f12840971b",
      "tree": "819e244e52279d7b232df5e17727a9a828ddda66",
      "parents": [
        "59bbb580e34bbc5dce76dacaad9ff94f21fa396f"
      ],
      "author": {
        "name": "Bryan Jacobs",
        "email": "bryanrj@gmail.com",
        "time": "Mon May 06 13:36:24 2013 -0400"
      },
      "committer": {
        "name": "Bryan Jacobs",
        "email": "bryanrj@gmail.com",
        "time": "Fri May 24 12:17:22 2013 -0400"
      },
      "message": "Send reviews to a different branch from fetch\n\nThis adds the ability to have reviews pushed to a different branch\nfrom the one on which changes are based. This is useful for \"gateway\"\nsystems without smartsync.\n\nChange-Id: I3a8a0fabcaf6055e62d3fb55f89c944e2f81569f\n"
    },
    {
      "commit": "59bbb580e34bbc5dce76dacaad9ff94f21fa396f",
      "tree": "4d19216215edc174851baa10a00a3bccba9d4e45",
      "parents": [
        "da45e5d8848246cddbce80ff56786bd7330ba5af"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri May 17 10:49:33 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu May 23 07:28:53 2013 +0000"
      },
      "message": "Move Python version checking to a separate module\n\nAdd a new module with methods for checking the Python version.\n\nInstead of handling Python3 imports with try...except blocks, first\ncheck the python version and then import the relevant modules.  This\nmakes the code a bit cleaner and will result in less diff when/if we\nremove support for Python \u003c 3 later.\n\nUse the same mechanism to handle `input` vs. `raw_input` and add\nsuppression of pylint warnings caused by redefinition of the built-in\nmethod `input`.\n\nChange-Id: Ia403e525b88d77640a741ac50382146e7d635924\nAlso-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "da45e5d8848246cddbce80ff56786bd7330ba5af",
      "tree": "661979f3b1f5f3a4612280fd3c92e7f3b1847c50",
      "parents": [
        "0826c0749f9597be07171fed63160dcb1718e35c"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 15 17:34:45 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu May 16 09:32:18 2013 +0900"
      },
      "message": "Remove unused show_smart option on list and info commands\n\nChange-Id: Idf0e161a0b0cc23a5a3ee44d18cb797162cfdd7b\n"
    },
    {
      "commit": "0826c0749f9597be07171fed63160dcb1718e35c",
      "tree": "0183f9f6c77af43cdd874e5e9de9395c6e43c251",
      "parents": [
        "2b30e3aabafa43c224cb6d57dc232d78b28a4901",
        "de50d81c918ff8aa84ac2d2f2c64a0c42d94f0a3"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 15 23:48:44 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 15 23:48:44 2013 +0000"
      },
      "message": "Merge \"Disable warning about locally disabling pylint warnings\""
    },
    {
      "commit": "de50d81c918ff8aa84ac2d2f2c64a0c42d94f0a3",
      "tree": "5a2ce2447044e9c43e902c98c999519f557a3449",
      "parents": [
        "793f90cdc0cffc3ade6acdc544e315fbd54cbb0b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 15 17:31:49 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 15 18:06:06 2013 +0900"
      },
      "message": "Disable warning about locally disabling pylint warnings\n\nSeveral files have local suppression of pylint warnings.  We don\u0027t\nneed these to be reported; code review should catch any unnecessary\nsuppressions.\n\nChange-Id: Ie71ba3e910714ef3fe44554a71bb62519d0a891d\n"
    },
    {
      "commit": "2b30e3aabafa43c224cb6d57dc232d78b28a4901",
      "tree": "ba6fe5ee439091371977cd3db36b32b41c6b4e9d",
      "parents": [
        "793f90cdc0cffc3ade6acdc544e315fbd54cbb0b"
      ],
      "author": {
        "name": "Victor Boivie",
        "email": "victor.boivie@sonymobile.com",
        "time": "Fri Oct 05 12:37:58 2012 +0200"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Sun May 12 17:49:28 2013 +0530"
      },
      "message": "Use reference also for manifest git\n\nWhen running \u0027repo init --reference\u003d\u003cmirror\u003e\u0027, the mirror will be\nused for all projects except the manifest project. This is because\nthe _InitGitDir function uses the \u0027repo.reference\u0027 git config\nvalue specified in the manifest git, which has no effect when\ncreating the manifest git as that value will be set after the git\nhas been successfully cloned.\n\nInformation about where the manifest git is located on the server\nis only known when performing the \u0027repo init\u0027, so that information\nhas to be provided when cloning the git in order for it to set up\na proper mapping.\n\nChange-Id: I47a2c8b3267a4065965058718ce1def4ecb34d5a\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "793f90cdc0cffc3ade6acdc544e315fbd54cbb0b",
      "tree": "f3abdcd9e71536fdc170a398e527a020e2323d18",
      "parents": [
        "d503352b14b45f80c0fb1f6f49637ad0fe732112",
        "a0444584cbcb663dc2c403a7a3b418576685de41"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu May 09 08:36:11 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 09 08:36:12 2013 +0000"
      },
      "message": "Merge \"Re-initialise repos git hooks when updating the forest\""
    },
    {
      "commit": "d503352b14b45f80c0fb1f6f49637ad0fe732112",
      "tree": "0045e8aded2f13a6caf169b77db63e2bf5441835",
      "parents": [
        "b5267f9ad2d0d7872610c8989f11471187fd92d2",
        "2f992cba3238ff9a849c02fbf9a423e234deab16"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 08 18:40:57 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 08 18:40:57 2013 +0000"
      },
      "message": "Merge \"Repo should not fetch tags for shallow projects\""
    },
    {
      "commit": "2f992cba3238ff9a849c02fbf9a423e234deab16",
      "tree": "57abf164400926fc4410058366db0fb7a97d88c4",
      "parents": [
        "45401230cf2b071562617da02ab751468e9aaf8d"
      ],
      "author": {
        "name": "Jimmie Wester",
        "email": "jimmie.wester@stericsson.com",
        "time": "Fri Dec 07 12:49:51 2012 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 08 06:54:10 2013 +0100"
      },
      "message": "Repo should not fetch tags for shallow projects\n\nFetching all tags for a shallow git results in an\ninconstent git and forces git to fetch more than\nthe depth specified.\n\nThis change teaches repo not to fetch any tags in a\nrepository initialised with the depth option.\n\nChange-Id: I557ead9f88fa0d6a19b1cb55b23bba1100fcb8f2\nSigned-off-by: Patrik Ryd \u003cpatrik.ryd@stericsson.com\u003e\n"
    },
    {
      "commit": "b5267f9ad2d0d7872610c8989f11471187fd92d2",
      "tree": "56b9cb916894acbecb270141bf21bd5bd1a46f4a",
      "parents": [
        "45401230cf2b071562617da02ab751468e9aaf8d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon May 06 07:52:52 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 08 06:37:15 2013 +0100"
      },
      "message": "stage: replace filter on lambda with list comprehension\n\nTo fix the pylint warning:\n\n  W0110: map/filter on lambda could be replaced by comprehension\n\nChange-Id: Ib914b42992bb2fbfe888a68fb7b05a7695565b63\n"
    },
    {
      "commit": "45401230cf2b071562617da02ab751468e9aaf8d",
      "tree": "d4b82c3d033b017a98c00e0129d5563e6031d261",
      "parents": [
        "56f4eea26c703992d0a27fd99b7083593f209677",
        "84c4d3c345352650fce4dbc2df27c4977f9d969e"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue May 07 20:08:12 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 07 20:08:13 2013 +0000"
      },
      "message": "Merge \"Optimise regex pattern compilation in FindProjects\""
    },
    {
      "commit": "56f4eea26c703992d0a27fd99b7083593f209677",
      "tree": "a243ae9bde5cdd794eb81ff7498ee36291faf179",
      "parents": [
        "f385d0ca09cf5076d602b6d585c1f06e84b757fe"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sat May 04 21:40:56 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sat May 04 21:40:56 2013 +0900"
      },
      "message": "Disable pylint warnings about similar lines in multiple files\n\nWhen running pylint over the entire code base, it reports the\nwarning:\n\n  R0801:  Similar lines in 2 files\n\nfor several pairs of files.\n\nThe code referred to is boilerplate code related to imports and\nerror handling.  It is not practical to change the code to avoid\nthe warnings, so simply disable them in the config.\n\nChange-Id: Ie685fdf1cab60fb8f1503be560166a14058698d8\n"
    },
    {
      "commit": "f385d0ca09cf5076d602b6d585c1f06e84b757fe",
      "tree": "aef8aa8cd2b18dda2e608130d7340db47c234241",
      "parents": [
        "a8864fba9fd21f412cd0e2c6e072deeb204049bb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri May 03 22:01:41 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri May 03 22:10:26 2013 +0900"
      },
      "message": "Disable warnings related to imports in pylint config\n\nThere are several modules that have imports to support various\nversions of Python.  Pylint reports the following errors when\nrun in a version of Python that does not have the module or the\nmethod/class in the module.\n\n  F0401: Unable to import \u0027module\u0027\n  E0611: No name \u0027name\u0027 in module \u0027module\u0027\n\nDisable these warnings to reduce the noise on the output.\n\nChange-Id: I97e7e2698bccb1e501a45a0869f97f90d54adfb7\n"
    },
    {
      "commit": "84c4d3c345352650fce4dbc2df27c4977f9d969e",
      "tree": "32dd4d3775e2cefd1a42a11dcb781c73ab442c1f",
      "parents": [
        "a8864fba9fd21f412cd0e2c6e072deeb204049bb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Apr 30 10:57:37 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Apr 30 11:12:01 2013 +0900"
      },
      "message": "Optimise regex pattern compilation in FindProjects\n\nMake a list of compiled patterns once, and then iterate over that\nper project, instead of compiling the patterns again on every project.\n\nChange-Id: I91ec430d3060ec76d5e6b61facf6b13e343c90a7\n"
    },
    {
      "commit": "a8864fba9fd21f412cd0e2c6e072deeb204049bb",
      "tree": "70008b8438542ff08fc9c5883e1b35f15c12b1c8",
      "parents": [
        "275e4b727a68cbf32c686d80736772c843771d98"
      ],
      "author": {
        "name": "Zhiguang Li",
        "email": "muzili@gmail.com",
        "time": "Fri Mar 15 10:32:10 2013 +0800"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Mon Apr 29 16:19:26 2013 +0530"
      },
      "message": "Add regex support for subcommand forall\n\nFilter the project list based on regex or wildcard matching\nof strings, then we can handle subset of all projects.\n\nChange-Id: Ib6c23aec79e7d981f7b6a5eb0ae93c44effec467\nSigned-off-by: Zhiguang Li \u003cmuzili@gmail.com\u003e\n"
    },
    {
      "commit": "275e4b727a68cbf32c686d80736772c843771d98",
      "tree": "0c0de68dabfbc6081b613724d498ab00868ae986",
      "parents": [
        "c4c01f914c7cdfa997be60ea97cd487d63333a04",
        "9d5bf60d3ce18441d43deb6ad9cec931b94e10b6"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sat Apr 20 05:11:05 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 20 05:11:05 2013 +0000"
      },
      "message": "Merge \"Set correct name in PyDev and Eclipse project config\""
    },
    {
      "commit": "c4c01f914c7cdfa997be60ea97cd487d63333a04",
      "tree": "c7063f88ab55998187c907807364ce7f4444cc4a",
      "parents": [
        "51813dfed1528307c46707bc38b4db33b87bb36e",
        "217ea7d2747e3098009afe0b389fc4b45f55ea5a"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Apr 19 15:31:28 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 19 15:31:29 2013 +0000"
      },
      "message": "Merge \"Some fixes for supporting python3\""
    },
    {
      "commit": "9d5bf60d3ce18441d43deb6ad9cec931b94e10b6",
      "tree": "92260add56caee1254d0573e26c486947731cc8b",
      "parents": [
        "fef4ae74e26efecf5c803793351b6c843eab4970"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Apr 18 10:57:46 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Apr 19 09:35:43 2013 +0900"
      },
      "message": "Set correct name in PyDev and Eclipse project config\n\nThe name of the project is shown as \"repo\" in the project list in\nthe Eclipse workspace.\n\nThis change renames it to \"git-repo\" to match the name of the git\nrepository.\n\nThe existing project in Eclipse must be removed (it is not necessary\nto delete project contents on disk) and re-imported for the change to\ntake effect.\n\nChange-Id: I2ac022d22f46e5361dfe49c0dbcad482aaefe628\n"
    },
    {
      "commit": "217ea7d2747e3098009afe0b389fc4b45f55ea5a",
      "tree": "4ea2663a01fb22002ec6cd6ede9cb3babd89a692",
      "parents": [
        "fef4ae74e26efecf5c803793351b6c843eab4970"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Fri Mar 01 19:14:38 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Thu Apr 18 21:35:49 2013 +0530"
      },
      "message": "Some fixes for supporting python3\n\n* Fix imports.\n* Use python3 syntax.\n* Wrap map() calls with list().\n* Use list() only wherever needed.\n  (Thanks Conley!)\n* Fix dictionary iteration methods\n  (s/iteritems/items/).\n* Make use of sorted() in appropriate places\n* Use iterators directly in the loop.\n* Don\u0027t use .keys() wherever it isn\u0027t needed.\n* Use sys.maxsize instead of sys.maxint\n\nTODO:\n* Make repo work fully with python3. :)\n\nSome of this was done by the \u00272to3\u0027 tool [1], by\napplying the needed fixes in a way that doesn\u0027t\nbreak compatibility with python2.\n\nLinks:\n[1]: http://docs.python.org/2/library/2to3.html\n\nChange-Id: Ibdf3bf9a530d716db905733cb9bfef83a48820f7\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "51813dfed1528307c46707bc38b4db33b87bb36e",
      "tree": "1f41b65a98728b855bc94b3609ce73b0f5cfd077",
      "parents": [
        "fef4ae74e26efecf5c803793351b6c843eab4970"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Tue Apr 16 19:36:09 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Wed Apr 17 13:43:10 2013 +0530"
      },
      "message": "repo: add rudimentary version checking\n\nChange-Id: I957775c7ce0821971cc2320597e1a7a31950bcf3\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "fef4ae74e26efecf5c803793351b6c843eab4970",
      "tree": "f5d53b6aad19cd6c514b9c3e10e050a1d1f6cb18",
      "parents": [
        "db83b1b5abcc2df1b5c7a76ca74ff60e88fe956e"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Fri Apr 12 14:54:32 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Mon Apr 15 13:38:49 2013 +0530"
      },
      "message": "sync: be more verbose\n\n* Print project name if the \"quiet\" option is not used.\n\nChange-Id: I99863bb50f66e4dcbaf2d170bdd05971f2a4e19a\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "db83b1b5abcc2df1b5c7a76ca74ff60e88fe956e",
      "tree": "43f388a8dfd84a8e7b38c9e5787ae60e3dc84265",
      "parents": [
        "ede7f12d4a0f7362aaccd2c825a83765b9b9d968"
      ],
      "author": {
        "name": "Scott Fan",
        "email": "fancp2007@gmail.com",
        "time": "Thu Feb 28 09:34:14 2013 +0800"
      },
      "committer": {
        "name": "Scott Fan",
        "email": "fancp2007@gmail.com",
        "time": "Thu Apr 11 08:59:09 2013 +0800"
      },
      "message": "Allow mirror to be created in directories specified by \u0027path\u0027 attribute\n\nIn some cases, especially when local manifest files exist, users may want\nto force the mirrored repositories to be created in folders according to\ntheir \u0027path\u0027 attribute in the manifest, rather than according to the name\nof the repositories.\n\nTo enable this functionality for specified mirror, add a new attribute\n\u0027force-path\u0027 for that project in the manifest, set its value to \u0027true\u0027.\n\nChange-Id: I61df8c987a23d84309b113e7d886ec90c838a6cc\nSigned-off-by: Scott Fan \u003cfancp2007@gmail.com\u003e\n"
    },
    {
      "commit": "ede7f12d4a0f7362aaccd2c825a83765b9b9d968",
      "tree": "e2b1683926292028a8e32ce32419228517d60d56",
      "parents": [
        "04d84a23fd04c9e1dd15341eb7dd28a0d8ce99c6"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Nov 27 22:25:30 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Apr 10 09:17:50 2013 +0900"
      },
      "message": "Allow clone depth to be specified per project\n\nIf the clone-depth attribute is set on a project, its value will\nbe used to set the depth when fetching the git.  The value, if\ngiven, must be a positive integer.\n\nThe value in the clone-depth attribute overrides any value given to\nrepo init via the --depth command line option.\n\nChange-Id: I273015b3724213600b63e40cca4cafaa9f782ddf\n"
    },
    {
      "commit": "04d84a23fd04c9e1dd15341eb7dd28a0d8ce99c6",
      "tree": "d7b1a09f85c56296c9ad540d161b782379c34e73",
      "parents": [
        "0a1c6a1c16e2c89f98158cb2f79dda1583a8fac4"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Sun Mar 17 18:46:23 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Sat Apr 06 14:39:03 2013 +0530"
      },
      "message": "list: add name-only and path-only options\n\n`repo list -n` prints only the name of the projects.\n`repo list -p` prints only the path of the projects.\n\nChange-Id: If7d78eb2651f0b1b2fe555dc286bd2bdcad0d56d\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "0a1c6a1c16e2c89f98158cb2f79dda1583a8fac4",
      "tree": "2446c673c4eddf2a499e36b4e898ea258a6d3c7a",
      "parents": [
        "33e045673786f3477e805ade0f337de08e89a7a8"
      ],
      "author": {
        "name": "David Holmer",
        "email": "odinguru@gmail.com",
        "time": "Wed Nov 14 19:19:00 2012 -0500"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 22:27:45 2013 +0000"
      },
      "message": "Special handling for manifest group \"default\"\n\nChange Details:\n* Make \"default\" a special manifest group that matches any project that\n  does not have the special project group \"notdefault\"\n* Use \"default\" instead of \"all,-notdefault\" when user does not specify\n  manifest group\n* Expand -g option help to include example usage of manifest groups\n\nChange Benefits:\n* Allow a more intuitive and expressive manifest groups specification:\n  * \"default\" instead of \"all,-notdefault\"\n  * \"default,foo\" instead of \"all,-notdefault,foo\"\n  * \"default,-foo\" instead of \"all,-notdefault,-foo\"\n  * \"foo,-default\" which has no equivalent\n* Default manifest groups behavior can be restored by the command\n  \u0027repo init -g default\u0027. This is significantly more intuitive than the\n  current equivalent command \u0027repo init -g all,-notdefault\u0027.\n\nChange-Id: I6d0673791d64a650110a917c248bcebb23b279d3\n"
    },
    {
      "commit": "33e045673786f3477e805ade0f337de08e89a7a8",
      "tree": "83dfd25c4794abbb287a37b8279099181bb9c080",
      "parents": [
        "07669002cbc1cdb3f5587660a140b3203b7fb552"
      ],
      "author": {
        "name": "Brian Harring",
        "email": "ferringb@google.com",
        "time": "Tue Dec 25 06:32:27 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 20:54:49 2013 +0000"
      },
      "message": "Fix `repo manifest` support of remote aliases.\n\nLong story short, w/out this modification the manifest dump points\nat the alias, rather than the actual remote for the project.  This\nbreaks sync\u0027ing for scenarios where the alias doesn\u0027t have the same\nrepos available as the remote, plus just plain is wrong.\n\nChange-Id: I7150e449341ed8655d398956a095261978d95870\n"
    },
    {
      "commit": "07669002cbc1cdb3f5587660a140b3203b7fb552",
      "tree": "ad652eff3898e0961562e085f230e53d7d476349",
      "parents": [
        "3cba0b8613b2fd56eb2c78b6f94c26ac26704bd0"
      ],
      "author": {
        "name": "Tim Kilbourn",
        "email": "tkilbourn@google.com",
        "time": "Fri Mar 08 15:02:49 2013 -0800"
      },
      "committer": {
        "name": "Tim Kilbourn",
        "email": "tkilbourn@google.com",
        "time": "Fri Mar 08 16:19:03 2013 -0800"
      },
      "message": "Reload the correct manifest during sync.\n\nFix for issue #134\nhttps://code.google.com/p/git-repo/issues/detail?id\u003d134\n\nChange-Id: I94c2dea5dd63917e3f9c90cbd628921d7d61b12a\n"
    },
    {
      "commit": "a0444584cbcb663dc2c403a7a3b418576685de41",
      "tree": "819666843dc76c814bb365727478542b3ad76d18",
      "parents": [
        "3cba0b8613b2fd56eb2c78b6f94c26ac26704bd0"
      ],
      "author": {
        "name": "Jimmie Wester",
        "email": "jimmie.wester@stericsson.com",
        "time": "Wed Oct 24 13:44:42 2012 +0200"
      },
      "committer": {
        "name": "Patrik Ryd",
        "email": "patrik.ryd@stericsson.com",
        "time": "Fri Mar 08 09:09:04 2013 +0100"
      },
      "message": "Re-initialise repos git hooks when updating the forest\n\nRepo now re-initialises the git-hooks reference directory\nwhen updating the forest. This allows for any new template\nfiles to be made available throughout the project forest\nwhen updating the forest. Previous functionality required\nthe user to recreate the forest.\n\nChange-Id: I9051265028a9e77d6139791547fff095bc195077\nSigned-off-by: Patrik Ryd \u003cpatrik.ryd@stericsson.com\u003e\n"
    },
    {
      "commit": "3cba0b8613b2fd56eb2c78b6f94c26ac26704bd0",
      "tree": "4f3b23d5562dd52d9181a328b66cc792ec5b7f36",
      "parents": [
        "a27852d0e707046558dfef9145f56b64b1331c7a"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Mon Mar 04 21:09:45 2013 +0530"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Mar 08 01:18:08 2013 +0000"
      },
      "message": "Add `repoc` to the .gitignore file\n\nThis is currently the only generated file not present in the .gitignore\n\nApparently it comes from the usage of the \"imp\" module in main.py\n\nChange-Id: I685dc252d0c822818434a8e5f493f77b63a66f03\nSigned-off-by: Chirayu Desai \u003ccdesai@cyanogenmod.org\u003e\n"
    },
    {
      "commit": "a27852d0e707046558dfef9145f56b64b1331c7a",
      "tree": "f8ba2ff81c074beff302db0911cf2e896c8df561",
      "parents": [
        "3ee6ffd07852c184feef5afd695d80a3f9a0db79",
        "61ac9ae090d81bfd086ed8b3ca961de1cc77e3cc"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Mar 08 01:12:56 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 01:12:56 2013 +0000"
      },
      "message": "Merge \"Add manifest groups to the output of `info`\""
    },
    {
      "commit": "61ac9ae090d81bfd086ed8b3ca961de1cc77e3cc",
      "tree": "ba0c8b1f88d02e7e6216acba3c4f759cc48b4f8c",
      "parents": [
        "45d21685b93f80b67239849b2d2cfe6b217e335a"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Mar 05 10:35:36 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Mar 07 09:47:29 2013 -0800"
      },
      "message": "Add manifest groups to the output of `info`\n\nList the user\u0027s manifest groups when running `repo info`.\n\nThese groups are passed to `repo init` using the -g/--groups flag.\n\nChange-Id: Ie8a4ed74a35b8b90df3b1ee198fe725b1cd68ae7\n"
    },
    {
      "commit": "3ee6ffd07852c184feef5afd695d80a3f9a0db79",
      "tree": "7e6e44db4a785a52579589f81de88fb16564c1f3",
      "parents": [
        "28db6ffef48138fc97aca9fbf0d774ac26a41c70",
        "2f9e7e40c44acae37d0c263c212956ef6038c35b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Mar 06 00:46:45 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 00:46:45 2013 +0000"
      },
      "message": "Merge \"Fix: Missing spaces in printed messages\""
    },
    {
      "commit": "28db6ffef48138fc97aca9fbf0d774ac26a41c70",
      "tree": "d911fb72ec3de2c7af6af0dc21c2a43d72f64e8b",
      "parents": [
        "45d21685b93f80b67239849b2d2cfe6b217e335a",
        "4eb285cf902a46c3c99bc2c999e486d7c218354b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Mar 06 00:46:19 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 00:46:20 2013 +0000"
      },
      "message": "Merge \"Fix: local manifest deprecation warning appears more than once\""
    },
    {
      "commit": "2f9e7e40c44acae37d0c263c212956ef6038c35b",
      "tree": "b5bffccb2c4f6a502a350bef3e40183f56ca8bc9",
      "parents": [
        "45d21685b93f80b67239849b2d2cfe6b217e335a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Mar 05 17:26:46 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Mar 05 17:30:59 2013 +0900"
      },
      "message": "Fix: Missing spaces in printed messages\n\nSeveral messages are printed with the `print` method and the message\nis split across two lines, i.e.:\n\n print(\u0027This is a message split\u0027\n       \u0027across two source code lines\u0027)\n\nWhich causes the message to be printed as:\n\n This is a message splitacross two source code lines\n\nAdd a space at the end of the first line before the line break:\n\n print(\u0027This is a message split \u0027\n       \u0027across two source code lines\u0027\n\nAlso correct a minor spelling mistake.\n\nChange-Id: Ib98d93fcfb98d78f48025fcc428b6661380cff79\n"
    },
    {
      "commit": "45d21685b93f80b67239849b2d2cfe6b217e335a",
      "tree": "18e5f686341976ba5252c40839ec1de400ba647c",
      "parents": [
        "597868b4c45bba380249b739c0cf49b868cc8741"
      ],
      "author": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Thu Feb 28 00:35:51 2013 -0800"
      },
      "committer": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Thu Feb 28 12:10:31 2013 -0800"
      },
      "message": "upload: support --re and --cc options over HTTP\n\nHTTP can\u0027t use the older style of passing options as part of\nthe git receive-pack command line. Use the new style as defined\nby https://gerrit-review.googlesource.com/42652 when connecting\nover HTTP.\n\nIf the Gerrit server is too old to understand the % option\nsyntax used here one of two outcomes is possible:\n\n- If no topic name was sent the server will fail with an error\n  message. This happens because the user tried to do an upload to\n  \"refs/for/master%r\u003dalice\", and the branch does not exist.\n  The user can delete the options and retry the upload.\n\n- If a topic was set the options will be read as part of the\n  topic string and shown on the change page in the topic field.\n\nEither outcome is slightly better than the current behavior of\njust dropping the data on the floor and forgetting whatever the\nuser tried to supply.\n\nChange-Id: Ib2df62679e5bf3ee93d6b18c12ab6474f96d9106\n"
    },
    {
      "commit": "597868b4c45bba380249b739c0cf49b868cc8741",
      "tree": "938a73ec3df796449207c695a4ee316d4886b0fe",
      "parents": [
        "75b4c2deac9ff23a5a3c24b3d2450cd23ae3d705"
      ],
      "author": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Mon Oct 29 10:18:34 2012 -0700"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Feb 27 11:00:49 2013 +0900"
      },
      "message": "Add --no-tags option to prevent fetching of tags\n\nAdd an option to pass `--no-tags\u0027 to `git fetch\u0027.\n\nChange-Id: I4158cc369773e08e55a167091c38ca304a197587\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "75b4c2deac9ff23a5a3c24b3d2450cd23ae3d705",
      "tree": "6136f285763867dff9fb786169e720314fea5148",
      "parents": [
        "b75415075c00bb17e14c5666a380b7e940db8c84"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof.johansson@sonymobile.com",
        "time": "Mon Feb 18 13:18:16 2013 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Feb 26 16:05:26 2013 +0900"
      },
      "message": "Fix crash in repo info when `%` is used in commit messages\n\nFix for issue #131\nhttp://code.google.com/p/git-repo/issues/detail?id\u003d131\n\nChange-Id: I078533ab5f3a83154c4ad6aa97a5525fc5139d20\n"
    },
    {
      "commit": "b75415075c00bb17e14c5666a380b7e940db8c84",
      "tree": "2d94ac7c8db65324f038d3c666251848caddfa72",
      "parents": [
        "5f434ed723ac14cdcea12d038c066c0653e1ef3a"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof.johansson@sonymobile.com",
        "time": "Tue Feb 26 07:36:03 2013 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Feb 26 16:04:55 2013 +0900"
      },
      "message": "Add nofmt_printer to color.py\n\nThe current printer always expands on the arguments which is a problem\nfor strings containing %.\n\nInstead of forcing manual string expansion before printing allow for a\nno format printer option which simply accepts and prints the string.\n\nPart of fix for issue #131:\nhttp://code.google.com/p/git-repo/issues/detail?id\u003d131\n\nChange-Id: I08ef94b9c4ddab58ac12d2bd32ebd2c413e4f83b\n"
    },
    {
      "commit": "4eb285cf902a46c3c99bc2c999e486d7c218354b",
      "tree": "044641d5bea20fd499c7004246670dad8fc085f0",
      "parents": [
        "5f434ed723ac14cdcea12d038c066c0653e1ef3a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Feb 14 16:28:44 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sun Feb 17 21:23:33 2013 +0900"
      },
      "message": "Fix: local manifest deprecation warning appears more than once\n\nWhen running repo sync, the local_manifest.xml deprecation warning\nis shown twice.\n\nAdd a flag to ensure that it is only displayed once.\n\nChange-Id: Icfa2b0b6249c037c29771f9860252e6eda3ae651\n"
    },
    {
      "commit": "5f434ed723ac14cdcea12d038c066c0653e1ef3a",
      "tree": "259f4860618f544f8ff96e1c9684ff89e5812bc4",
      "parents": [
        "606eab804302a92d232735d4aa57853cf3be3d9a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Nov 22 13:48:10 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sun Feb 17 21:20:20 2013 +0900"
      },
      "message": "Exit with fatal error if local manifest file cannot be parsed\n\nIf the .repo/local_manifests folder includes a local manifest file\nthat cannot be parsed, the current behaviour is to catch the parse\nexception, print a warning, and continue to process remaining files.\n\nThis can cause any errors to go unnoticed.\n\nRemove the exception handling, so that the exception is instead\ncaught in main._Main, and repo exits with a fatal error.\n\nChange-Id: I75a70b7b850d2eb3e4ac99d435a4568ff598b7f4\n"
    },
    {
      "commit": "606eab804302a92d232735d4aa57853cf3be3d9a",
      "tree": "5cc12b737e94b8bc8e1ab84a88c021464b73de3e",
      "parents": [
        "cd07cfae1c5c3588ea4a4ca1fb85e208f1aa5b33"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Nov 22 13:47:16 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sun Feb 17 21:19:58 2013 +0900"
      },
      "message": "Show full path of `local_manifests` folder in deprecation warning\n\nWhen a local_manifest.xml file is present, a deprecation warning\nis printed telling the user to put local manifest files in the\n`local_manifests` directory.\n\nInclude the full path to the `local_manifests` directory in the\nwarning, to reduce confusion about where the directory should be\nlocated.  Also enclose the directory name in backticks.\n\nChange-Id: I85710cfbd6e77fb2fa6b7b0ce66d77693ccd649f\n"
    },
    {
      "commit": "cd07cfae1c5c3588ea4a4ca1fb85e208f1aa5b33",
      "tree": "943f3351199a056722f23f70050d4a69e773cbb7",
      "parents": [
        "55693aabe5d19e5be73a3bab683960aaf6aff7c8",
        "bbf71fe363d7ac9411f37c4075bf11004c2b4e60"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Feb 14 07:51:35 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 07:51:36 2013 +0000"
      },
      "message": "Merge \"Protect line endings in shell scripts\""
    },
    {
      "commit": "55693aabe5d19e5be73a3bab683960aaf6aff7c8",
      "tree": "e3b8a33b2096812ba14d3ce77547aab2805a5700",
      "parents": [
        "23bd3a1dd309c8c5727832b7543298584bf53de8"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Feb 13 09:55:32 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Feb 13 09:56:09 2013 +0900"
      },
      "message": "Update the commit-msg hook to the version from Gerrit 2.5.2\n\nChange-Id: I00760fe55a0e1b61375a378c05f263e7bc857ca0\n"
    },
    {
      "commit": "23bd3a1dd309c8c5727832b7543298584bf53de8",
      "tree": "6cfc76f7d4818309acde2283078746e2b96cd9c3",
      "parents": [
        "91f011ab0df9e1aa215e39b424c9ce2614bae50e"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Feb 12 13:46:14 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Tue Feb 12 13:46:14 2013 -0800"
      },
      "message": "Add missing sys module when referencing stderr\n\n`repo cherry-pick` was broken because we were referencing stderr\ninstead of sys.stderr.  This should fix it.\n\nChange-Id: I67f25c3a0790d029edc65732c319df7c684546c8\n"
    },
    {
      "commit": "bbf71fe363d7ac9411f37c4075bf11004c2b4e60",
      "tree": "59c9c9867910d10b96309432e923480675163072",
      "parents": [
        "cd81dd6403fc8dbe6ec5920c517d9083902c3c1f"
      ],
      "author": {
        "name": "Mats Bengtsson",
        "email": "mmmats@gmail.com",
        "time": "Mon Feb 11 22:13:39 2013 +0100"
      },
      "committer": {
        "name": "Mats Bengtsson",
        "email": "mmmats@gmail.com",
        "time": "Mon Feb 11 22:13:39 2013 +0100"
      },
      "message": "Protect line endings in shell scripts\n\nAdd a .gitattributes file to prevent /bin/sh scripts from\ngetting clobbered by git config core.autocrlf\u003dtrue setting.\n\nChange-Id: I3dfc992a9c275fceae64c9719168d81e60d911bd\n"
    },
    {
      "commit": "91f011ab0df9e1aa215e39b424c9ce2614bae50e",
      "tree": "15c9c9b087d8502f4b560fd3afff0a74300137fb",
      "parents": [
        "57bd7b717ba830753b5c6d82bb84d38047dce637",
        "87b9d9b4f2b9540fdd23a2b13af622d04a15269a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Feb 04 10:58:48 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 04 10:58:48 2013 +0000"
      },
      "message": "Merge \"Don\u0027t exit with error on HTTP 403 when downloading clone bundle\""
    },
    {
      "commit": "87b9d9b4f2b9540fdd23a2b13af622d04a15269a",
      "tree": "384354273f799e1928461ea1d962020c0142bfc3",
      "parents": [
        "4e46520362e4c75ae7809c74f3d1c21e86852ee8"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Nov 26 18:30:32 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Jan 31 21:12:08 2013 +0900"
      },
      "message": "Don\u0027t exit with error on HTTP 403 when downloading clone bundle\n\nIf the server returns HTTP 403 (forbidden) when attempting to\ndownload clone bundle files, ignore it and continue, rather than\nexiting with a fatal error.\n\nChange-Id: Icf78cba0332b51b0e7b622f7c7924369b551b6f6\n"
    },
    {
      "commit": "57bd7b717ba830753b5c6d82bb84d38047dce637",
      "tree": "7250e64bb16febe8bd677ce5149edde80f74178d",
      "parents": [
        "4e46520362e4c75ae7809c74f3d1c21e86852ee8"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof.johansson@sonymobile.com",
        "time": "Tue Jan 29 08:22:05 2013 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jan 29 18:18:20 2013 +0900"
      },
      "message": "Fix: GitError when using repo info -d\n\nIf a workspace is initialised with:\n\n repo init -u git://path/to/manifest -b manifest-branch\n\nand the default.xml specifies the default revision as `other-branch`,\nrunning `repo info -d` results in a GitError:\n\n  fatal: bad revision \u0027refs/remotes/m/other-branch..\u0027\n\nThe repo info command uses the default revision to build the symlink\nto the remote revision which is passed to the `git rev-list` command.\n\nThis is incorrect; the manifest\u0027s branch name should be used.\n\nChange-Id: Ibae5b91869848276785facfaef433e38d49fd726\n"
    },
    {
      "commit": "4e46520362e4c75ae7809c74f3d1c21e86852ee8",
      "tree": "6a1aff062529de8af252c7ab2e0e8b2649f922ff",
      "parents": [
        "63d356ffce72f76936a17902fe2f4abcb43078bb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Nov 27 22:20:10 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jan 29 10:09:21 2013 +0900"
      },
      "message": "Add missing manifest format documentation\n\nDocumentation of the \"sync-j\", \"sync-c\", \"sync-s\" and \"upstream\"\nattributes is missing/incomplete.  Add it.\n\nChange-Id: I74977f819f603c520ef3818f85c3b51399cd2b94\n"
    },
    {
      "commit": "63d356ffce72f76936a17902fe2f4abcb43078bb",
      "tree": "44288b45acaf5bd883135d762403e7bf7970c5e7",
      "parents": [
        "35765966bf77d3afc8f9f98d6e24ccaf302ce95d"
      ],
      "author": {
        "name": "Will Richey",
        "email": "wmrichey@gmail.com",
        "time": "Thu Jun 21 09:49:59 2012 -0400"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jan 29 10:01:53 2013 +0900"
      },
      "message": "\u0027repo status --orphans\u0027 shows non-repo files\n\n\u0027repo status --orphans\u0027 searches for non-repo objects\n(not within a project), which is particularly helpful\nbefore removing a working tree.\n\nChange-Id: I2239c12e6bc0447b0ad71129551cb50fa671961c\n"
    },
    {
      "commit": "35765966bf77d3afc8f9f98d6e24ccaf302ce95d",
      "tree": "0055175c8bae8bb2ba38cdb8d7981b8e9bcfc9b5",
      "parents": [
        "254709804d83d611831d4c78fe17280750e2eb2a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jan 29 09:49:48 2013 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jan 29 09:52:22 2013 +0900"
      },
      "message": "Fix: missing space in information message after repo init\n\nIn the information message displayed after running repo init, there\nis a missing space:\n\n  If this is not the directory in which you want to initializerepo\n\nAdd a space.\n\nChange-Id: I20467673ba7481cfe782ba58ff6ed2f7ce9824a5\n"
    },
    {
      "commit": "254709804d83d611831d4c78fe17280750e2eb2a",
      "tree": "0c7559bdcc8cdf1d4b18e8f141745e36f0b9efae",
      "parents": [
        "e0b6de32f74cd2f069d1544bbbb08f6d45f6d27b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Nov 21 14:41:58 2012 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jan 29 09:47:07 2013 +0900"
      },
      "message": "Better error message when using --mirror in existing workspace\n\nIf repo init is run with the --mirror option, repo checks if there\nis already a workspace initialized in the current location, and if\nso, exits with an error message:\n\n  --mirror not supported on existing client\n\nThis error can cause confusion; the users do not understand what\nis wrong and what they need to do to fix it.\n\nChange the error message to make it a bit clearer.\n\nChange-Id: Ifd06ef64fd264bd1117e4184c49afe0345b75d8c\n"
    },
    {
      "commit": "e0b6de32f74cd2f069d1544bbbb08f6d45f6d27b",
      "tree": "a2aa7476b7d1b3a240275b0fe710335c979a632c",
      "parents": [
        "4baf87f92c55d3daba1410f04bd10f1a41a088b8"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Nov 21 17:36:28 2012 +0900"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 29 00:02:46 2013 +0000"
      },
      "message": "Fix: missing spaces in info command output\n\nText should be joined with \" \" rather than \"\" in the output.\n\nChange-Id: I6c5dddc15743e98c3b43702cb5d3ec32f81c3221\n"
    },
    {
      "commit": "4baf87f92c55d3daba1410f04bd10f1a41a088b8",
      "tree": "cac6a39c2bacd11e83938b642303a85048521726",
      "parents": [
        "84f7e137c20b7500a6a5c719c39e9166c6e40e85",
        "223bf963f0342f3cc50728b2f9535b528592e64a"
      ],
      "author": {
        "name": "Shawn Pearce",
        "email": "sop@google.com",
        "time": "Mon Jan 28 16:25:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 16:25:55 2013 +0000"
      },
      "message": "Merge \"should use os.path.lexist instead of os.path.exist\""
    },
    {
      "commit": "84f7e137c20b7500a6a5c719c39e9166c6e40e85",
      "tree": "ae4ebf317539cbd519ebe5ea3e055f0127510097",
      "parents": [
        "26e2475a0fe090f5bd2c0a0a040f21cc71aac095",
        "ed68d0e8529f059a5d989ebd505bfb53e869ec2f"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Jan 17 20:02:03 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 20:02:03 2013 +0000"
      },
      "message": "Merge \"Check for a cookie file when fetching clone.bundle.\""
    },
    {
      "commit": "26e2475a0fe090f5bd2c0a0a040f21cc71aac095",
      "tree": "3df2016a6bd52802151917b4c35a8e07f0d6d16f",
      "parents": [
        "c59bafffb972dedd279e16a3a34415cda2ce3f58"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Jan 11 12:35:53 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Jan 17 09:10:00 2013 -0800"
      },
      "message": "If parsing the manifests fails, reset the XmlManifest object\n\nso that if it\u0027s called again, we see the correct errors.\n\nChange-Id: I909488feeac04aecfc92a9b5d6fb17827ef2f213\n"
    },
    {
      "commit": "c59bafffb972dedd279e16a3a34415cda2ce3f58",
      "tree": "fbbb67a02619f1e5cdfd6755343bd53834987a0d",
      "parents": [
        "0290cad5db0eef3b15eb976dd7a017837e36c8b7",
        "1a5c774cbff8aead0c45cc90be2f78ffd08dc376"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Jan 17 17:06:49 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 17 17:06:49 2013 +0000"
      },
      "message": "Merge \"Pass full path of the XML in local_manifests to the parser\""
    }
  ],
  "next": "0290cad5db0eef3b15eb976dd7a017837e36c8b7"
}
