)]}'
{
  "log": [
    {
      "commit": "eadfb4d5c88d2dec2842ba8986df42f111d4a7a8",
      "tree": "8aada76a0d835f082c72dfda2fe3848f4794283e",
      "parents": [
        "b0862961c9ea3b4e0bc5b3f7f7e5b2ff4cb027a7"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Fri Oct 06 14:48:07 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Oct 06 16:59:36 2017 -0700"
      },
      "message": "aiaiai-test-patchset: Ignore checkpatch\u0027s CONST_STRUCT\n\ncheckpatch.pl can generate a ton of false positive warnings when used\nwith CONST_STRUCT, so ignore those warnings to make its output useful\nagain.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\n"
    },
    {
      "commit": "b0862961c9ea3b4e0bc5b3f7f7e5b2ff4cb027a7",
      "tree": "4457ce09e7bed43380e91009cdc51ed2230bfe86",
      "parents": [
        "ad4042349371c7e6caface81d6579d5d9aa4b11a"
      ],
      "author": {
        "name": "Daniel Thompson",
        "email": "daniel.thompson@linaro.org",
        "time": "Thu Oct 05 22:33:57 2017 +0100"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Oct 05 15:29:39 2017 -0700"
      },
      "message": "test-patchset: Make a copy of const_structs.checkpatch\n\nCurrently aiaiai issues the following warning for each patch under test\nbecause recent versions of checkpatch look for a list of structures in\nscripts/const_structs.checkpatch .\n\nThis patch fixes the problem by copying out the extra file (if one is\nfound).\n\nSigned-off-by: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "ad4042349371c7e6caface81d6579d5d9aa4b11a",
      "tree": "c15d9387c4b27eefc182f715c72192d2f85e6d71",
      "parents": [
        "a6594f236b27969880e98fb206bfa0cf6a475d91"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Wed Jun 14 10:57:29 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 14 14:57:24 2017 -0700"
      },
      "message": "README: Provide an example hook script\n\nProvide a simple hook script that just looks at the X-Aiaiai-Project\nheader that could be added, with e.g:\n\ngit format-patch --add-header\u003d\"X-Aiaiai-Project: foo\" while formatting\npatches.\n\nThis is enough to avoid per-project email addresses.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "a6594f236b27969880e98fb206bfa0cf6a475d91",
      "tree": "de60fdbadaf69b566295016a9143467b70d20caf",
      "parents": [
        "4a89f9f367f3292bfa881dfd99a74ea204e8bb84"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Wed Apr 12 13:54:21 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 12 15:27:21 2017 -0700"
      },
      "message": "README: Improve my-email-lda script\n\nIn case someone may want to simply copy/paste the example, make that\npossible by providing the necessary shebang and properly quote the log\nfile argument.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\n"
    },
    {
      "commit": "4a89f9f367f3292bfa881dfd99a74ea204e8bb84",
      "tree": "7a0607f851017393106fa57a5e0ffdb93dbc64d0",
      "parents": [
        "9d2e23936bec2d22ebc8db6b02dc8d7a7812a77c"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Wed Apr 12 13:54:22 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 12 15:27:20 2017 -0700"
      },
      "message": "README: Explain how email delivery works wrt. projects\n\nWithout looking at the code, it may not be entirely obvious that we may\nneed a custom hook just to print X-Aiaiai-Project and avoid the need for\nper-project email addresses.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\n"
    },
    {
      "commit": "9d2e23936bec2d22ebc8db6b02dc8d7a7812a77c",
      "tree": "912980d044f460c9085e30e22ab43e6ebde2dfba",
      "parents": [
        "e61f6d494e2842dc5de22d6e13567ee1df1fd0b7"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Wed Apr 12 13:54:23 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 12 15:27:20 2017 -0700"
      },
      "message": "aiaiai: Include User\u003daiaiai in services files\n\nMost installations will certainly run with the aiaiai username for\nsimplicity so make these files copy/pastable into an existing\ndistribution\u0027s systemd directory.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\n"
    },
    {
      "commit": "e61f6d494e2842dc5de22d6e13567ee1df1fd0b7",
      "tree": "8e541d932c06c1fd12ef008186fa113834b76ba9",
      "parents": [
        "e815e2872032f04ef7e51c225df1d8928b8abdf9"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Wed Apr 12 13:54:24 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 12 15:27:20 2017 -0700"
      },
      "message": "packaging: Add a .gitignore file\n\nIgnore *.tar.bz2 and *.rpm in preparation for subsequent changes.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\n"
    },
    {
      "commit": "e815e2872032f04ef7e51c225df1d8928b8abdf9",
      "tree": "23928408820120d400637dbdbf68a88d83a6bfcf",
      "parents": [
        "881c415c242729c07aefd73484d528f949d5ccc7"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "f.fainelli@gmail.com",
        "time": "Wed Apr 12 13:54:25 2017 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 12 15:27:20 2017 -0700"
      },
      "message": "packaging: Add a \"rpm\" make target\n\nIt requires the tarball to be created and will create a source RPM in\nthe current directory.\n\nSigned-off-by: Florian Fainelli \u003cf.fainelli@gmail.com\u003e\n"
    },
    {
      "commit": "881c415c242729c07aefd73484d528f949d5ccc7",
      "tree": "1a6225cf3ee072c81bb182a9342381e81ab5a720",
      "parents": [
        "00e241d68a4cb5067d0d145fe6492e69f1a777dd"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 22 10:55:52 2016 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 22 10:55:52 2016 -0700"
      },
      "message": "email: protect output of subject_m in quotes\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "00e241d68a4cb5067d0d145fe6492e69f1a777dd",
      "tree": "1244ce3ac42be1dc70fee30399512bdb7d79dd47",
      "parents": [
        "bd31a63979d46ff6fa941f1711921cd29e4f607e"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Aug 26 13:54:06 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Aug 26 13:54:06 2015 -0700"
      },
      "message": "aiaiai-email-test-patchset: notify admin when patches can\u0027t find base\n\nAlso notify the administrator of aiaiai when a user\u0027s patch gets\nrejected by the hook.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "bd31a63979d46ff6fa941f1711921cd29e4f607e",
      "tree": "df55f899bc08617a3dc7955f87e75c228b346262",
      "parents": [
        "58ef2bccea518a0b27a2c61fe68296e3a954682d"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 25 18:04:22 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Aug 26 13:33:00 2015 -0700"
      },
      "message": "aiaiai-email-lda: allow reaping of series directories\n\nreap_old did not remove series directories, because \"rm -f\" does not\nremove directories. However, adding just \"-r\" to the rm command results\nin extraneous \"directory does not exist\" because find will be searching\nmore than one depth. Change reap_old to have a max depth of 1 so that it\ndoesn\u0027t descend into directories and will happily remove series\ndirectories created inside of queue.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "58ef2bccea518a0b27a2c61fe68296e3a954682d",
      "tree": "d0176203dd592a94d796c37bebc1676144ed7feb",
      "parents": [
        "111034f1b9c7f5065dab8029d69ec42bbb4cc90d"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 25 18:00:06 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Aug 26 13:33:00 2015 -0700"
      },
      "message": "email-lda: use git-apply to more accurately find patch emails\n\nInstead of using the subject as the sole arbiter of whether an email\ncontains a patch, reject all emails which cannot be recognized by\ngit-apply. In this way, we can locate even patches with non-standard\nsubject lines. Use the subject line to differentiate between patch\nseries and individual patches when possible.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "111034f1b9c7f5065dab8029d69ec42bbb4cc90d",
      "tree": "9158aba5dd726ac5dd8dff66a2538d48a378c9e2",
      "parents": [
        "d5a1f29ffbe1448296dbcb4eeff2839977526002"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 25 16:31:22 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 25 16:31:22 2015 -0700"
      },
      "message": "autodetect-project: limit search to nearest annotated tag\n\nThis patch limits the search for patching patch-id commits to only check\ncommits since the most recent tag. This works well for the Linux kernel,\nas we only worry about exact resubmissions of recent work, that may have\nbeen applied before aiaiai could test it. This may not work for all\nprojects, and probably some sort of configurable setting should be\ncreated.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "d5a1f29ffbe1448296dbcb4eeff2839977526002",
      "tree": "5f6292433038ef016cec61b3eb3478b387346cdb",
      "parents": [
        "fdaff851c1ecba5441b0ede8d9b0c2f557cf0f67"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Aug 17 02:30:59 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Aug 17 02:30:59 2015 -0700"
      },
      "message": "aiaiai: don\u0027t check patch-id for revisions with no diff\n\nMostly merges, but some other revisions may not include a diff so we\nshould skip these revisions when we check for equivalent patch ids.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "fdaff851c1ecba5441b0ede8d9b0c2f557cf0f67",
      "tree": "769d349e8417ee3b666442fcbba15b63af9dbe24",
      "parents": [
        "b666a0e61b222d646945083f5de22dcbc71531d3"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Aug 14 15:21:02 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Aug 14 15:21:02 2015 -0700"
      },
      "message": "aiaiai: document reap_archive and reap_incomplete\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "b666a0e61b222d646945083f5de22dcbc71531d3",
      "tree": "a2657b1a0e0dd71550466462c5941be06a749e87",
      "parents": [
        "8ca608cd71f9bb8985e1f847d16b75d7c53e2a93"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Aug 14 15:12:34 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Aug 14 15:12:34 2015 -0700"
      },
      "message": "aiaiai: specify rev-list to correctly list revisions\n\nFix a typo aiaiai-email-autodetect-project to specify rev-list command\nalong with branch name rather than just the branch name.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "8ca608cd71f9bb8985e1f847d16b75d7c53e2a93",
      "tree": "4900072e4433830540dd58e8dcf8d23c881627be",
      "parents": [
        "29ee4436531f2f7e33b8d8f899589709bbdc2f59"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Aug 14 14:59:40 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Aug 14 14:59:40 2015 -0700"
      },
      "message": "aiaiai: use correct backref numbers for $m and $n\n\nFix subject handling of X/n patches which incorrectly pulled the subject\nout using the wrong prefix.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nFixes: 3531d588c7f4 (\"aiaiai-email-sh-functions: allow patches without PATCH prefix\")\n"
    },
    {
      "commit": "29ee4436531f2f7e33b8d8f899589709bbdc2f59",
      "tree": "3368d3d73a5f2d34d7502ea9a15d1fcb8cee81d9",
      "parents": [
        "89d31d354dde395ad4e6bbd14cc7b93b47f1ff23"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 16:09:34 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 16:09:34 2015 -0700"
      },
      "message": "email: update message on autodetect project failure\n\nUpdate the message so that it is more clear why git-find-base fails\ngenerally. The most common case is patches based on work which is not\nyet applied by the maintainer. The previous message did not make this\nclear, and thus users were confused.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "89d31d354dde395ad4e6bbd14cc7b93b47f1ff23",
      "tree": "0474af48f942704237aec3e750d634b05618f845",
      "parents": [
        "5b6acc1c2bc7d938437dcbdd22a55720b7f68554"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 16:07:14 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 16:07:14 2015 -0700"
      },
      "message": "email: skip applied patches in autodetect project\n\nUpdate the project autodetection hook to use git-patch-id to search for\npatches which have already been applied. This helps ensure that patches\nwhich have already been applied to the \"branch_base\" are skipped with a\ndifferent warning message. Otherwise, git-find-base will not work for\nthese patches, and they will be sent a more confusing message.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "5b6acc1c2bc7d938437dcbdd22a55720b7f68554",
      "tree": "4fac5d84025674bf28438a1d8ef4ff8d98bba25b",
      "parents": [
        "81bcdb7bdaec2b6b43d15eaf0509445c96aef17c"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 15:17:48 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 15:17:48 2015 -0700"
      },
      "message": "send-mail-on-failure: specify correct directory\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "81bcdb7bdaec2b6b43d15eaf0509445c96aef17c",
      "tree": "e5feb037db7d5d79b3469526e932f32ed49f563a",
      "parents": [
        "b7f7ede9aadd4b77397bf012f957ec0002a22446"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Wed Aug 05 08:52:25 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 11 15:12:29 2015 -0700"
      },
      "message": "aiaiai-test-patchset: remove leftover \u0027wait for bisect test\u0027 code\n\nI didn\u0027t notice this code in my first (quick) pass at fixing a race\ncondition here. Apparently we *were* trying to wait for the bisection\ntest to complete, but we just weren\u0027t doing it at the right time.\n\nAnyway, with the current code, multi-config test runs will fail, since\nthe second config will have a valid $pid_bisect from the previous\nconfig, meaning we will try to \u0027wait\u0027 again for the same expired\nprocess. The shell doesn\u0027t like that, so we fail.\n\nLet\u0027s move the bisect process\u0027s PID into a function-local context, and\nensure that each config is completely finished before moving to the next\none. So there will be a single, obvious place to wait for the process\ncompletion.\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "b7f7ede9aadd4b77397bf012f957ec0002a22446",
      "tree": "50676753fde0297b6d8b92d488812ddb6893eae7",
      "parents": [
        "3531d588c7f45c2c9c74ebeb4096595545e2730b"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Tue Aug 04 16:29:24 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 04 16:32:10 2015 -0700"
      },
      "message": "aiaiai-test-patchset: sync with bisection test before moving on\n\nFor whatever reason (parallelism, I suppose?) we fork the bisectability\ntest to the background and continue -- we only sync with this test after\nall configs are completed. This is bad for a number of reasons.\n\n1. commit 2115f7ff0592 (\"aiaiai-test-patchset: optimize disk space\")\n   introduced a race condition, where we might try to blow away the\n   build objects before the bisection test is complete. This is really bad.\n\n2. Theoretically, we could have more than one bisection test forked to\n   the background, if there are more than 1 running config. But we\n   clobber $pid_bisect every time we run test_configuration(), so we\n   effectively only sync with the last one. This is *usually* OK,\n   because the prior config can likely complete by the time subsequent\n   config(s) complete, but that\u0027s still technically a race.\n\nSo, let\u0027s move the \u0027wait $pid_bisect\u0027 into the test_configuration()\nfunction, to make sure the test is complete before we move to the next\nconfig (and remove the build objects). While this removes a little bit\nof parallelism, I suspect that parallelism was unintentional.\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "3531d588c7f45c2c9c74ebeb4096595545e2730b",
      "tree": "88a345803001a5f605e846f9faeef72387c0d686",
      "parents": [
        "d3bf93d6dc18a436357eed21a948e0bc2c31980d"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jul 15 17:16:03 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Aug 04 16:31:41 2015 -0700"
      },
      "message": "aiaiai-email-sh-functions: allow patches without PATCH prefix\n\nNot all patches are submitted with a PATCH prefix. This patch enables\nthe PATCH prefix to be left out, and hopefully cover more patches in\ntesting.\n\nFuture work should include a more robust way of determining if an email\nis a patch that does not rely on the subject format, such as searching\nfor the diff line.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "d3bf93d6dc18a436357eed21a948e0bc2c31980d",
      "tree": "9d8ee75e96a6bfbbce64a816e5d5dad6070e1230",
      "parents": [
        "0f7dc44714e8d823e957004f7d9868357c22a326"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jul 15 16:31:31 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jul 15 16:31:31 2015 -0700"
      },
      "message": "aiaiai: update systemd unit files\n\nThe current approach uses user instance of systemd, instead of running\nunder root\u0027s instance with a \"User\u003d\" blurb. Also add a README file\nindicating the purpose of these scripts and service files.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "0f7dc44714e8d823e957004f7d9868357c22a326",
      "tree": "b1175bb9e312f0e52cfe59d32597a9c2c00cd4fe",
      "parents": [
        "ca15664fa8112dc763c8ff1bd63bb7ea2fa412c9"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jul 15 16:14:43 2015 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jul 15 16:14:43 2015 -0700"
      },
      "message": "aiaiai-project-update: ignore repos without a path\n\nIf the repository isn\u0027t yet checked out, don\u0027t completely fail. Future\nTODO is to try and figure out a way to automatically clone the\nrepository. However, currently repositories are stored per-project and\nmultiple URLs could end up being used as remotes, which makes it\ndifficult to determine the right way to clone the repository. In\naddition, reverse-lookup of project from path is not really easy to do.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "ca15664fa8112dc763c8ff1bd63bb7ea2fa412c9",
      "tree": "4dac0166345aebd7de51af30e4ed9c1c99b2ca0c",
      "parents": [
        "cbce25df314f4245916fe3c48505fa005521f0db"
      ],
      "author": {
        "name": "Daniel Thompson",
        "email": "daniel.thompson@linaro.org",
        "time": "Fri Jan 23 10:09:29 2015 +0000"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Jan 23 13:16:16 2015 -0800"
      },
      "message": "test-patchset: Make a copy of the typo dictionary\n\nCurrently aiaiai issues the following warning for each patch under test:\nNo typos will be found - file \u0027/tmp/aiaiai-test-patchset.32BU/checkpatch/spellin\ng.txt\u0027: No such file or directory\n\nIn fact the problem can even more acute when testing older kernels that do not\nhave this patch:\n  https://lkml.org/lkml/2014/10/22/609\n\nThis patch fixes the problem by copying out the typo dictionary if one is\nfound.\n\nSigned-off-by: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e\nTested-by: Lee Jones \u003clee.jones@linaro.org\u003e\n"
    },
    {
      "commit": "cbce25df314f4245916fe3c48505fa005521f0db",
      "tree": "efee9c41a0c71046df2347a63e0e6d96bc54109f",
      "parents": [
        "8ea3b501e2be6eca7337fe76dc0a60dfaee51bcb"
      ],
      "author": {
        "name": "Robert Jarzmik",
        "email": "robert.jarzmik@free.fr",
        "time": "Thu Nov 06 19:50:28 2014 +0100"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Nov 13 10:50:26 2014 -0800"
      },
      "message": "aiaiai-email-lda: use the References mail header\n\nAiaiai local mail delivery agent should be able to cope with forwarded\nmails, not only git-send-email.\n\nOne popular method of forwarding a mail thread is to have it embedded in\na single mulitpart mail in rfc822 format. But this transformation\nchanges the In-Reply-To: headers into References: headers.\n\nThe goal of this patch is to teach aiaiai LDA to understand both\nIn-Reply-To and References in its mail handling. This enables mail\nforwarding.\n\nJacob:\n  Fix up variable quotes in the README example.\n  Fix up style for mail headers, and fix a typo.\n\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "8ea3b501e2be6eca7337fe76dc0a60dfaee51bcb",
      "tree": "49d669b913b6c071bd16aea9d5b777137b227f79",
      "parents": [
        "2115f7ff059260732208d9330d8d8db17734dfab"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Nov 13 10:35:05 2014 -0800"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Nov 13 10:35:05 2014 -0800"
      },
      "message": "TRIVIAL: fix spacing issue in aiaiai-test-patchset\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "2115f7ff059260732208d9330d8d8db17734dfab",
      "tree": "f05cd7fbb5e6cf5a31544ef64272845e233fda80",
      "parents": [
        "6b916dbae65a2ea9ffb7f1519fadf600d441472c"
      ],
      "author": {
        "name": "Robert Jarzmik",
        "email": "robert.jarzmik@free.fr",
        "time": "Thu Nov 06 20:46:50 2014 +0100"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Nov 13 10:33:40 2014 -0800"
      },
      "message": "aiaiai-test-patchset: optimize disk space\n\nWhen compiling multiple defconfigs, remove the build tree between\neach compilation to spare disk space.\n\nIn this way the build trees don\u0027t accumulate on the disk while\ntesting the same patchset, and the patchset scales with the\nnumber of defconfigs, which is not limiting the build anymore.\n\nJacob:\n  Honor preserve variable, so that when requested we maintain files.\n\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "6b916dbae65a2ea9ffb7f1519fadf600d441472c",
      "tree": "93f30c6291fd3e6200bca154911910e99571eac0",
      "parents": [
        "aee7e5d9877e4a1913b6ce5679e5baf8e9b35589",
        "c39ed20655e0d11cb5e04452f5b1a6492c3af71e"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Nov 13 10:27:23 2014 -0800"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Nov 13 10:27:23 2014 -0800"
      },
      "message": "aiaiai: merge development work\n\nThe development branch has been stable in my test environment for a\nwhile now. I think now is a good time to get these changes back into\nmaster.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "c39ed20655e0d11cb5e04452f5b1a6492c3af71e",
      "tree": "6cf97927e4b38b045d0c69e4bd8250a18f197bb7",
      "parents": [
        "c0a83c5d36444c5f8a5b1de418eda8a2f24a92df"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Sep 24 11:23:15 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Sep 24 11:25:19 2014 -0700"
      },
      "message": "test-patchset: add [no] options for each checker\n\nAlso, enable checkpatch.pl by default unless otherwise disabled. This\nfixes a compatibility regression introduced by 33c41203f0c9\n(\"aiaiai-test-patchset: make checkpatch optional like other checkers\")\nas well as provides disable options for once aiaiai-test-patchset\nsupports a configuration file.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "c0a83c5d36444c5f8a5b1de418eda8a2f24a92df",
      "tree": "4d8ca4ce318dfb572d8648a8a16e9b101d7ab4c7",
      "parents": [
        "d2be7d6292b945f5ec4641223c1c5ca9bfdb5679"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Wed Sep 17 17:08:00 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Sep 24 11:12:55 2014 -0700"
      },
      "message": "aiaiai-test-patchset: document --checkpatch option\n\ncommit 33c41203f0c9 (\"aiaiai-test-patchset: make checkpatch optional\nlike other checkers\") added the --checkpatch, and disabled its\nfunctionality by default. The least we can do is document it!\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "d2be7d6292b945f5ec4641223c1c5ca9bfdb5679",
      "tree": "092d50227824b9d2d87832b048c1bf5f2e04e4f1",
      "parents": [
        "182375f6a2348bc2685ceddc9fb7e9096a34a6a2"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Wed Sep 17 17:07:59 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Sep 24 11:12:36 2014 -0700"
      },
      "message": "aiaiai-diff-log-helper: spelling\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "182375f6a2348bc2685ceddc9fb7e9096a34a6a2",
      "tree": "dfa7071c07d9d894ff1ad5f0959dac7fc40d036a",
      "parents": [
        "1f7a45b8a148056606cadc7281c4926bb80a6a4c"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Sep 09 14:40:14 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Sep 09 14:40:14 2014 -0700"
      },
      "message": "aiaiai: update TODO.txt to include note about randconfig\n\nCurrently there is no good way to add an attachment to the email, and so\nwe don\u0027t really have a way to add the random configuration as an\nattachment. Update the TODO to indicate that we need a solution for this\nissue. (Random configurations failures are less useful if we can\u0027t show\nhow to reproduce them in our response email).\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "1f7a45b8a148056606cadc7281c4926bb80a6a4c",
      "tree": "6ca2868d1e3fdefc17ca2b385cc4aec2b14cff67",
      "parents": [
        "a57817f4dc7a6eb9cca21b4197a0df332c7d78a0"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Sep 08 16:55:08 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Sep 08 17:06:59 2014 -0700"
      },
      "message": "aiaiai: test all patches when testing bisection\n\nInstead of only testing until a patch series fails, we should test every\npatch. This provides more information, and does not seriously harm the\noutput. To take advantage of this, we also have to modify our check for\n\"base commit failed but it is fixed in the first patch\". We simply say\nthat the base commit failed and is fixed as long as the series has no\nfailures.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "a57817f4dc7a6eb9cca21b4197a0df332c7d78a0",
      "tree": "53ed17c7df8c910d027a60dbc5c3dc01b793c207",
      "parents": [
        "3d4e1317a27b872e2647ad10b4943cee33a4efa5"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Sep 08 16:53:06 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Sep 08 17:06:59 2014 -0700"
      },
      "message": "aiaiai: cleanup display of randconfig builds\n\nThis patch removes some code attempting to show the random configuration\ngenerated for the build. It does not correctly show up in the email, so\nI need to spend some time figuring out where to display the\nconfiguration file.\n\nAdditionally, clean up some display about generating the random config\nso that we don\u0027t see the errors. Also we do a make mrproper to cleanup\nany generated files so that builds will be clean when we start.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "aee7e5d9877e4a1913b6ce5679e5baf8e9b35589",
      "tree": "bdf0c31a3cc3ec9270c8577f89c6d07723c5d3fd",
      "parents": [
        "f1d1c41bffaaedda38ae2fcc85cd6a4fd9bc5fc0"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Sat Sep 06 23:55:09 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Sep 08 16:15:48 2014 -0700"
      },
      "message": "README: spelling\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\n"
    },
    {
      "commit": "3d4e1317a27b872e2647ad10b4943cee33a4efa5",
      "tree": "5e6641cbbde986a69e2a6148004bbedb69665487",
      "parents": [
        "f1d1c41bffaaedda38ae2fcc85cd6a4fd9bc5fc0"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Jul 10 16:36:37 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jul 16 13:13:08 2014 -0700"
      },
      "message": "test-patchset: allow proper support for randconfig\n\nMake randconfig pre-generate a configuration so that the pre and post\npatch series builds use the same configuration (vs using random configs\neach time). In addition, append the random configuration whenever there\nis a build diff, so that the user can see.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "f1d1c41bffaaedda38ae2fcc85cd6a4fd9bc5fc0",
      "tree": "3e9a18cad1f2813c8320b61d617f89e899b2cb2e",
      "parents": [
        "6d3e5c2138b672c1e31d276979c8f2e3c58136da"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 13:43:52 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 14:21:27 2014 -0700"
      },
      "message": "libshell: use a git submodule to track upstream libshell project\n\nRather than inlining the various libshell code we need, just add a git\nsubmodule pointing to the upstream tree. This makes it easier to manage\nchanges rather than having to hand merge them. This brings with it\nseveral bug fixes and changes from the upstream project, so may require\nsome patience to work out any subtle changes.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "6d3e5c2138b672c1e31d276979c8f2e3c58136da",
      "tree": "1016534579140cd0c2780927f5e8162e0b737377",
      "parents": [
        "5798efe09211e275e88ca4d3a9c5a2c466c36676"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 14:54:02 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 14:11:52 2014 -0700"
      },
      "message": "email-test-configuration: add helper program to debug configuration\n\nThis script is very useful for debugging the configuration file. It\ntakes a snapshot of the environment before and after parse_config and\nafter each parse_prj_config, and then uses diff to display the output.\nThis makes it very easy to see if the configuration is being read as\ndesired. This script has already helped debug an issue in the\nshell_ini_config parser.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "5798efe09211e275e88ca4d3a9c5a2c466c36676",
      "tree": "88199069cafee2835383bfab95234524bf6582de",
      "parents": [
        "c8827838b25b3ad41305ee217a2bf62cda55954a"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 14:51:58 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 14:11:52 2014 -0700"
      },
      "message": "email-test-patchset: fix typo for the bisectability flag\n\nThe bisectability flag had a typo, and thus was never getting enabled.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "c8827838b25b3ad41305ee217a2bf62cda55954a",
      "tree": "47a1f87a322e1526a79e3181abafd4212faf1cd2",
      "parents": [
        "bef5029f9b24d0aedd7c4ece832e03b2367cbfa8"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 14:50:55 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 14:11:52 2014 -0700"
      },
      "message": "config_check_boolean: add _ to yes and no markers\n\nThe config_check_boolean function had a bug, since no and yes were not\nproperly prefixed.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "bef5029f9b24d0aedd7c4ece832e03b2367cbfa8",
      "tree": "9e35cb610b7b1040cb11566b721c41fb980ece76",
      "parents": [
        "0e08241979720f34cfb7bb51677aa613b0f1301d"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Wed Jun 18 00:38:56 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 13:22:29 2014 -0700"
      },
      "message": "doc: drop reference to \u0027make\u0027\n\nWe don\u0027t have a top-level Makefile any more, and we automatically build\nthe helper tools if they aren\u0027t present, so drop the README reference.\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\n"
    },
    {
      "commit": "0e08241979720f34cfb7bb51677aa613b0f1301d",
      "tree": "cc439609c04a3cccfa94ef569c43549b670a72c4",
      "parents": [
        "33c41203f0c98ad5eca64d413c75c9cda012d6d1"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Wed Jun 18 00:43:38 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Jun 18 13:22:29 2014 -0700"
      },
      "message": "helpers: track dependencies in Makefile\n\nUpdates to remap-log.c and aiaiai-locker.c won\u0027t trigger rebuilds. Fix\nthat. Also use the pattern-matching shorthand \u0027%\u0027.\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\n"
    },
    {
      "commit": "33c41203f0c98ad5eca64d413c75c9cda012d6d1",
      "tree": "726fae7630ef047af297842b93c42aea95e2311f",
      "parents": [
        "02e21533ebb77adc67ffd2d045dad41d9fc47062"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Apr 17 16:27:35 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 11:41:00 2014 -0700"
      },
      "message": "aiaiai-test-patchset: make checkpatch optional like other checkers\n\nThis modifies behavior of aiaiai such that checkpatch will be an option\nmuch like sparse and coccinelle. In addition, only work if checkpatch.pl\nis found in the project at the requested location. Will disable\ncheckpatch if it cannot be found.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "02e21533ebb77adc67ffd2d045dad41d9fc47062",
      "tree": "e68298ca1873771ac7e6d5c82f30bc3eac22d883",
      "parents": [
        "2e9d51089b54460699953bd9d6f828262c7c6dea"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Apr 17 16:26:19 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 11:17:38 2014 -0700"
      },
      "message": "aiaiai-test-patchset: check for coccinelle scripts first\n\nRather than always archiving the coccinelle scripts, check to ensure\nthey exist first. This prevents issues when attempting to build a\nnon-kernel tree, (ie: ethtool). Will display a warning if coccinelle was\nrequested but no scripts were found.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "2e9d51089b54460699953bd9d6f828262c7c6dea",
      "tree": "f6de7c934ccc24d06a96b945e45262a4cff4776d",
      "parents": [
        "5c0229250b1f4c1e34405a508ee58ed91fffef35",
        "423f40362657a7c6d1c4d8284af4d280d35fff0e"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 11:02:59 2014 -0700"
      },
      "committer": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue May 27 11:02:59 2014 -0700"
      },
      "message": "aiaiai: merge development branch to master\n\nFinally merge the development changes after some fairly serious use in\nthe email environment. I have appended the shortlog below, as well as a\nhelpful short summary of the large changes in no particular order.\n\n* Moved as much as possible for configuring email setup to the cfgfile\n* Added several options previously not configurable at all\n* Add support for \"hooks\" framework, including a simple dispatcher hook\n* Add hook which automatically detects project based on git-index info\n* Add systemd scripts for the email setup\n* Allow default values for project configuration\n* Add script to help keep project repos up to date\n\nThese changes hopefully make configuration and setup of the email\nworkflow easier. In addition, the hook enabling automatic project\ndetection makes handling multiple project kernel trees much easier.\n\nArtem Bityutskiy (6):\n      test-pattchet: add a couple quotes\n      aiaiai-test-patchset: move --targets option down\n      aiaiai-diff-log-helper: fix logs diffing for gcc-4.8\n      aiaiai-checker: use --no-data for smatch\n      aiaiai-checker: ignore debugging output from spatch\n      TODO: remove a completed item\n\nJacob Keller (51):\n      Add support for choosing build targets\n      aiaiai-sh-functions: remove extra quotes in call to ini_config_get\n      aiaiai-test-patchset: use merge_addresses only once\n      aiaiai-sh-functions: remove [email] section from cfgfile\n      aiaiai-sh-functions: re-order options to match example config\n      aiaiai-email: add [defaults] section to config\n      aiaiai-email: move test-patchset options into the configuration file\n      aiaiai: don\u0027t allow arbitrary validator command\n      aiaiai-email: move -J bigjobs into configuration file\n      aiaiai-test-patchset: add missing colon on targets option\n      aiaiai-email-dispatcher-helper: fix typo on aiaiai\n      aiaiai-email-test-patchset: fix parameter substitution\n      aiaiai-email-test-patchset: move -- to end of all options\n      email: add \"debug\" section to configuration file\n      email-test-patchset: parse general configuration settings earlier\n      sh-function: add insert_header function\n      doc: add CONFIGURATION file describing the cfgfile\n      aiaiai: add initial support for dispatcher hook\n      hook: add support for X-Aiaiai-Project\n      aiaiai: fixup srcdir in email and gerrit scripts\n      dispatcher: add aiaiai-email-sh-functions to source list\n      doc: rename CONFIGURATION to configuration.txt\n      email: don\u0027t allow pcfg_branch to default\n      email: add canonical_url variable for list_projects\n      aiaiai: split sed project listing from list_projects\n      email: rename error_test_patchset_failed\n      aiaiai: change dispatcher hook to email hook\n      aiaiai: add git-find-base utility for finding base commit from mbox\n      email: example hook for aiaiai-email-test-patchset\n      aiaiai: use fail_usage on incorrect number of arguments\n      apply-patch: prefix diff output with \u0027\u003e \u0027\n      autodetect-project: fix change of function name\n      systemd: add scripts for running the aiaiai processes\n      email-hook: remove options that can\u0027t be used\n      git-find-base: Add authorship, copyright, and license notice\n      git-find-base: add detection for possible duplicate patches\n      git-find-base: add help text to the program\n      send-mail-on-failure: generalize email address\n      aiaiai-project-update: fix srcdir line from location change\n      aiaiai-project-update: fix typo of printf in usage statement\n      aiaiai-project-update: correct function to upstream change\n      git-find-base: rewritten to use newer design\n      aiaiai-email-test-patchset: correct hook calling to actually grab error\n      aiaiai: extract patches from email prior to using git-am\n      aiaiai-diff-log-helper: explicitely call out python2\n      aiaiai: add checks to configuration file\n      aiaiai-email-lda: move reap options to cfgfile\n      email: fix incorrect variable name in email for hook rejection\n      aiaiai: don\u0027t display log output from git-find-base\n      aiaiai: don\u0027t cat the $mbox file at begining of email-testpatchset\n      aiaiai: don\u0027t hardcode KCFLAGS or W\u003d1\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "423f40362657a7c6d1c4d8284af4d280d35fff0e",
      "tree": "f6de7c934ccc24d06a96b945e45262a4cff4776d",
      "parents": [
        "7ec4908cdd4471769bb0df985b09e0cf97d0310a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:32:59 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:36:49 2014 -0700"
      },
      "message": "TODO: remove a completed item\n\nI\u0027ve fixed the gcc 4.8 issue in\n\nd4b585c aiaiai-diff-log-helper: fix logs diffing for gcc-4.8\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "7ec4908cdd4471769bb0df985b09e0cf97d0310a",
      "tree": "981dc96b21aba1dd94bd541d107d36110c5b5618",
      "parents": [
        "6ea39986297d8a3c3206714891e607c23315341c"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:13 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:31:46 2014 -0700"
      },
      "message": "aiaiai: don\u0027t hardcode KCFLAGS or W\u003d1\n\nThis patch fixes the TODO item regarding hardcoded kernel make\nparameters. We now default -M to be \"KCFLAGS\u003d\u0027-Wno-missing-initializers\n-Wno-sign-compare\u0027 W\u003d1\", and allow redefining the option via the email\nconfiguration line or the command line setting for aiaiai-test-patchset\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "6ea39986297d8a3c3206714891e607c23315341c",
      "tree": "1a994170ee8301b846dfa109a7330f2778dcbd75",
      "parents": [
        "d939921ff9f2c162d3ab92e90064a1247bf7d286"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:12 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:31:38 2014 -0700"
      },
      "message": "aiaiai: don\u0027t cat the $mbox file at begining of email-testpatchset\n\nThis patch corrects an inadverdent addition of cat \"$mbox\" which apears\nto come from commit bbf0119cbfc0. Possibly originating as some sort of\ndebugging code, it has essentially been lost in a rebase most likely.\nHowever, this cat of the mbox contents is quite annoying. Possibly add\nthis back as a feature, since it sometimes proves useful, but generally\nslows down aiaiai due to sometimes printing an exceptional amount of\ndata to stdout! Also fixes a typo of private.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nFixes: bbf0119cbfc0 (\"email-lda: use cover letter subject if available\")\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "d939921ff9f2c162d3ab92e90064a1247bf7d286",
      "tree": "d83e0585163e093d953c7bca1382761da5040bf7",
      "parents": [
        "092263662159920bed7f63364cd9cc5afb5459be"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:11 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:29:22 2014 -0700"
      },
      "message": "aiaiai: don\u0027t display log output from git-find-base\n\ngit-find-base outputs a large amount of data, given the number of\nprojects in a cfgfile. This can cause systemd to overload with too much\ninformation. This patch alleviates the issue by only displaying the\noutput of git-find-base if it fails.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "092263662159920bed7f63364cd9cc5afb5459be",
      "tree": "322b29fca3b2e6bf77d6d5c5d63c04bcc842612c",
      "parents": [
        "74a53a63fe04444370ebc2aaa95e366d414dca87"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:10 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:23:43 2014 -0700"
      },
      "message": "email: fix incorrect variable name in email for hook rejection\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "74a53a63fe04444370ebc2aaa95e366d414dca87",
      "tree": "c44da94f2b241a06e17a96b5e99602beba21fa3f",
      "parents": [
        "a94f2fdebafaaf8e5b56a9fdc114d1438b7548ed"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:09 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 17:23:35 2014 -0700"
      },
      "message": "aiaiai-email-lda: move reap options to cfgfile\n\nThis patch moves the last few options of the LDA email program into the\nconfiguration file, so that all email scripts don\u0027t require options for\nconfiguration.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "a94f2fdebafaaf8e5b56a9fdc114d1438b7548ed",
      "tree": "8461659467c89573ac6800342783f7c2585b58af",
      "parents": [
        "bcbb21e62bdf4de160e15a279ace9afff6b87edf"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:08 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 15:58:34 2014 -0700"
      },
      "message": "aiaiai: add checks to configuration file\n\nThis patch adds configuration check functions and performs some basic\nchecks against the configuration file. A future effort may be to clean\nup these checks so that it outputs a bit more error cases.\n\nThe main value of these checks is to prevent weird errors later when we\nassume that values have some standard meaning. In addition, it allows\ncleaning up boolean values to always be canonicalized into 0 or 1.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "bcbb21e62bdf4de160e15a279ace9afff6b87edf",
      "tree": "de209ab3a5199d3038cb68304fbc5deeedb7ad95",
      "parents": [
        "9c9115178efdcf0f6457cc68c6ba00de6ec2df9a"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:07 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 15:37:47 2014 -0700"
      },
      "message": "aiaiai-diff-log-helper: explicitely call out python2\n\nSince this script is not a python3 script, (it runs in python2!) then we\nshouldn\u0027t rely on \"/usr/bin/env python\" to always land us on a python2\ninstallation, as some machines may have installed python3, and\nconfigured their default python to be the python3 executable.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "9c9115178efdcf0f6457cc68c6ba00de6ec2df9a",
      "tree": "633869d80f6457e386926571b949bf35be18c5a0",
      "parents": [
        "f491665839e8b033d4e20cfe2ea1c66609f2adde"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:06 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 15:37:45 2014 -0700"
      },
      "message": "aiaiai: extract patches from email prior to using git-am\n\nSome patch authors submit patches directly attached via git-format-patch\noutput as an attachment. Sometimes they include both the patch and the\ninline diff. This is problematic because it causes aiaiai to fail to\napply the patch, due to git being confused about the attached patch.\nThis patch modifies how aiaiai reads the commits, using a python script\nwhich is capable of extracting the patches from the mbox (including\nattachments) before calling git-am.\n\nThis helps aiaiai more easily handle this weird patch case, and still\nworks great for regular patch submissions. In addition, turn on 3-way\nmerge of git-am, so that duplicate patches will be properly ignored (as\nin the case with inlined and attached patches)\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "f491665839e8b033d4e20cfe2ea1c66609f2adde",
      "tree": "306837612b3d10601111f3b9a9f25b20b48b0293",
      "parents": [
        "23ba225e12503e5443c9de01b6fbd80aca62d6f6"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Wed Apr 09 15:26:05 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 15:37:43 2014 -0700"
      },
      "message": "aiaiai-email-test-patchset: correct hook calling to actually grab error\n\nWe can\u0027t grab the $? value from inside an if block, as the if statement\nalready changed the return code. Instead, we just call the hook script\nwithout an error section, and then check for errors afterwards. This\ncorrects an issue where the return code would always be 0, even if the\ncommand failed.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "23ba225e12503e5443c9de01b6fbd80aca62d6f6",
      "tree": "4dd5c4b29d915fa4c8e6850b18d4579eaef22eae",
      "parents": [
        "2d95b45a802eeb70dcee0d254bb9a81f0be6dfa5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 16:49:36 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Apr 25 15:15:46 2014 -0700"
      },
      "message": "aiaiai-checker: ignore debugging output from spatch\n\nspatch is a great tool, but it is still not very stable and crashes sometimes,\nin which case it prints a lot of debugging stuff to stderr, which we do not\nwant in out logs. Normal warnings go to stdout. Therefore, ignore stderr output\nof spatch.\n\nAnd switch to the new style options format instead of using the old style.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "2d95b45a802eeb70dcee0d254bb9a81f0be6dfa5",
      "tree": "168d767ae70562a3a9126b3daba39b47b013d014",
      "parents": [
        "d4b585c754f8599a6d9f604944fe13b05733d1a3"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 16:15:10 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 16:15:10 2014 -0700"
      },
      "message": "aiaiai-checker: use --no-data for smatch\n\nOtherwise smatch complains about missing data, which will show up in diff-log\nwhen new files are added.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "d4b585c754f8599a6d9f604944fe13b05733d1a3",
      "tree": "4d6e2e7f9926b39fe826115c65db63fa30bbb65c",
      "parents": [
        "33dc9f2ed0fb18b4e5761424037abab132c729da"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 15:55:38 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 15:55:38 2014 -0700"
      },
      "message": "aiaiai-diff-log-helper: fix logs diffing for gcc-4.8\n\ngcc 4.8 changed its output format a bit. Now it appends lines like this to the\nwarning messages:\n\nnet/ipv4/ip_tunnel.c:394:25: warning: variable ‘fbt’ set but not used [-Wunused-but-set-variable]\n  struct ip_tunnel *nt, *fbt;\n                         ^\n\nWhich made aiaiai output very messy. This patch fixes the problem.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "33dc9f2ed0fb18b4e5761424037abab132c729da",
      "tree": "60d3e0acacbf02e50ff9deb554f2968eb4ccfb1f",
      "parents": [
        "2e61508db63a8a523cad78a931782e938d05eb9a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 15:17:35 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 24 15:17:35 2014 -0700"
      },
      "message": "aiaiai-test-patchset: move --targets option down\n\nThis patch has no functional changes. It is just a clean-up which makes the\nhelp output a tiny bit easier to follow by moving --target out of the\nblock of options related to checkers. Also, it changes the orger of option\nhandling to match the order in the help output.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "2e61508db63a8a523cad78a931782e938d05eb9a",
      "tree": "41f6a29996f0c4cd90235b3f7601f18855d1d923",
      "parents": [
        "00f5aa1988db9671c6958ab6683f10ec4c66725a"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Apr 04 15:06:52 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Apr 07 13:20:02 2014 +0300"
      },
      "message": "git-find-base: rewritten to use newer design\n\nInstead of just checking a few extra headers, add support for all header\ntypes that git can output, and be a bit more robust about renames and\ndeletes. For now, assume a rename won\u0027t attempt to overwrite an existing\nfile.. Ideally we should do a full check on the base as well..\n\nThis model should allow support of all git commit types, not just simple\nones. In addition, in order to allow a certain patch format, we add an\noption to remove duplicates. Do it by default, but enable option to keep\nduplicate diff chunks. Primarily useful for patches which contain both\nan inline and attachment.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "00f5aa1988db9671c6958ab6683f10ec4c66725a",
      "tree": "d8ae026a2e6a46643873f7941a37da68a5ab6802",
      "parents": [
        "daea3fdb654cf7830cd8d2910cc9036219124f8c"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Apr 04 15:06:49 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Apr 07 13:20:01 2014 +0300"
      },
      "message": "aiaiai-project-update: correct function to upstream change\n\nUpstream used get_cfgfile_projects_list as the name of the function that\ndetermined the full project listing. aiaiai-project-update was missed\nin the change.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "daea3fdb654cf7830cd8d2910cc9036219124f8c",
      "tree": "3279cd725fbdf3b20f0c9dad9a63bad57b5138d4",
      "parents": [
        "838a3c2dd512af8a5ab372604a387c1a04a5b73a"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Apr 04 15:06:48 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Apr 07 13:20:00 2014 +0300"
      },
      "message": "aiaiai-project-update: fix typo of printf in usage statement\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "838a3c2dd512af8a5ab372604a387c1a04a5b73a",
      "tree": "1501f01ec0e810151388066bca86d87ec6a07649",
      "parents": [
        "6cd226994dfd6edd669160ca3f954a5034d51396"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Apr 04 15:06:47 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Apr 07 13:19:59 2014 +0300"
      },
      "message": "aiaiai-project-update: fix srcdir line from location change\n\nThe new location of aiaiai-project requires a new srcdir line, as I\nforgot to update this when moving the path.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "6cd226994dfd6edd669160ca3f954a5034d51396",
      "tree": "5254818474974261422acfd9cb2440d6d6722848",
      "parents": [
        "850835a4b7e073bc7f9ce09841b690f630505d2a"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Apr 04 15:06:46 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Apr 07 13:19:55 2014 +0300"
      },
      "message": "send-mail-on-failure: generalize email address\n\nRather than using a personal email address (oops!) generalize the\naddress in the script as an argument. In addition, modify the systemd\nscript to use root@localhost. The user *is* expected to modify the\nsystemd script in their own copy to point to the correct address.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "850835a4b7e073bc7f9ce09841b690f630505d2a",
      "tree": "4b973c628e293cbc73633b30e836ae91bfece596",
      "parents": [
        "e640a47db331c9b61f417359e01f3e7d1c706472"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 31 15:24:03 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 03 11:21:57 2014 +0300"
      },
      "message": "git-find-base: add help text to the program\n\nThis patch adds a help-text output and the -h or -? option to\ngit-find-base in order to allow user to request help for how to use\nthe utility.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "e640a47db331c9b61f417359e01f3e7d1c706472",
      "tree": "a6e35d116b6f661d990a2d59a3a0687cd4e8eca3",
      "parents": [
        "5e099e7b9be690fd14e7d8b1ee11611b2f73e7b1"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 31 15:24:02 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 03 11:21:34 2014 +0300"
      },
      "message": "git-find-base: add detection for possible duplicate patches\n\nSome users send a patch which includes both an attachment and inline of\nthe diff. This confuses git-find-base, because it will see equivalent\npatch blobs. If we see the same diff hunk with identical git-index\ninformation, print a warning, and ignore it.\n\nThis patch also rewords some of the other warnings to be more consistent\nand always show the intial -\u003e modified blobs for possible debugging.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "5e099e7b9be690fd14e7d8b1ee11611b2f73e7b1",
      "tree": "7901f747f6ece691c4898eb42cb7498e1d4d14dc",
      "parents": [
        "ea54364a23490e668510613be2a0d98e5123d862"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 31 15:24:01 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 03 11:21:15 2014 +0300"
      },
      "message": "git-find-base: Add authorship, copyright, and license notice\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "ea54364a23490e668510613be2a0d98e5123d862",
      "tree": "af9b01b47a8e47b8bbad7b043cbd8e0b30030b70",
      "parents": [
        "4ab8c9a3807fb4b5271cffa0410a554eac19e2a5"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 31 15:24:00 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 03 11:21:04 2014 +0300"
      },
      "message": "email-hook: remove options that can\u0027t be used\n\nHooks don\u0027t really support options, so just remove them. Also, use\nfail_usage instead of die for the exit message, so that we actually show\nthe usage when wrong number of arguments is given.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "4ab8c9a3807fb4b5271cffa0410a554eac19e2a5",
      "tree": "581de82eccda6031f63b26609c30d085be684d43",
      "parents": [
        "6cad2824d8d23413ccf0414a845e0b842e5b126e"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 31 15:23:59 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 03 11:14:10 2014 +0300"
      },
      "message": "systemd: add scripts for running the aiaiai processes\n\nThis patch adds 3 service files for use with aiaiai\n\n1) aiaiai.service which runs the aiaiai email dispatcher\n2) aiaiai-project-update.service which runs aiaiai-project-update which\n   will update remotes for all projects in the configuration file\n3) send-mail-on-failure for notifying an administrator of service errors\n\nThe services are primarily useful for tracking aiaiai output as well as\nkeeping remotes that aiaiai needs up to date.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "6cad2824d8d23413ccf0414a845e0b842e5b126e",
      "tree": "7d5e4e26464d6e6e1df96a9d4343e96d7ca23aa0",
      "parents": [
        "495903641d16473d81d7b3d9c88c370cf538fadd"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Apr 01 13:40:24 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Apr 03 11:14:00 2014 +0300"
      },
      "message": "autodetect-project: fix change of function name\n\nOne of the function names changed upstream, so we need to fix it in the\nhook also.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "495903641d16473d81d7b3d9c88c370cf538fadd",
      "tree": "d2dc50bc02d6b2a4a724e13c12b06ae99138e4ee",
      "parents": [
        "c33e515121b5e8945e9e845bd1336482067b8694"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Mar 28 09:08:32 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:56:38 2014 +0300"
      },
      "message": "apply-patch: prefix diff output with \u0027\u003e \u0027\n\nWhen aiaiai responds to a mailing list that is monitored by patchwork, a\nfailure to apply a diff can cause patchwork to generate false positive\n\"patches\" due to the diff in the email. This patch modifies aiaiai so\nthat it prefixes the output of the command with a \u0027\u003e \u0027 which will\nprevent patchwork from recognizing this as a diff with a patch inlined\nto the reply.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "c33e515121b5e8945e9e845bd1336482067b8694",
      "tree": "3fbc3971fcd503da7a4f7565c80eaec125bcccab",
      "parents": [
        "e7164ad87748f9098f366e4c2deb3008549b6c1b"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Mar 28 09:08:31 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:56:03 2014 +0300"
      },
      "message": "aiaiai: use fail_usage on incorrect number of arguments\n\nWe should display the full usage with an error message when we have an\nincorrect number of arguments, rather than just die. The advantage is\nthat the user will see what the actual usage of the program is, rather\nthan just a somewhat cryptic error message.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "e7164ad87748f9098f366e4c2deb3008549b6c1b",
      "tree": "2b113a420b7575548665780fb451c54d08b22852",
      "parents": [
        "cca1f0674af88c8d6e4af4e300b5d2701b7ec1b4"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:08 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:47:44 2014 +0300"
      },
      "message": "email: example hook for aiaiai-email-test-patchset\n\nThis commit introduces an example hook which uses git-find-base to\ndetermine what project (and even what commit inside that project!) the\npatch is based on. This can be used so that patches automatically go to\nthe correct project, without having to specify the project in the email\naddress.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "cca1f0674af88c8d6e4af4e300b5d2701b7ec1b4",
      "tree": "8e4675a258cba0097aecad467668d3ef9b991c3e",
      "parents": [
        "f90ffe6a6b709a72cbcdcc1d333cbee54d05ea46"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:07 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:42:55 2014 +0300"
      },
      "message": "aiaiai: add git-find-base utility for finding base commit from mbox\n\nThis patch adds a helper utility for git, git-find-base which works by\nchecking the index information provided by git-diff\u0027s output. It works\nby parsing the mbox for diff lines, and extracting the index line. This\nis the shortblob of the file in git\u0027s database that this patch\noriginally applied to.\n\nThe general flow of this perl tool is:\n\n1) Extract all the files and base blob indexes that the patch modifies,\n   using a regular expression.\n2) Run git log with all arguments directly passed through\n3) For each commit returned by git log, check the ls-tree output for the\n   modified file. If any of them fail to match, then this patch cannot\n   apply cleanly to the commit.\n4) print the sha1sum of the first commit which passes the check blobs\n   test.\n\nThis tool can be used to automatically determine if a commit can be\napplied cleanly to a branch, and even detect which commit it should be\napplied to. Various options passed to the log can change how much\ndetection it does.\n\nIf a patch series is applied, it will check each modification of a file,\nand ensure that it could apply in sequence generating the final result.\nThis allows finding the first commit at which a series will apply. If a\nseries is not self-consistent, then git-find-base will fail to supply\nthe base commit, and may output errors regarding the nature of the\ninconsistency.\n\nThe primary intention for this tool will be an example hook for aiaiai\nwhich automatically detects which project a patch was originally based\non.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "f90ffe6a6b709a72cbcdcc1d333cbee54d05ea46",
      "tree": "e41337df293a3a3f03a05b7a7e586d7460ecefb2",
      "parents": [
        "939891776a3e865865e51235c807d2c759e62640"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:06 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:35:06 2014 +0300"
      },
      "message": "aiaiai: change dispatcher hook to email hook\n\nThis patch modifies the current dispatcher hook to the new model of hook\n(reading hook contents from stdout of hook). In addition, it also moves\nthe hook into aiaiai-email-test-patchset instead of putting it in the\ndispatcher-helper. This helps simplify the hook process overall.\n\nAmended by Artem.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "939891776a3e865865e51235c807d2c759e62640",
      "tree": "f775b4e42f9aba70b411166594e39516735fdbc3",
      "parents": [
        "ae9f6aead39b41e48836c7f6dd7d579e49cc65d9"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:05 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:21:42 2014 +0300"
      },
      "message": "email: rename error_test_patchset_failed\n\nSince this function could be used to generically refer to any internal\nerror, modify the name and description. We will be using this function\nin a later patch to indicate an internal error in a hook as well.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "ae9f6aead39b41e48836c7f6dd7d579e49cc65d9",
      "tree": "7e9ad53975eb63c2594d55432b534789145b7501",
      "parents": [
        "207502c808710170e965528d516dd25254662a92"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:04 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:21:02 2014 +0300"
      },
      "message": "aiaiai: split sed project listing from list_projects\n\nIn order to allow other places such as hooks to list the projects,\nseperate out the sed script into its own function. This enables less\ncode duplication if another script wants to list all projects in a\ncfgfile.\n\nArtem: re-named the function for a bit better readability.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "207502c808710170e965528d516dd25254662a92",
      "tree": "7673cdfbc778daefa39e2541af9c264f09a45edc",
      "parents": [
        "7234904732fe89ab43c5e6cd184e88663b8098fa"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:03 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:14:49 2014 +0300"
      },
      "message": "email: add canonical_url variable for list_projects\n\nIf supplied, this url can be used to add a [git clone -b \u003cbranch\u003e \u003curl\u003e]\nsection to the list_projects output, which indicates to the user how to\nclone the specified project. This can be useful to enable users to more\neasily see how to start working on a project.\n\nThe canonical url is not used by aiaiai as an access point. It mainly is\nuseful if the local clones that aiaiai uses are setup as --mirror\nclones.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "7234904732fe89ab43c5e6cd184e88663b8098fa",
      "tree": "d323a1074a39714c75e45eb737f0f646ca5b20db",
      "parents": [
        "96cc188d9324843cbdbdb3566f24ea981b0fc24f"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:02 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:14:37 2014 +0300"
      },
      "message": "email: don\u0027t allow pcfg_branch to default\n\nSince we don\u0027t allow pcfg_path to default, it makes little sense to\nallow pcfg_branch to default. Also, it would be better to have a die\ncheck on branch, so that we fail if the project doesn\u0027t specify the\nbranch.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "96cc188d9324843cbdbdb3566f24ea981b0fc24f",
      "tree": "a8638c4b4396eb0113467f98ff40e8dbabd2fc65",
      "parents": [
        "03dabaa25ea1b2eb61c7e93f12cfa2b717b1815a"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:01 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:14:28 2014 +0300"
      },
      "message": "doc: rename CONFIGURATION to configuration.txt\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "03dabaa25ea1b2eb61c7e93f12cfa2b717b1815a",
      "tree": "76fc358bb3e21258c6c138f451fa58354684d33d",
      "parents": [
        "ba0b22a4c1f36fe52c7f504c2add8c1563126694"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:40:00 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:14:18 2014 +0300"
      },
      "message": "dispatcher: add aiaiai-email-sh-functions to source list\n\nWe need the email-sh-functions in the source list in order to parse\nconfiguration files.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "ba0b22a4c1f36fe52c7f504c2add8c1563126694",
      "tree": "9ff542e8f5e8fae596f96697da16efd4025db976",
      "parents": [
        "4464b89635a17f8cbbd0576f860a3d1fb2166e56"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 27 11:39:59 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 31 11:13:25 2014 +0300"
      },
      "message": "aiaiai: fixup srcdir in email and gerrit scripts\n\n$srcdir should represent the current directory where the actual shell\nfile is located. This requires also updating $PATH so that it points to\nthe correct directories. This is somewhat confusing since we have to add\n\u0027..\u0027 to a section, but it fixes the switch to dash check for email\nscripts which previously was broken. It also makes everything more\nconsistent.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "4464b89635a17f8cbbd0576f860a3d1fb2166e56",
      "tree": "1e144a51f02ebe2c7732fc0495be5f802e1128c6",
      "parents": [
        "a287fcad9b13482e8dc245842f44270d5121fbce"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Mar 14 17:16:01 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 18 15:35:22 2014 +0200"
      },
      "message": "hook: add support for X-Aiaiai-Project\n\nRather than determining the project strictly from the +project portion\nof the aiaiai address, also allow the dispatcher hook to insert the\nproject hook into the mbox header. This could be used to allow advanced\nconfiguration of the project, such as by checking patch diffs to see\nwhich files are modified.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "a287fcad9b13482e8dc245842f44270d5121fbce",
      "tree": "8e42d25e9f2c34fae9ae35534867510e237fe1dd",
      "parents": [
        "2fd02fa2933a106e7e6d7ca8f5f77fd6f2ef3d57"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Mar 14 17:16:00 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 18 15:35:17 2014 +0200"
      },
      "message": "aiaiai: add initial support for dispatcher hook\n\nThis patch adds some initial support for a dispatcher hook which could\nbe used to add custom headers, which will (later) be interpreted by\naiaiai to include specialized settings. A follow-on patch will add the\nfirst initial custom header.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "2fd02fa2933a106e7e6d7ca8f5f77fd6f2ef3d57",
      "tree": "105058b9559fb76d78998b2b96e3be746ebe6b6d",
      "parents": [
        "d12f98509f018a9c9e9a22152a8bebd87805becf"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Mar 14 17:15:59 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 18 15:35:16 2014 +0200"
      },
      "message": "doc: add CONFIGURATION file describing the cfgfile\n\nThis patch adds a CONFIGURATION file which describes the aiaiai\nconfiguration file. This will be expanded upon in future commits which\nintroduce the aiaiai hooks.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "d12f98509f018a9c9e9a22152a8bebd87805becf",
      "tree": "f545cea39ad6c34dae97d52532e2f93e5b0ed102",
      "parents": [
        "a5f3920ed906643db52b5b4161ad7142f042e146"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Mar 14 17:15:58 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 18 15:35:14 2014 +0200"
      },
      "message": "sh-function: add insert_header function\n\nSince we use a special trick to insert header information into the mbox,\nthis could be extraced into a function in aiaiai-sh-functions. This will\nhelp future work which will want to add multiple headers into this mbox\nfile, using the same file descriptor trick.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "a5f3920ed906643db52b5b4161ad7142f042e146",
      "tree": "2a725b965e086b50dbf1b9efb3f8a27668635afa",
      "parents": [
        "f6b5ef2faea0f0e50b9941b740434ed371863abc"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 10 16:46:14 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 11 09:59:39 2014 +0200"
      },
      "message": "email-test-patchset: parse general configuration settings earlier\n\nThis patch modifies the email patch testing program so that it parses\nthe general configuration settings as soon as it reads the configuration\nfile location. It also modifies the script so that it will use readlink\non the path instead of just blindly using the path. This is taken from\nthe LDA which does this as well.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "f6b5ef2faea0f0e50b9941b740434ed371863abc",
      "tree": "71b5c7318b7bec9ead00adfec30c140fc6837479",
      "parents": [
        "2d6402800d5075b0773528bd1e09eaa0fe9a0fa6"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 10 16:46:13 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 11 09:59:39 2014 +0200"
      },
      "message": "email: add \"debug\" section to configuration file\n\nThis patch further extends the configuration file so that it has a debug\nsection which currently includes replacements for test-mode and preserve\noptions. These options are very useful for debugging aiaiai, but today\ncannot easily be changed without modifying the command line. Instead,\nremove them from the options and include them via the configuration\nfile.\n\nI chose not to add \"verbose\" to this list, because we actually use\nverbose earlier than we parse the configuration. It may still be worth\ncoming up with some interface where command line options overwrite\nconfiguration options, but I wasn\u0027t sure the best way to handle this\nyet.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "2d6402800d5075b0773528bd1e09eaa0fe9a0fa6",
      "tree": "e0b4c02c2edf717d38298ae0b797fe305e696da4",
      "parents": [
        "502867b7f71536087ac3294ccba07391060f0146"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 10 16:46:12 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 11 09:59:39 2014 +0200"
      },
      "message": "aiaiai-email-test-patchset: move -- to end of all options\n\nA previous patch added kmake_opts to the configuration file, and when\npassing this into aiaiai-test-patchset, the -- field which ends option\nscanning was not correctly moved to the end of the options arguments.\nThis would result in incorrect behavior if anyone tried to use this\noption.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "502867b7f71536087ac3294ccba07391060f0146",
      "tree": "824658470b1c889c4a5cafdf9cb8cb3a987ed2a2",
      "parents": [
        "3b03d0d0b3ae2ced164e4fd394177c58bd53b7af"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 10 16:46:11 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 11 09:59:39 2014 +0200"
      },
      "message": "aiaiai-email-test-patchset: fix parameter substitution\n\nThe targets parameter was incorrectly failing to add the --targets,\nbecause the substitution did not have a +. This patch corrects the\nparameter substitution so that the targets will correctly include the\nrequired option for use with aiaiai-test-patchset directly.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "3b03d0d0b3ae2ced164e4fd394177c58bd53b7af",
      "tree": "e19d902a39f9e27764e84b277a53e4b8891664b0",
      "parents": [
        "45b7566d03dec556a2e061d945ae5c39f3944164"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 10 16:46:10 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 11 09:59:39 2014 +0200"
      },
      "message": "aiaiai-email-dispatcher-helper: fix typo on aiaiai\n\nThis patch fixes a typo on aiaiai-email-test-patchset, which prevented\nthe validator from being called, as it was misspelled.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "45b7566d03dec556a2e061d945ae5c39f3944164",
      "tree": "72962b9a262307c8d172cde6a04dc584ea424fce",
      "parents": [
        "1af4a9fd286a4cb0720135a5a5e3683ee48ebcde"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Mon Mar 10 16:46:09 2014 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Mar 11 09:59:39 2014 +0200"
      },
      "message": "aiaiai-test-patchset: add missing colon on targets option\n\nThe targets option recently added was broken. It did not properly handle\na value for the argument, because no colon was present. This patch fixes\nthe getopt line so that target will infact select an option.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "1af4a9fd286a4cb0720135a5a5e3683ee48ebcde",
      "tree": "f2570193140774a7f1d402ac983484f98845f146",
      "parents": [
        "c11392dcdcede5142561d7b99d542b2e16ce32d6"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 06 17:21:31 2014 -0800"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 10 17:03:35 2014 +0200"
      },
      "message": "aiaiai-email: move -J bigjobs into configuration file\n\nThis modifies aiaiai-email-dispatcher to use the configuration file\ninstead of the command line for the bigjobs parameter.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "c11392dcdcede5142561d7b99d542b2e16ce32d6",
      "tree": "5652f80a08b8ca398e6d5b8f3740ef46c0dccf6e",
      "parents": [
        "850416c8c388497a4c897c5a8d409d00fa3ac502"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Fri Feb 28 16:00:19 2014 -0800"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 10 17:03:35 2014 +0200"
      },
      "message": "aiaiai: don\u0027t allow arbitrary validator command\n\nSince aiaiai-email-test-patchset is the only validator that makes sense,\nand we should extend it if new features are desired, we don\u0027t need to\nsupport multiple validators, as this is clunky, and difficult to\nconfigure for the user. Now that the configuration file supports all the\noptions from the aiaiai-email-test-patchset, we can just directly call\nit instead of having to use a passed in parameter.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "850416c8c388497a4c897c5a8d409d00fa3ac502",
      "tree": "2dbbb2891b67e0e881b2be2fda80c08ad3c3c875",
      "parents": [
        "9d1b83c78d1a9862713b448c7f8b5caa768ce0ac"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 06 17:12:51 2014 -0800"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 10 17:03:35 2014 +0200"
      },
      "message": "aiaiai-email: move test-patchset options into the configuration file\n\nThis patch modifies the configuration file to include most of the\noptions around the validator command, so that those no longer have to be\nspecified manually. This does break compatability with the current\nvalidator setup, since those old options must now be specified on the\ncommand line.\n\n- v2\n* Fix typo in coccinelle variable\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "9d1b83c78d1a9862713b448c7f8b5caa768ce0ac",
      "tree": "2751c198890cf82310d3e0edfba23c35815db467",
      "parents": [
        "9ef69a4fdfc529f5c19f83c8284cbb7c3964e196"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 06 16:31:12 2014 -0800"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 10 17:03:35 2014 +0200"
      },
      "message": "aiaiai-email: add [defaults] section to config\n\nThis patch adds a [defaults] section for the configuration file which\nallows setting shared project settings which might be overridden\nper-project. This will be used more in a follow-on patch which adds\nadditional configuration options.\n\n- v2\n* put ini_config_is_set into the libshell file\n* use __ instead of _ to indicate internal variable\n* update comment to better reflect per-project and default variable\n  interaction\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "9ef69a4fdfc529f5c19f83c8284cbb7c3964e196",
      "tree": "5218b392aa1abf127c766f9dcdecaabe2779ed46",
      "parents": [
        "248e155e9ff828c684752b6d9b6a22bd5b9d2f4b"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 06 16:22:58 2014 -0800"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 10 17:03:35 2014 +0200"
      },
      "message": "aiaiai-sh-functions: re-order options to match example config\n\nThis patch re-orders the parsing for the standard configuration\nvariables, in order to match what is in our example configuration. It\nalso updates the header comment to match.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    },
    {
      "commit": "248e155e9ff828c684752b6d9b6a22bd5b9d2f4b",
      "tree": "be237d71b1d4691573e192d34b515a1277d31ae9",
      "parents": [
        "7716e240af58466fbdb6a03635fcb96bb36c1d32"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Thu Mar 06 14:08:48 2014 -0800"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Mar 10 17:03:35 2014 +0200"
      },
      "message": "aiaiai-sh-functions: remove [email] section from cfgfile\n\nThis patch is part of a series to improve user friendliness regarding\noptions for aiaiai-email-test-patchset, and improving use of the\nconfiguration file. This patch removes the seperate [email] section, as\nit really doesn\u0027t have any use. Just put these inside the global\nsection, since email and global really have no different meaning.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n"
    }
  ],
  "next": "7716e240af58466fbdb6a03635fcb96bb36c1d32"
}
