)]}'
{
  "log": [
    {
      "commit": "7cc8bb085b6f04cbeca7cb77ddb6798fa9725e2f",
      "tree": "55b88a1bafb293b4210bf2de59c8892c0985f8b5",
      "parents": [
        "4b71743b20d0ca155df3414a863a48cb898622c9"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Mon Jan 14 16:29:47 2019 -0800"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Jan 16 01:46:42 2019 -0800"
      },
      "message": "update_engine: Run clang-format on ./ (root directory)\n\nBUG\u003dnone\nTEST\u003dunittest\n\nChange-Id: Ibd075dc7ea9a18e798f612e35725f1c83c112809\nReviewed-on: https://chromium-review.googlesource.com/1409708\nCommit-Ready: Amin Hassani \u003cahassani@chromium.org\u003e\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Sen Jiang \u003csenj@chromium.org\u003e\n"
    },
    {
      "commit": "26d89772808907b3d4e6c47fa7d3d172942ca52b",
      "tree": "3adf4cc0bd7c007338a6105be244a9b7a3b29b56",
      "parents": [
        "5442cfeeec037fead0a432d15d3381d6dd4ce8ba"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Mar 02 16:37:14 2018 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Mar 02 16:37:14 2018 -0800"
      },
      "message": "Disable logging to string in unittest.\n\nLogging to string is not thread safe and we are not using this feature,\nso turn it off.\n\nBug: 72046357\nTest: run unittest with tsan\nChange-Id: I6f2dd53b115e9e6c53df237783dbe09aed6ae592\n"
    },
    {
      "commit": "5442cfeeec037fead0a432d15d3381d6dd4ce8ba",
      "tree": "d5b0f22547c3c7068a3c18d849ac14bb81e34990",
      "parents": [
        "678a68f298a4e2a0435ea612cbbd120bf5f7f6be"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Mar 02 11:54:30 2018 -0800"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Mar 02 11:54:30 2018 -0800"
      },
      "message": "Remove the PATH workaround for Android unittest.\n\nWe are not running bsdiff binary anymore so this is no longer needed.\n\nTest: update_engine_unittests\nChange-Id: I7e0f7d77b2f312cb6f40b8abc9154df39442ac7c\n"
    },
    {
      "commit": "a78ee102c57832b9d5a274c4d25ea23c7171729c",
      "tree": "4b9d183258a0742c424f911492aa6da4b528beb9",
      "parents": [
        "5a216c11fbc7f76de5798a9e7fb95381305813ae"
      ],
      "author": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Fri Apr 01 14:15:08 2016 -0700"
      },
      "committer": {
        "name": "Sen Jiang",
        "email": "senj@google.com",
        "time": "Wed Apr 06 20:28:37 2016 +0000"
      },
      "message": "Make update_engine_unittests depend on bsdiff.\n\nAdded build artifacts path to PATH for unittests.\n\nTest: mma; ./update_engine_unittests\nBug: 26955860\n\nChange-Id: I09401cb883be5210887d7c789fdaec4145626fa0\n"
    },
    {
      "commit": "246bf21fd0074a1897c28a7c4703c2223e6224b6",
      "tree": "92e064d7dd6beaa2887f39687b7469c663f3f5f3",
      "parents": [
        "72a2567a03afbe07c3810be28bcad477268ab4df"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Tue Mar 22 19:27:33 2016 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Mar 23 23:31:00 2016 +0000"
      },
      "message": "Implement Xz compressor functions.\n\nThe new XzCompress() function is similar to BzipCompress() function but\nuses the Xz compression algorithm.\n\nThis patch simplifies the unittests of the compressors and reuses the\nclient-side decompresor implementation instead of repeating the\nimplementation in the delta generator. This patch removes the unused\ncompression/decompression functions.\n\nBug: 24578399\nTEST\u003dAdded unittests.\n\nChange-Id: Id858112b50f4aa2597f184dc23a86af772f4f190\n"
    },
    {
      "commit": "39910dcd1d68987ccee7c3031dc269233a8490bb",
      "tree": "b7569d7ff83b001d244eda59bb2efdee9a6f15ec",
      "parents": [
        "82352f97b4621dbf6af8308ff0b0b17b0968b53a"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Mon Nov 09 17:04:30 2015 -0800"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Nov 12 02:17:50 2015 +0000"
      },
      "message": "Split payload application code into a subdirectory.\n\nThis patch splits from the main libupdate_engine code the part that\nis strictly used to download and apply a payload into a new static\nlibrary, moving the code to subdirectories. The new library is divided\nin two subdirectories: common/ and payload_consumer/, and should not\ndepend on other update_engine files outside those two subdirectories.\nThe main difference between those two is that the common/ tools are more\ngeneric and not tied to the payload consumer process, but otherwise they\nare both compiled together.\n\nThere are still dependencies from the new libpayload_consumer library\ninto the main directory files and DBus generated files. Those will be\naddressed in follow up CLs.\n\nBug: 25197634\nTest: FEATURES\u003dtest emerge-link update_engine; `mm` on Brillo.\n\nChange-Id: Id8d0204ea573627e6e26ca9ea17b9592ca95bc23\n"
    },
    {
      "commit": "3f39d5cc753905874d8d93bef94f857b8808f19e",
      "tree": "09c75380469065d508a1a59e27e4a4dd5b28763d",
      "parents": [
        "25fbdf83064c78dfb4d9143be25f080ee2c56730"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 13 09:27:13 2015 -0700"
      },
      "committer": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@google.com",
        "time": "Tue Oct 13 09:44:07 2015 -0700"
      },
      "message": "update_engine: Rename \"chromeos\" -\u003e \"brillo\" in include paths and namespaces\n\nlibchromeos is transitioning to libbrillo and chromeos namespaces\nand include directory is changing to brillo.\n\nBug: 24872993\nChange-Id: I770659a95be380a50fe3b2ba9f91d65818f40945\n"
    },
    {
      "commit": "2e71f90d6af955a5359853132085931f1e0479e0",
      "tree": "f2a50fc07cd6db54ea2496aa3e1515f6bed049e4",
      "parents": [
        "a59304af39a65c9e9105d5f23cd14e064f0ff9c4"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Sep 30 01:25:48 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Oct 01 11:24:38 2015 -0700"
      },
      "message": "Implement XzExtentWriter.\n\nThe new XzExtentWriter class is an ExtentWriter that uses xz-embedded\nto decompress an xz stream and write it to the underlying extent\nwriter. This will be used to implement REPLACE_XZ in a follow up CL.\n\nBug: 23604708\nTest: Added unittests.\n\nChange-Id: Ifd2ba0c917b66ab33e5cff1d6069da833ad54882\n"
    },
    {
      "commit": "aea4c1cea20dda7ae7e85fc8924a2d784f70d806",
      "tree": "a8934ac4c258cf942ecc2423fe94f1458acfa64f",
      "parents": [
        "d2956cc4b5c60d3d670eb7bf0f1ba800c8a16d62"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 19 20:24:43 2015 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 19 20:24:43 2015 -0700"
      },
      "message": "Re-license update_engine to Apache2\n\nThis patch automatically replaced the license on all text files from\nChromium OS (BSD style) to AOSP (Apache2), keeping the original year as\na reference.\n\nThe license header was added to .gyp and .gypi files, the NOTICE was\nreplaced with a copy of the Apache2 license and MODULE_LICENSE_* file\nwas updated.\n\nBUG\u003db/23084294\nTEST\u003dgrep \u0027Chromium OS Authors\u0027 doesn\u0027t find anything.\n\nChange-Id: Ie5083750755f5180a8a785b24fe67dbf9195cd10\n"
    },
    {
      "commit": "0b3db6b6040f53eb9859e614f7fe4c681213d33a",
      "tree": "3617cac41c1a518db08491667856e79bd0733bc0",
      "parents": [
        "305345001d85ca2282112c2a30fe75c7a4773491"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Aug 10 15:19:37 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Aug 14 02:26:00 2015 +0000"
      },
      "message": "update_engine: Remove all references to glib.\n\nThe message loop in production code switched from\nchromeos::GlibMessageLoop to chromeos::BaseMessageLoop used in\nchromeos::Dameon. This patch moves all the unittests also to use\nchromeos::BaseMessageLoop or chromeos::FakeMessageLoop when I/O is not\nrequired.\n\nThis patch removes all (now unused) references to glib.\n\nBUG\u003dchromium:499886\nTEST\u003d`grep glib[^c] . -R` return no results. Also, unittests work.\n\nChange-Id: Iddfb17def501829d932ed1f70faad3e00268898e\nReviewed-on: https://chromium-review.googlesource.com/292157\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "305345001d85ca2282112c2a30fe75c7a4773491",
      "tree": "51b4eeaabb51f80eebe856f595b2d5bf21e0968f",
      "parents": [
        "b7ca096f98a43ebbf412f1b2d3d15bb184f871f8"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Mon Jul 20 15:06:33 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Aug 14 02:25:54 2015 +0000"
      },
      "message": "update_engine: Switch to chrome-dbus for client requests in update_engine\n\nupdate_engine daemon acts as DBus client to send DBus calls to shill,\npower_manager and chrome, and to listen for signals from shill, chrome\nand login_manager. This patch migrates these calls and signals to use\nchrome-dbus framework instead of dbus-glib.\n\nAll references to dbus-glib code are removed.\n\nBUG\u003dchromium:419827\nTEST\u003dUpdated unittest. Deployed on a link device and tested interactions with shill and chromium.\n\nChange-Id: I31b389e0d1690cccb115ff3b6539c876ba81bd0e\nReviewed-on: https://chromium-review.googlesource.com/290990\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "461b259af8815d782200782c5ba3599d8de4a66c",
      "tree": "328c5f5a2cfd0ac76ae0eff35c6402a0c0d126d2",
      "parents": [
        "7fad7b7d3d7dcdaa7b17855fe333fcc4da000b46"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jul 24 20:10:52 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Wed Jul 29 21:18:40 2015 +0000"
      },
      "message": "update_engine: Use libchromeos to launch subprocesses.\n\nThe Subprocess class handles the execution of suprocesses in the\nupdate_engine such as the post-install script and bspatch operations.\n\nThis patch migrates this class from using glib functions to use\nlibchromeos classes with equivalent functionality.\n\nCallsites and unittests were updated to match the new interface.\n\nBUG\u003dchromium:499886\nTEST\u003dUnittest still pass. Deployed on link and cros flash another image\nusing a delta payload.\n\nChange-Id: Ia64d39734e220675113f393a6049e9a9b0fe8409\nReviewed-on: https://chromium-review.googlesource.com/288837\nTrybot-Ready: Alex Deymo \u003cdeymo@chromium.org\u003e\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "0bb234147ea8f0247b733375fcf1685eaf329aac",
      "tree": "0588d9bbee0dbd5386e85ea79fa8dae4d9d27d85",
      "parents": [
        "6a9d3497bcf57b8b9f5765a2909a51c9f8119cd1"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@chromium.org",
        "time": "Fri Jun 19 00:04:46 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Jun 20 02:19:40 2015 +0000"
      },
      "message": "update_engine: Add locations to the MessageLoop calls.\n\nWhen running the unittests with --v\u003d1, this patch will show the location\nwhere the tasks were posted to the FakeMessageLoop.\n\nBUG\u003dbrillo:91\nTEST\u003dRan unittest with --v\u003d1\n\nChange-Id: I0f9b0a3b67a40c26965a396258f1bd45e38f5ba3\nReviewed-on: https://chromium-review.googlesource.com/280568\nTested-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nCommit-Queue: Alex Deymo \u003cdeymo@chromium.org\u003e\n"
    },
    {
      "commit": "b96ecdaafd27009a18e198f166d2b2f64a55d251",
      "tree": "63f5079b467222111e7def35e0faba56be07d4f3",
      "parents": [
        "3310b228740323c12bcb3dc5f317359c84a061f8"
      ],
      "author": {
        "name": "Alex Vakulenko",
        "email": "avakulenko@chromium.org",
        "time": "Thu Apr 02 14:31:10 2015 -0700"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Fri Apr 03 18:33:17 2015 +0000"
      },
      "message": "platform2: Explicitly use base:: namespace with CommandLine\n\nThe current revision of libchrome is removing CommandLine class\nfrom global namespace and only retain the one in base::.\n\nSweep the code to use the correct namespace in anticpation of\nlibchrome revision roll.\n\nBUG\u003dNone\nTEST\u003d./build_packages\n\nChange-Id: Ib7ca448dac1204c1e36ab053e775a5a5214997ac\nReviewed-on: https://chromium-review.googlesource.com/263785\nTrybot-Ready: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nReviewed-by: Alex Deymo \u003cdeymo@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n"
    },
    {
      "commit": "46bf5c8663bd0b7be0809d3d5ea6a844f4c6219f",
      "tree": "58a037199835b927bd2ea8f12ab84045021a0acc",
      "parents": [
        "44848605eabcf24e7b8495558926af3a641eb95b"
      ],
      "author": {
        "name": "Ben Chan",
        "email": "benchan@chromium.org",
        "time": "Mon Jun 24 11:17:41 2013 -0700"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue Jun 25 09:05:49 2013 -0700"
      },
      "message": "Remove unnecessary call to the deprecated g_thread_init().\n\ng_thread_init() has been deprecated since glib 2.32. This CL removes the\nunnecessary call to g_thread_init(), so that we can later migrate to\nglib 2.34. It also replaces dbus_g_thread_init(), which calls the\ndeprecated g_thread_supported(), with dbus_threads_init_default()\ndirectly.\n\nBUG\u003dchromium:253025\nTEST\u003dTested the following:\n1. Build and run unit tests.\n2. Run trybot builds on x86, amd64, and arm platforms.\n\nChange-Id: I30852f1d3525f3d7b5b6cd756d18c2816a28903f\nReviewed-on: https://gerrit.chromium.org/gerrit/59801\nReviewed-by: Chris Sosa \u003csosa@chromium.org\u003e\nTested-by: Ben Chan \u003cbenchan@chromium.org\u003e\nCommit-Queue: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "fc35929eda5c40615ecd21f6c4ac30cf49e34e3e",
      "tree": "f2b94e3e2f4698dece3b0d9e98c1c74d5b5bb53c",
      "parents": [
        "0b4a6ffb20e83aea7e5616be07bebb2f09ac85da"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Apr 30 22:04:24 2012 -0700"
      },
      "committer": {
        "name": "Gerrit",
        "email": "chrome-bot@google.com",
        "time": "Tue May 01 10:16:07 2012 -0700"
      },
      "message": "Added log messages in unittest main function.\n\nHopefully, these will shed more light on what may be failing and causing\nthe unittest binary to return an error code.\n\nBUG\u003dchromium-os:29841\nTEST\u003dUnittest run with proper log messages.\n\nChange-Id: I6c83c5e8c73590eaafaea3730c8ec1933e7ea8b5\nReviewed-on: https://gerrit.chromium.org/gerrit/21511\nReviewed-by: Richard Barnette \u003cjrbarnette@chromium.org\u003e\nCommit-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "0b4a6ffb20e83aea7e5616be07bebb2f09ac85da",
      "tree": "22ae304e544719d1350ad06bddf21a23de150342",
      "parents": [
        "faac2a5b491605d400d89cbe2054474c7aba6452"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Mon Apr 30 13:13:03 2012 -0700"
      },
      "committer": {
        "name": "Gerrit",
        "email": "chrome-bot@google.com",
        "time": "Mon Apr 30 15:42:14 2012 -0700"
      },
      "message": "Use distinguished exit status for unittests.\n\n* Enabled a parametric exit status in Terminator::Exit().\n\n* The unittest binary sets this exit status to 2, to distinguish it from\n  other exit(1) calls in the code base.\n\nBUG\u003dchromium-os:29841\nTEST\u003dBuild, passes unit tests.\n\nChange-Id: I2bf6a834743e513a647ed7bb2266ef095064d6bc\nReviewed-on: https://gerrit.chromium.org/gerrit/21479\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\nCommit-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\n"
    },
    {
      "commit": "faac2a5b491605d400d89cbe2054474c7aba6452",
      "tree": "0e11298023e1d23a99b77cb6eaed95c4875b78bd",
      "parents": [
        "a2dee1d3a7f13c91b6d4973dca477c5496e9cf53"
      ],
      "author": {
        "name": "Gilad Arnold",
        "email": "garnold@chromium.org",
        "time": "Thu Apr 26 14:44:17 2012 -0700"
      },
      "committer": {
        "name": "Gerrit",
        "email": "chrome-bot@google.com",
        "time": "Thu Apr 26 16:17:26 2012 -0700"
      },
      "message": "Added log message indicating the result of running AU unittests.\n\nThis should give us better insight as for the actual value returned by\nRUN_ALL_TESTS and whether it is consistent with the documented behavior.\n\nBUG\u003dchromium-os:29841\nTEST\u003dRan unittest binary, observed log message\n\nChange-Id: I942311b1f30b44f1e9ef69e0ae3b1346ee1fa1b0\nReviewed-on: https://gerrit.chromium.org/gerrit/21260\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\nCommit-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nReviewed-by: Don Garrett \u003cdgarrett@chromium.org\u003e\n"
    },
    {
      "commit": "9c0baf82049efd95230a8389769e1b3e5d001209",
      "tree": "63b0b48451c44c85deecd387b883aa67802e441c",
      "parents": [
        "437adc42c20d783547b5de3342e505c1799d9563"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Thu Oct 07 13:44:48 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Thu Oct 07 13:44:48 2010 -0700"
      },
      "message": "AU: Catch terminate signals and block exit if necessary.\n\nAdds a global Terminator class to manage signals and exit blocking.\n\nBUG\u003d7392\nTEST\u003dunit tests, gmerged on device, initctl stop update-engine\n\nChange-Id: I2291d4eb55240a6662b18ff834af161d957bce2f\n\nReview URL: http://codereview.chromium.org/3608015\n"
    },
    {
      "commit": "5c0a8afa879886800d82b195e3164e5a580a2cc7",
      "tree": "f9ca25b52b2b51b504557e9be4dce014de886591",
      "parents": [
        "b7de1d59f52f0b97b0bdc23bf1d8286630d7e70c"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Tue Aug 24 13:39:13 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Tue Aug 24 13:39:13 2010 -0700"
      },
      "message": "Add 10 minute random fuzz to automatic update check event schedule.\n\nSchedules the initial check at 7 minutes and periodic checks at 45 minutes\nwith +/- 5 minute fuzz.\n\nBUG\u003d5983\nTEST\u003dunit tests, gmerged on device, inspected logs, observed checks\n\nChange-Id: Ifd38574c4265fec78f6e330f965c2b1054b2dddb\n\nReview URL: http://codereview.chromium.org/3173041\n"
    },
    {
      "commit": "c702078734db27d1fd712b02b686a75becbb5c9d",
      "tree": "8c5313e663593bd5d5e1e845bea028882d74f693",
      "parents": [
        "4e9b9f4d57a0c95fb1b9281077f0eef5fdf5e345"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Apr 28 10:46:04 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Apr 28 10:46:04 2010 -0700"
      },
      "message": "AU: FilesystemCopierAction: copy bit-exactly\n\nReview URL: http://codereview.chromium.org/1700018\n"
    },
    {
      "commit": "c98a7edf648aad88b3f66df3b5a7d43d6a6d7fa9",
      "tree": "fc7a32be25639a00fcc1c63f5b83d1a7fcfe5d86",
      "parents": [
        "d2e4ccc22cd4dc1df69bb242321edde4af933e20"
      ],
      "author": {
        "name": "adlr@google.com",
        "email": "adlr@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Fri Dec 04 18:54:03 2009 +0000"
      },
      "committer": {
        "name": "adlr@google.com",
        "email": "adlr@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Fri Dec 04 18:54:03 2009 +0000"
      },
      "message": "AU: Beginnings of delta support\n\n- proto file for delta files; still needs hardlink support\n\n- code to generate a delta update from two directory trees (old, new).\n\n- code to parse delta update\n\n- Actions: postinst-runner, install, bootable flag setter, filesystem\n copier, Omaha response handler, Omaha request preparer,\n\n- misc utility functions, like StringHasSuffix(), templatized Action\n classes to feed/collect an object from another action.\n\n- FilesystemIterator: iterates a directory tree with optional\n exclusion path. Tolerates deleting of files during iteration.\n\n- Subprocess class: support for synchronously or asynchronously\n running an external command. Doesn\u0027t pass any env variables.\n\n- Integration test that strings many Actions together and tests using\n actual Omaha/Lorry. Currently only tests full updates.\n\n- New simple HTTP server for unittest that supports fake flaky\n connections.\n\n- Some refactoring.\n\nReview URL: http://codereview.chromium.org/466036\n\n\ngit-svn-id: svn://chrome-svn/chromeos/trunk@334 06c00378-0e64-4dae-be16-12b19f9950a1\n"
    },
    {
      "commit": "49fdf1889b965be25f929eeebc5b60cd40b90435",
      "tree": "0acabaa59ed692222a744886aecd186bf09618d9",
      "parents": [],
      "author": {
        "name": "rspangler@google.com",
        "email": "rspangler@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Sat Oct 10 00:57:34 2009 +0000"
      },
      "committer": {
        "name": "rspangler@google.com",
        "email": "rspangler@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Sat Oct 10 00:57:34 2009 +0000"
      },
      "message": "Almost there...\n\n\n\ngit-svn-id: svn://chrome-svn/chromeos/trunk@24 06c00378-0e64-4dae-be16-12b19f9950a1\n"
    }
  ]
}
