)]}'
{
  "log": [
    {
      "commit": "43d8f1cdddee5ed20dfef267dc59f7c4805d3a75",
      "tree": "845e0b34742787b695ad06b3e12d25199d1bda66",
      "parents": [
        "906ffb7b773e3007062d9feaa54dc55eaf692684"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Jun 16 09:39:19 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Jun 16 09:39:19 2014 -0400"
      },
      "message": "double the screen sleep timeout\n\nHP Cloud 1.1 is quite slow per core. So much so that grenade is\noften failing to start services because bash in a screen session\nisn\u0027t ready in 1.5s. Double this to 3s to try to decrease failures\nin the gate.\n\nWe should instead do this via some readiness check to decrease\nraces.\n\nChange-Id: I2b066a687916742e966190f00b5b06a795d4a014\n"
    },
    {
      "commit": "5cc6d2cd0cb3fbfdd1b26899dc7a5667eab7605e",
      "tree": "0c15344895e0578a51fb7c2c4ba4a406c7f0dfa9",
      "parents": [
        "7b63c5ec9e9aea54024105a6521a754efc9f9983"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Jun 06 08:45:16 2014 -0400"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Fri Jun 06 17:34:28 2014 +0000"
      },
      "message": "Update again and retry a failed package install\n\nOn ubuntu, if we run into an error installing the package, it can be\nbecause of transient upstream errors with repo sync state. Although\nretrying the update won\u0027t fix it all of the time, it\u0027s low cost enough\nto be worth a try before we totally give up.\n\nRelated-bug: 1286818\nChange-Id: I522ac0d0bd8f82dc98f386c89f66c2b743efa525\n"
    },
    {
      "commit": "d79a8acbb700886a24c5ed553d919d1a90385381",
      "tree": "825af89716bf64883eddc303d804454e902e5dad",
      "parents": [
        "ffeeea132796eac443928ac8f63bb54592a65d8f"
      ],
      "author": {
        "name": "Yves-Gwenael Bourhis",
        "email": "yves-gwenael.bourhis@cloudwatt.com",
        "time": "Mon Apr 14 14:49:07 2014 +0200"
      },
      "committer": {
        "name": "Yves-Gwenael Bourhis",
        "email": "yves-gwenael.bourhis@cloudwatt.com",
        "time": "Mon Apr 14 14:49:07 2014 +0200"
      },
      "message": "Fixed pip with http(s)_proxy\n\npip failed to insall packages with the http_proxy and https_proxy localrc\nenvironment variables. indeed, the case of the variables was uppercase\nand these variables are normally lowercase.\n\nChange-Id: I73054aafd353ccf53986f0ec05426f6a2c4e2240\nCloses-Bug: 1307492\n"
    },
    {
      "commit": "099e5e3f81233e2151f8645bc1ff6431eab9492b",
      "tree": "09205d40716ca185c11c79d97d948bb66758ba88",
      "parents": [
        "31f7475baffcca2742201918c8f3fe7b682c2193"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Mon Mar 31 10:35:43 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Tue Apr 01 08:48:00 2014 -0400"
      },
      "message": "don\u0027t use pip -e install for libraries\n\nlibraries in openstack shouldn\u0027t be installed editable, as it\ncauses all manner of issues (especially complicated by the use\nof namespace packages). Install these globally as part of the\ndevstack installation process.\n\nChange-Id: I11acb169e74069be0618e57496ff342f9e788493\n"
    },
    {
      "commit": "539ec43882780194471b3cba9d5f3e230a50a60b",
      "tree": "f32436e90fc61690b5c4052e4acf449680de31da",
      "parents": [
        "871b1e47092a6463cb39be48c66bfe3e646920c2"
      ],
      "author": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Tue Mar 18 18:57:43 2014 -0700"
      },
      "committer": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Tue Mar 18 19:00:26 2014 -0700"
      },
      "message": "Parse Ironic packages files/{apts, rpms}/ironic\n\nWhen VIRT_DRIVER\u003dironic, make sure devstack picks up packages listed in its\nrespective packages file.  These were previously missed unless \"ironic\" was\nexplictly added to the enabled services.  This ensures required packages\nare installed for any of the ir-* services.\n\nChange-Id: I3d70009819a3a6933220cabd5a951a20c7b48849\n"
    },
    {
      "commit": "64bd01652e6fd7c593498b1fd2bf50bfdf64ce40",
      "tree": "9ac9d1f2f23d98194f46409c7d277f845f1916df",
      "parents": [
        "63d06bcad9b6716fc4c4f69d52a83ccd40d160b2"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Wed Mar 12 13:04:22 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Wed Mar 12 13:04:22 2014 -0400"
      },
      "message": "make git_clone safer\n\nthe ensures that if the function returns early, we return to a\nsane directory, and not hang out somewhere that a future git\ncall might modify a directory in a weird way. This is especially\nimportant in the case of stable branches where were are hopping\nbetween stable for servers and master for clients.\n\nChange-Id: Ib8ebbc23b1813bc1bfb31d0a079f1b882135bd39\n"
    },
    {
      "commit": "3b1f2e4e885559957a939f8a260b4cff9938bc80",
      "tree": "692834105c7bda0d0a6d08f8bb1d10c482752cda",
      "parents": [
        "349394b0cfb858dfdea390a20ee80b333380b95e"
      ],
      "author": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@valinux.co.jp",
        "time": "Mon Feb 24 20:30:07 2014 +0900"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Tue Mar 11 07:34:17 2014 -0400"
      },
      "message": "Fix inverted conditionals in setup_develop\n\nThis fixes regressions introduced by:\n    Change-Id: Ic97e68348f46245b271567893b447fcedbd7bd6e\n    (\"Handle non-zero exit code from git diff\")\n\nChange-Id: I053a292c287f3035eef37db2264eda06a170f9bc\nCloses-Bug: 1287513\n"
    },
    {
      "commit": "b27f16d71660f75fcd82a035cdaf2b2eddec99ce",
      "tree": "c58360682901f545cd1c5a9b788ba0b884966b2d",
      "parents": [
        "0dfbf9b4b91c0b95fdaa1735471c2e6f15326098"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 28 14:29:02 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Mar 10 14:10:56 2014 +1100"
      },
      "message": "Detect missing packages with yum\n\nyum -y doesn\u0027t report an error when packages are missing (see [1] for\nupstream discussion).  Thus we run the output of yum through a small\nawk script looking for missing packages output.\n\nThe one change required for RHEL is that python-wsgiref is included in\nthe distro python, so doesn\u0027t need a separate package.\n\n[1] https://bugzilla.redhat.com/show_bug.cgi?id\u003d965567\n\nChange-Id: I9908ff4edbf2b0d961d25837a08a34e1417bbb02\n"
    },
    {
      "commit": "5894db323ff528c56bd036243ee15aad91e34fef",
      "tree": "4c6cdb2ebdbbee3efca8b0ee09936616e1226c53",
      "parents": [
        "f0ea4b0dda62e321c11078164d821575a17146c0",
        "d20f632a70565003ab8c72b2598201be79f4d782"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Mar 01 13:11:14 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Mar 01 13:11:14 2014 +0000"
      },
      "message": "Merge \"Move some comments of variables to right place\""
    },
    {
      "commit": "3208d7ad43d665536c523a37b33c2a6491529b3e",
      "tree": "0f4ebf4fe0c4b17f62bdccf4e0e35380c209c96a",
      "parents": [
        "2cf03d246998acf5c387a5855c36b25a1b791cb8",
        "83b6c99b503dced1e92761e1de8ceaf23a396453"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Feb 28 17:30:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Feb 28 17:30:35 2014 +0000"
      },
      "message": "Merge \"Handle non-zero exit code from git diff\""
    },
    {
      "commit": "2cf03d246998acf5c387a5855c36b25a1b791cb8",
      "tree": "d7bbf68d340108ee5fd7d4ba681539d1dc963c4d",
      "parents": [
        "f07a209ce01e2d34c3624244da040537b6006bf9",
        "1237922b655d8ab1690b88c718d7002415ce1201"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Feb 28 07:33:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Feb 28 07:33:42 2014 +0000"
      },
      "message": "Merge \"make service_check fatal\""
    },
    {
      "commit": "dad6e4114d07978ade5ab5594d4b5b19e998bdb5",
      "tree": "9c867402960f933ca6384a2b87d75ec954f9eba8",
      "parents": [
        "4b76faa32b21964dc72a055f65172199618edeee",
        "aee18c749b0e3a1a3a6907a33db76ae83b8d41d9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Feb 28 06:32:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Feb 28 06:32:20 2014 +0000"
      },
      "message": "Merge \"Enforce function declaration format in bash8\""
    },
    {
      "commit": "d20f632a70565003ab8c72b2598201be79f4d782",
      "tree": "5df8b8c900b560e183822d4ae1337ba722096a12",
      "parents": [
        "3ac259c6856b0f8f7fb24b987f83868c86517396"
      ],
      "author": {
        "name": "Masayuki Igawa",
        "email": "igawa@mxs.nes.nec.co.jp",
        "time": "Fri Feb 28 09:22:37 2014 +0900"
      },
      "committer": {
        "name": "Masayuki Igawa",
        "email": "igawa@mxs.nes.nec.co.jp",
        "time": "Fri Feb 28 10:35:49 2014 +0900"
      },
      "message": "Move some comments of variables to right place\n\nsetup_develop*() in functions has been moved to functions-common. But\nsome comments about the variables are still left.\nThis commit moves it to the right place.\n\nChange-Id: Ic360454f1ee72f51c9979d0468dee0913e9b32e4\n"
    },
    {
      "commit": "a340d68b1b4d8572865c59d3c93ca8cb65a8c6d8",
      "tree": "a9271cfd95d68ecea1b6e36fab16882d9280e258",
      "parents": [
        "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c",
        "f6368d3eaccc33d5afdbc53a34bf6e37b6e11eb8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 27 22:38:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 27 22:38:33 2014 +0000"
      },
      "message": "Merge \"Fix comments about System Functions\""
    },
    {
      "commit": "1237922b655d8ab1690b88c718d7002415ce1201",
      "tree": "ebe5cb5086ced5a3c7c767c314408292882032c5",
      "parents": [
        "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Thu Feb 27 17:16:46 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Thu Feb 27 17:16:46 2014 -0500"
      },
      "message": "make service_check fatal\n\nif we fail service check, we should do so in a fatal way, because\nsomething is not right. This will be very useful in grenade.\n\nChange-Id: I18811b0d8e6d06f364685c366cdc8f5dda3b8f7e\n"
    },
    {
      "commit": "aee18c749b0e3a1a3a6907a33db76ae83b8d41d9",
      "tree": "01a8ab5abb9867986f3e848918abd9e749b691cd",
      "parents": [
        "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 21 15:35:08 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 28 07:59:03 2014 +1100"
      },
      "message": "Enforce function declaration format in bash8\n\nCheck that function calls look like ^function foo {$ in bash8, and fix\nall existing failures of that check.  Add a note to HACKING.rst\n\nChange-Id: Ic19eecb39e0b20273d1bcd551a42fe400d54e938\n"
    },
    {
      "commit": "83b6c99b503dced1e92761e1de8ceaf23a396453",
      "tree": "a07ccdccf2d154900e5068a6ca6df6416662fb88",
      "parents": [
        "003a6a3e1032d882aeff250d3098d48e1315ef1f"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Feb 27 12:41:28 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Feb 27 12:41:32 2014 -0600"
      },
      "message": "Handle non-zero exit code from git diff\n\nThe check for a changed repo in setup_develop() \u0027git diff --exit-code\u0027\nreturns a status of 1 when the repo has changes; trap that so errexit\ndoes not abort the script.\n\nBug-Id: 1285780\nChange-Id: Ic97e68348f46245b271567893b447fcedbd7bd6e\n"
    },
    {
      "commit": "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c",
      "tree": "4056ee5ee2cec8d7bc1f6ba03832421792f18403",
      "parents": [
        "003a6a3e1032d882aeff250d3098d48e1315ef1f",
        "09bd7c8fd5a662ef697eb61638efbe862a4875a6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 27 14:57:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 27 14:57:43 2014 +0000"
      },
      "message": "Merge \"enable -o errexit\""
    },
    {
      "commit": "003a6a3e1032d882aeff250d3098d48e1315ef1f",
      "tree": "44393659e0f1978e01e8c9adde56800b1ddcdb29",
      "parents": [
        "52730e49e59803db3720d6e2d9ace1ec03d728bd",
        "af616d93411a9a446ce0d2e72ea4fb7d281cd940"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 27 12:32:54 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 27 12:32:54 2014 +0000"
      },
      "message": "Merge \"Move setup_develop() to common\""
    },
    {
      "commit": "09bd7c8fd5a662ef697eb61638efbe862a4875a6",
      "tree": "f23aece18c5b5f4e4f496f33e416f7a3bdfdc94c",
      "parents": [
        "a25a6f6d80cb844f13540fecf616b289c42e3ebe"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Mon Feb 03 08:35:26 2014 +0900"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Thu Feb 27 06:30:37 2014 -0500"
      },
      "message": "enable -o errexit\n\ndevstack should run under -o errexit to ensure that we fail early\nwhen something has gone wrong, otherwise determination of the root\nfailure location is often quite challenging.\n\nthis clears all the normal use cases for devstack, there could be\ntests which now die early, which we\u0027re going to have to check for\nlater.\n\nChange-Id: Ibd828c4f4fd95a60d3918d3d7ae90e10649479ab\n"
    },
    {
      "commit": "cf7237c505689055521a23d9ba4c18c116fec9c6",
      "tree": "e970de8c97fc6d8228d3b886882226e5874a2596",
      "parents": [
        "df43b5c8281d8abd73bd9753831e62ba154dc38b",
        "d53ad0b07d3e7bdd2668c2d3f1815d95d4b8f532"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 27 04:31:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 27 04:31:40 2014 +0000"
      },
      "message": "Merge \"Add GIT_TIMEOUT variable to watch git operations\""
    },
    {
      "commit": "a25a6f6d80cb844f13540fecf616b289c42e3ebe",
      "tree": "5a8d6536154d0faccc32477378e171f3bea42ded",
      "parents": [
        "ebd1321fcbbd3a010798a5bb1aaab523b078b385"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 24 16:03:41 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 26 13:17:36 2014 -0600"
      },
      "message": "Unbuffer log output\n\n* Force-flush log output so we don\u0027t lose log output in certain error cases.\n* Slow down exit paths: add sleep to die(), wait until last moment to\n  kill child processes (including the awk log output filter)\n\nChange-Id: I1620fd33b89b237d9c2bb6206f3de2c81719f676\n"
    },
    {
      "commit": "45917cc4d941a530d75a84fa4dff738fe87f928b",
      "tree": "864d1991c2795949c6fc643c422fea6ee6a3d168",
      "parents": [
        "f1eb0475d9320875f1a6c4a9c398e9388350d206"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Mon Feb 24 16:09:14 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Tue Feb 25 06:25:14 2014 -0500"
      },
      "message": "xtrace less\n\nwe are xtrace happy, however that\u0027s just generating bulk in log\nfiles that are mostly ignorable. For the basically bullet proof\nfunctions we should not xtrace.\n\nChange-Id: Iab4e6d270c1546e0db2a06395cefcdf7f7929c3c\n"
    },
    {
      "commit": "af616d93411a9a446ce0d2e72ea4fb7d281cd940",
      "tree": "73c5cf72c66d2a9c9c44f3a64dc7c9e4825a8917",
      "parents": [
        "4df996bcc6ffd0236576b81aaf50d09adc8042a1"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 17 12:57:55 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 24 10:38:18 2014 -0600"
      },
      "message": "Move setup_develop() to common\n\nIt\u0027s in the wrong place for current Grenade\n\nChange-Id: Ia670198332af5945a56d708cd83d9239df0c2287\n"
    },
    {
      "commit": "d53ad0b07d3e7bdd2668c2d3f1815d95d4b8f532",
      "tree": "6d2ee0246583eb37ec60acc5c538a37ebb4a3989",
      "parents": [
        "535e0089e0656fd4fcaa36ad5abc3653a9a45ff0"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Feb 20 13:55:13 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Feb 24 09:35:19 2014 +1100"
      },
      "message": "Add GIT_TIMEOUT variable to watch git operations\n\nDuring my CI testing of each devstack change I can often see git get\nitself stuck and hang indefinitely.  I\u0027m not sure if it\u0027s transient\nnetwork issues, or issues at the remote end (seen with both github.com\nand git.openstack.org) but it hits fairly frequently.  Retrying the\ncommand usually gets it going again.  Searching for \"git hanging\" and\nsimilar shows its not entirely uncommon...\n\nThis adds a watchdog timeout for remote git operations based on a new\nenvironment variable GIT_TIMEOUT.  It will retry 3 times before giving\nup.  The wrapper is applied to the main remote git calls.\n\nChange-Id: I5b0114ca26b7ac2f25993264f761cba9ec8c09e1\n"
    },
    {
      "commit": "f6368d3eaccc33d5afdbc53a34bf6e37b6e11eb8",
      "tree": "4dda49b8773031c1a9b81fd96e866af062be977e",
      "parents": [
        "4fa0401d3386b56f66efc50712463fbabdc8fc80"
      ],
      "author": {
        "name": "Masayuki Igawa",
        "email": "igawa@mxs.nes.nec.co.jp",
        "time": "Thu Feb 20 13:31:26 2014 +0900"
      },
      "committer": {
        "name": "Masayuki Igawa",
        "email": "igawa@mxs.nes.nec.co.jp",
        "time": "Thu Feb 20 13:34:28 2014 +0900"
      },
      "message": "Fix comments about System Functions\n\nThis commit fixes comments about \"System Functions\".\n * Add a missing comment about System Functions in the header\n * Fix singular to plural like others\n\nChange-Id: I3feb94cd11a6683ca80093574d60fdf7420e3af2\n"
    },
    {
      "commit": "abc7b1d765665b66a027fe93c841b62e537c7843",
      "tree": "9ef7a16dbcc1b9be32b528bdbcfdee504af77b45",
      "parents": [
        "dff49a242eef817efa23d4e808aaa6a74ac82ed0"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 12 12:09:22 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 12 12:10:32 2014 -0600"
      },
      "message": "Backport Grenade updates\n\nBackport changes made in Grenade\u0027s copy of functions since the last sync:\n* d0654b9,i 4c7726e - get_release_name_from_branch()\n* 7907766 - edits to install_package()\n\nChange-Id: I0714c0b1072f1360c3c08fe24225e65e2a550fad\n"
    },
    {
      "commit": "dff49a242eef817efa23d4e808aaa6a74ac82ed0",
      "tree": "fee5ccd8ef9805ee1589fd58286ab37eeca8f041",
      "parents": [
        "cc3fcc8c8ebbe0a2cec43e7c6e0f96aae4949764"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jan 30 15:37:40 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 12 12:10:11 2014 -0600"
      },
      "message": "Split functions\n\nMove shared and non-DevStack-specific functions to `functions-common`.  This is\na code move only with some updated comments.  The functions are now\nsorted alphabetically within function groups, eg. all git-related functions\nare grouped together.  The groups are listed at the top of the file.\n\n\u0027functions\u0027 sources \u0027functions-common\u0027 so no additional changes are required\nfor backward-compatability.\n\nAll functions shared with Grenade have also been moved.\n\nfunctions-common was created from commit e0ed8ea038299952826b27a16753775472f108d8\n\nChange-Id: I73bf7134fd6a60ec1ea44a5bfab08b0569b60ded\n"
    }
  ]
}
