)]}'
{
  "log": [
    {
      "commit": "3f0303aa211e2de2d466cef063ff6f39fffe32dd",
      "tree": "ab9c72101e0f5f69ea753cc74ddb410051ea526e",
      "parents": [
        "3270f7411f55b872db385d0edffdfed18a684121"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Jul 15 22:35:35 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Jul 15 22:35:35 2010 -0700"
      },
      "message": "AU: pass whether or not we can tolerate a delta to the server\n\nBUG\u003d4848\nTEST\u003dattached unittests\n\nReview URL: http://codereview.chromium.org/3017006\n"
    },
    {
      "commit": "3270f7411f55b872db385d0edffdfed18a684121",
      "tree": "4482601097f0f359a7c219b85560cb75fe33a53e",
      "parents": [
        "ada4220cc4f05e8e4c72ed18cfddf1bf7f1ad75b"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Jul 15 22:28:14 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Jul 15 22:28:14 2010 -0700"
      },
      "message": "AU: Changes for deltas on traditional bios machines.\n\nBUG\u003dNone\nTEST\u003dAttached unittests/tested on image\n\n- Fix uninitialized variable err in action processor unittest\n\n- Let Omaha dictate if an update is a delta or full update\n\n- Bug fix in delta generator for differently-sized images\n\n- More logging when applying delta updates\n\n- Fix infinite loop in http fetcher unittest\n\n- log each HTTP connection to know when a dropped connection is\n  reestablished.\n\n- Detect when speed goes below a threshold and reestablish HTTP\n  connection (currently \u003c 10bytes/sec for 90 contiguous seconds).\n\n- Fix stack overflow in libcurl http fetcher.\n\n- optimize out a lot of needless CPU usage in libcurl http fetcher\n  (turns out adding a glib main loop source uses a lot of CPU).\n\n- subprocess: pass PATH, log stdout/stderr\n\n- postinstall runner: support for ext3 and ext4 target filesystems.\n\nReview URL: http://codereview.chromium.org/2805027\n"
    },
    {
      "commit": "ada4220cc4f05e8e4c72ed18cfddf1bf7f1ad75b",
      "tree": "d87f0b639bae81f2f31565aaf0bc07193f2d3d95",
      "parents": [
        "a4a8a8ccc2d9e0285728ed247b43f09433e63323"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Jul 15 22:23:20 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Jul 15 22:23:20 2010 -0700"
      },
      "message": "AU: land http://codereview.chromium.org/2931008/show for tfarina\n\nReview URL: http://codereview.chromium.org/2847054\n"
    },
    {
      "commit": "a4a8a8ccc2d9e0285728ed247b43f09433e63323",
      "tree": "0b533321f788a3dd1e0a415e6549d70e39d10f7b",
      "parents": [
        "27fa9c5f029c9bd2fc9452d6525facc5b7775da1"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Thu Jul 15 22:21:12 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Thu Jul 15 22:21:12 2010 -0700"
      },
      "message": "Turn OmahaRequestPrepAction into OmahaRequestDeviceParams.\n\nPass the params to OmahaRequestAction\u0027s ctor. This simplifies a bit\nexecuting as well as testing of OmahaRequestAction and testing of\nOmahaRequestDeviceParams. It also allows us to initialize the params\nonce per update attempt and use them for all OmahaRequestActions.\n\nBUG\u003d560\nTEST\u003dunit tests, gmerged on device and forced an update through dev server,\ninspected logs.\n\nReview URL: http://codereview.chromium.org/2836053\n"
    },
    {
      "commit": "27fa9c5f029c9bd2fc9452d6525facc5b7775da1",
      "tree": "f7d9a651d66ffac6e913513317864dd44cdf9e1b",
      "parents": [
        "0dc8e9a73fc3179a67a72ab72ceb2bc6540949bf"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Thu Jul 15 15:11:55 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Thu Jul 15 15:11:55 2010 -0700"
      },
      "message": "Don\u0027t wait for the http server forever.\n\nThis prevents the unit tests from going into an infinite loop\nif the HTTP server fails to start (for example, because the dev\nserver is already running).\n\nBUG\u003dnone\nTEST\u003dran unit tests with and without dev server running\n\nReview URL: http://codereview.chromium.org/3005003\n"
    },
    {
      "commit": "0dc8e9a73fc3179a67a72ab72ceb2bc6540949bf",
      "tree": "f8a4841062e9c40819d87315a486a4c0c96932a9",
      "parents": [
        "6a5b3229b44c1f81ee153829e9b501e547f29926"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Wed Jul 14 14:51:57 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Wed Jul 14 14:51:57 2010 -0700"
      },
      "message": "Initial implementation of sending an install success event to Omaha.\n\nBUG\u003d560\nTEST\u003demerged,ran unit tests\n\nReview URL: http://codereview.chromium.org/2981008\n"
    },
    {
      "commit": "6a5b3229b44c1f81ee153829e9b501e547f29926",
      "tree": "0f25cd2ca162700c71bc3ba8bc0f3f392abfa218",
      "parents": [
        "b9c44597688e0a393d56b1be11c1e643b8a6867e"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Tue Jul 13 14:55:28 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Tue Jul 13 14:55:28 2010 -0700"
      },
      "message": "Rename UpdateCheckAction|Params to OmahaRequestAction|Params.\n\nAlso, renamed UpdateCheckResponse to OmahaResponse.\n\nBUG\u003d560\nTEST\u003dunit tests, gmerge\u0027d on device.\n\nReview URL: http://codereview.chromium.org/2981007\n"
    },
    {
      "commit": "b9c44597688e0a393d56b1be11c1e643b8a6867e",
      "tree": "b553969bacaf3e6c53b87aa2537b739d73d4f044",
      "parents": [
        "82d86793e5f8fba6faf08c8806a98d761640e2d3"
      ],
      "author": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Tue Jul 13 14:54:48 2010 -0700"
      },
      "committer": {
        "name": "Darin Petkov",
        "email": "petkov@chromium.org",
        "time": "Tue Jul 13 14:54:48 2010 -0700"
      },
      "message": "Add a .gitignore to the repo so that non-emerge dev flow works.\n\nBUG\u003dnone\nTEST\u003dgit ls-files -i --exclude-standard\n\nReview URL: http://codereview.chromium.org/2897016\n"
    },
    {
      "commit": "82d86793e5f8fba6faf08c8806a98d761640e2d3",
      "tree": "a19442a722e9cf5ed921728205b4f7fc82e4283c",
      "parents": [
        "37c2032c6b19858c90a1e58df3fac29f5cb62792"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Jun 30 17:00:44 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Jun 30 17:00:44 2010 -0700"
      },
      "message": "AU: fix dependencies in SConstruct.\n\nAlso, minor whitespace fix.\n\nReview URL: http://codereview.chromium.org/2876025\n"
    },
    {
      "commit": "37c2032c6b19858c90a1e58df3fac29f5cb62792",
      "tree": "aec760b964bd5219dbdc99af2cf352c2d1d7612e",
      "parents": [
        "540bb90d4ba0be6b31e13470ed021a95d9ee7308"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Jun 30 13:27:19 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Jun 30 13:27:19 2010 -0700"
      },
      "message": "AU: Send board (e.g. x86-generic) to update server in query.\n\nBUG\u003dNone\nTEST\u003dAttached Unittests\n\nReview URL: http://codereview.chromium.org/2827032\n"
    },
    {
      "commit": "540bb90d4ba0be6b31e13470ed021a95d9ee7308",
      "tree": "af438a0e0bf9265b15dfca663fd12873e355bb46",
      "parents": [
        "a5deaca0263b57adf2f041617c9c1225fce5ea44"
      ],
      "author": {
        "name": "Sean Parent",
        "email": "seanparent@google.com",
        "time": "Wed Jun 23 23:12:40 2010 -0700"
      },
      "committer": {
        "name": "Sean Parent",
        "email": "seanparent@google.com",
        "time": "Wed Jun 23 23:12:40 2010 -0700"
      },
      "message": "Another dependency fix.\n\nBUG\u003dnone\nTEST\u003dnone\n\nReview URL: http://codereview.chromium.org/2823028\n"
    },
    {
      "commit": "a5deaca0263b57adf2f041617c9c1225fce5ea44",
      "tree": "06c90b239397ed5a16025aeb41b4b8509a8306c1",
      "parents": [
        "58fc478a64857ab81ccd3ab001d8618510ebf1c3"
      ],
      "author": {
        "name": "Sean Parent",
        "email": "seanparent@google.com",
        "time": "Wed Jun 23 16:44:42 2010 -0700"
      },
      "committer": {
        "name": "Sean Parent",
        "email": "seanparent@google.com",
        "time": "Wed Jun 23 16:44:42 2010 -0700"
      },
      "message": "Adding dependencies for side effect files.\nBUG\u003dnone\nTEST\u003dnone\n\nReview URL: http://codereview.chromium.org/2848018\n"
    },
    {
      "commit": "58fc478a64857ab81ccd3ab001d8618510ebf1c3",
      "tree": "84058f944a2651d715ca7b3d5d5628a3bbd5f591",
      "parents": [
        "785bc35cbfd5f94c35c878b137a67a380227c93c"
      ],
      "author": {
        "name": "Anush Elangovan",
        "email": "anush@chromium.org",
        "time": "Sat Jun 05 13:12:31 2010 -0700"
      },
      "committer": {
        "name": "Anush Elangovan",
        "email": "anush@chromium.org",
        "time": "Sat Jun 05 13:12:31 2010 -0700"
      },
      "message": "Setup code review inheritance\n\nChange-Id: I30d7c1d933ab4882d4820bd740601bfd8f29ace0\n"
    },
    {
      "commit": "785bc35cbfd5f94c35c878b137a67a380227c93c",
      "tree": "859490c43091ecdac4913f8c76f7ddfb73722aaa",
      "parents": [
        "6b78e29f80e98c4ad009c830012682220dc9de3b"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed May 26 12:34:53 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed May 26 12:34:53 2010 -0700"
      },
      "message": "AU: Common code to parse simple key/value store files\n\nWe use a few files, like /etc/lsb-release, that have a simple\nkey/value store format: each line is a key/value pair and the\nkey/value are separated by \u0027\u003d\u0027. This change make some common code to\nparse (and assemble) these files, which is used in one place now but\nwill be used in another place soon, too.\n\nBUG\u003dNone\nTEST\u003dattached unittests\n\nReview URL: http://codereview.chromium.org/2105016\n"
    },
    {
      "commit": "6b78e29f80e98c4ad009c830012682220dc9de3b",
      "tree": "c02e81bdf31e7a188b377829fbc34ebc2f576b0a",
      "parents": [
        "73520670492f3358c496698767879adcf6c03aea"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 10 15:54:39 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 10 15:54:39 2010 -0700"
      },
      "message": "Init: Start Update Engine at startup\n\nAlso related AU Fixes:\n\n- daemonize() for upstart\n\n- remember success in updating across runs of the process.\n\n- bug fixes: don\u0027t try to update if an update is in progress, clear\n  actions out in Update Attempter when updating is complete.\n\nBUG\u003dNone\nTEST\u003don device testing\n\nReview URL: http://codereview.chromium.org/2055008\n"
    },
    {
      "commit": "73520670492f3358c496698767879adcf6c03aea",
      "tree": "d9b29a9f30f98e365f8c1dd9b0e28fd2369d13bb",
      "parents": [
        "63b96d74b2ffe5999243ab5c33f588030bcb42ce"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 10 13:44:58 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 10 13:44:58 2010 -0700"
      },
      "message": "AU: check after 2 min, also every 30 min.\n\nalso, send updaterversion with omaha request.\n\nalso, log to /var/log/update_engine.log\n\nBUG\u003dNone\nTEST\u003dtested on device\n\nReview URL: http://codereview.chromium.org/2037005\n"
    },
    {
      "commit": "63b96d74b2ffe5999243ab5c33f588030bcb42ce",
      "tree": "4a6e93710964a383ea862a91a944b086d745452b",
      "parents": [
        "f98bff879c8e90840582f6a60a93918465f2d8b9"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 10 13:08:54 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 10 13:08:54 2010 -0700"
      },
      "message": "AU: DBus support.\n\nA few changes to support dbus in the Update Engine daemon:\n\n- SConstruct: build marshaller for the dbus signal.\n\n- Update Attempter: respond to dbus calls and broadcast status on dbus\n  signal.\n\n- Update Engine Client: flag to listen for status updates.\n\n- Also, cleanup outdated code in Omaha Response Handler.\n\nBUG\u003dNone\nTEST\u003dattached unittests/on device tests\n\nReview URL: http://codereview.chromium.org/2037002\n"
    },
    {
      "commit": "f98bff879c8e90840582f6a60a93918465f2d8b9",
      "tree": "1494880cef8b2a3567246eee27727715ec9048a0",
      "parents": [
        "f97144334e945a5ec88970b4b28f4e98ce0bbb80"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu May 06 13:33:25 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu May 06 13:33:25 2010 -0700"
      },
      "message": "AU: Minor fixes to get it to do full update on real device\n\n- Link w/ gtest only for unittests.\n\n- filesystem_copier_action: always send install plan on the output pipe\n  on success, even if no copy was performed.\n\n- omaha_response_handler: properly choose install partition based on\n  new GPT partition spec.\n\n- More useful logging to match memento_updater (which update URL is\n  used, dump of the request/response for the update check).\n\n- Fixed a bug where I wasn\u0027t bonding the proper actions together in update_attempter.\n\nBUG\u003dNone\nTEST\u003dattached unittests/did full update on Eee PC\n\nReview URL: http://codereview.chromium.org/2044001\n"
    },
    {
      "commit": "f97144334e945a5ec88970b4b28f4e98ce0bbb80",
      "tree": "bbac1c6dd55db6a18a135666c5bb86cf31f9ee96",
      "parents": [
        "f9185170a9763e493e77ffdc5b1f057c3bd3b11e"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Tue May 04 10:21:23 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Tue May 04 10:21:23 2010 -0700"
      },
      "message": "AU: Many minor cleanup changes\n\npostinstall: Run postinst twice, once for pre-commit (ie, before we\nmark the install partition bootable in the partition table), and\npost-commit (for after we do). This behavior is needed for specific\ntypes of firmware update.\n\ndownload action: flush caches, as we found was necessary in\nmemento_updater.sh\n\nomaha request prep action: update the names of keys we look for in\nlsb-release, also get the AU server url from a file, rather than\nhard-code it.\n\nset bootable flag action: GPT support.\n\nalso, some misc utility functions.\n\nBUG\u003dNone\nTEST\u003dattached unittests\n\nReview URL: http://codereview.chromium.org/1881001\n"
    },
    {
      "commit": "f9185170a9763e493e77ffdc5b1f057c3bd3b11e",
      "tree": "a506d9e7f753cdc185ef974aea4330a980000f91",
      "parents": [
        "f4c7ef1bc239890d8bee30e6823f88814fef8ce5"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 03 11:07:05 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon May 03 11:07:05 2010 -0700"
      },
      "message": "AU: Update Downloader to support our image formats.\n\nThe downloader used to be dumb in the sense that it would pipe output\nto either a DirectFileWriter or a DirectFileWriter via a\nGzipDecompressingFileWriter, depending on if we were downloading an\nupdate that was compressed or not. Sadly, things have gotten more\ncomplex: we need to download to two partitions (kernel + rootfs), and\nwe may stream data via a DeltaPerformer (a type of FileWriter) to the\ndisk. Thus, the Downloader streams to either\n1. gzip decompress-\u003esplit_writer-\u003edirect to disk OR\n2. delta performer\n\nOther misc changes: Change FilesystemCopierAction to support\noptionally copying the kernel partition rather than root partition.\n\nInstallPlan struct: add an entry for destiation kernel partition.\n\nTest Utils: a new ScopedTempFile class\n\nUtils: support for getting the booted kernel partition device.\n\nBUG\u003dNone\nTEST\u003dattached unittests\n\nReview URL: http://codereview.chromium.org/1694025\n"
    },
    {
      "commit": "f4c7ef1bc239890d8bee30e6823f88814fef8ce5",
      "tree": "3cb3d144a407eff64a7ff1955acc23de776b6dec",
      "parents": [
        "0cca4219a11ed5df53c56d695c4b7c73726be8b0"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Fri Apr 30 10:37:00 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Fri Apr 30 10:37:00 2010 -0700"
      },
      "message": "AU: delta compress the kernel partition\n\nAdd kernel partition to proto buf. Change delta generator to compress\nthe kernel partition and the delta performer to perform operations to\nupdate the kernel partition. Update unittests to test it.\n\nAlso, remove checksums from the protobuf while we\u0027re at it, since the\npartitions themselves will contains checksums.\n\nBUG\u003dNone\nTEST\u003dAttached unittest\n\nReview URL: http://codereview.chromium.org/1819002\n"
    },
    {
      "commit": "0cca4219a11ed5df53c56d695c4b7c73726be8b0",
      "tree": "a43606034de34205ef3355d462645505193b659e",
      "parents": [
        "c702078734db27d1fd712b02b686a75becbb5c9d"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Apr 29 14:00:58 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Apr 29 14:00:58 2010 -0700"
      },
      "message": "AU: SplitWriter class for parsing our full update files.\n\nFull updates now include data for two partitions (kernel + rootfs).\nThis CL adds a new SplitFileWriter class which takes the stream of\ndata, which is expected to be in our full update format (8 bytes big\nendian uint64_t of the first partition size, followed by first\npartition data, followed by second partition size). It parses the\nsize, then writes the data to each of two FileWriter classes.\n\nBUG\u003dNone\nTEST\u003dAttached unittest\n\nReview URL: http://codereview.chromium.org/1800009\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": "4e9b9f4d57a0c95fb1b9281077f0eef5fdf5e345",
      "tree": "32bd273a8369718b300bba4af4532580f6090bb4",
      "parents": [
        "09e56d64202d2148b95008c5bd18cf719ec0f40c"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon Apr 26 15:06:43 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon Apr 26 15:06:43 2010 -0700"
      },
      "message": "AU: Beginnings of dbus support.\n\nThe AU will be a daemon that runs as root. Non-root will communicate\nvia dbus with the updater to do things such as: query status, request\nforced or full updates, etc.\n\nNew files for dbus:\n\nUpdateEngine.conf - security configuration\ndbus_constants.h - common constants\ndbus_service.* - The object exposed over dbus\norg.chromium.UpdateEngine.service - the dbus service file\nudpate_attempter.* - Refactored this out of main.cc\nupdate_engine_client.cc - Simple command line utility to interact with\nUpdate Engine over dbus. Whereas Update Engine runs as root, this tool\nruns as non-root user.\n\nReview URL: http://codereview.chromium.org/1733013\n"
    },
    {
      "commit": "09e56d64202d2148b95008c5bd18cf719ec0f40c",
      "tree": "97804e4562fd9df05031d3c42bfa3dbb3d4c99dc",
      "parents": [
        "08c4e27baaa7b40732b99642e1f21bf889d022ef"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Fri Apr 23 13:45:53 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Fri Apr 23 13:45:53 2010 -0700"
      },
      "message": "AU: Class to perform delta updates.\n\nA class to perform delta updates and the associated unittests. Also,\nchange the delta diff generator executable to be able to apply a\ndelta, which is handy for debugging.\n\nTEST\u003dAttached unit test, hand-tested on real build images\nBUG\u003d552\n\nReview URL: http://codereview.chromium.org/1718001\n"
    },
    {
      "commit": "08c4e27baaa7b40732b99642e1f21bf889d022ef",
      "tree": "816583a62961b5caa1f1e13ba74e88ff070cf2c6",
      "parents": [
        "b10320d4f76a2d263566f6eed471921382fae800"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Apr 15 14:02:17 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Apr 15 14:02:17 2010 -0700"
      },
      "message": "update engine: 32- and 64-bit compile\n\nReview URL: http://codereview.chromium.org/1599029\n"
    },
    {
      "commit": "b10320d4f76a2d263566f6eed471921382fae800",
      "tree": "deb1002335a907c5140edcaab77fc4517b0e31f1",
      "parents": [
        "d2135f3946c7c551f152c0a595c5528cd186afef"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Mar 31 16:44:44 2010 -0700"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Mar 31 16:44:44 2010 -0700"
      },
      "message": "AU: Delta Diff Generator\n\nAdds a class that can take two root filesystem image and generate a\ndelta between them. Currently it\u0027s not very well tested, but this will\nimprove once the diff applicator is written.\n\nAlso, an executable to run the generator.\n\nOther changes:\n- Stop leaking loop devices in unittests\n- extent mapper: support sparse files, ability to get FS block size\n- AppendBlockToExtents support sparse files\n- subprocess more verbose on errors\n- add WriteAll to utils (WriteAll avoids short-write() returns)\n- mkstemp wrapper for ease of use\n- VectorIndexOf, finds index of an element in a vector\n\nReview URL: http://codereview.chromium.org/891002\n"
    },
    {
      "commit": "d2135f3946c7c551f152c0a595c5528cd186afef",
      "tree": "f01389c8f6f0787242aeef5a0f1056152fd9e641",
      "parents": [
        "5815155cc478bf2fbe016e80ee286493ccc3f251"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Mar 11 16:00:28 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Mar 11 16:00:28 2010 -0800"
      },
      "message": "AU: Bzip2 utility functions that mirror Gzip utility functions.\n\nAlso, Convert the gzip_unittest into a typed test and use the same\ntest cases for bzip2.\n\nReview URL: http://codereview.chromium.org/855002\n"
    },
    {
      "commit": "5815155cc478bf2fbe016e80ee286493ccc3f251",
      "tree": "6334d1a829d8dccab0ebc30d2159e0b5bacfc85d",
      "parents": [
        "35a7af1126cf132d28d2100b24ee476084acd974"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Mar 10 20:07:08 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Mar 10 20:07:08 2010 -0800"
      },
      "message": "AU: Topological Sort.\n\nReview URL: http://codereview.chromium.org/794003\n"
    },
    {
      "commit": "35a7af1126cf132d28d2100b24ee476084acd974",
      "tree": "eb79de1f5bad11fd43938285789e8f6354a10386",
      "parents": [
        "81ebcd8a46286a19b6616a3823e575ddd6a3c2b8"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Mar 10 16:33:26 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Wed Mar 10 16:33:26 2010 -0800"
      },
      "message": "AU: Cycle Breaker for directed graphs.\n\nA new class CycleBreaker that uses Johnson\u0027s elementary circuit\nfinding algorithm to find cycles in a directed graph. This class goes\nbeyond Johnson\u0027s algorithm to also break them using a simple greedy\nalgorithm.\n\nLike Johnson\u0027s elementary circuit finding algorithm, this is not\nintended to find cycles that contain only one node (i.e., a node that\npoints to itself).\n\nReview URL: http://codereview.chromium.org/784001\n"
    },
    {
      "commit": "81ebcd8a46286a19b6616a3823e575ddd6a3c2b8",
      "tree": "f3ab1441636a8bd3949b9cd587633cb1e68c4dd0",
      "parents": [
        "b4025e6c74a75b5d30f400a9740865e7e4a83ad1"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Tue Mar 09 15:56:18 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Tue Mar 09 15:56:18 2010 -0800"
      },
      "message": "AU: Tarjan\u0027s algorithm.\n\nAdd an implementation of Tarjan\u0027s algorith for finding Strongly\nConnected Components in a graph. This version is slightly modified: it\ntakes in a vertex in addition to the graph and returns only the SCC\ncontaining that vertex.\n\nReview URL: http://codereview.chromium.org/657055\n"
    },
    {
      "commit": "b4025e6c74a75b5d30f400a9740865e7e4a83ad1",
      "tree": "11c762acc1abd293781614fc657f35fdb23eb71f",
      "parents": [
        "0ce161b06c0430de62658e1f6bcea7a4a97eddf7"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Tue Feb 23 17:47:03 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Tue Feb 23 17:47:03 2010 -0800"
      },
      "message": "AU: Extent Mapper class\n\nExtent Mapper will use the FIBMAP (widely supported) ioctl to find\nout, for a given regular file, which extents it takes up on disk.\n\nReview URL: http://codereview.chromium.org/650199\n"
    },
    {
      "commit": "0ce161b06c0430de62658e1f6bcea7a4a97eddf7",
      "tree": "4bc2438fcf7ed1cac0f337d4e377a52d031a6bd7",
      "parents": [
        "8006106bd8dea3761d7f4dd8c8aa82d43c35bd17"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon Feb 22 15:27:01 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Mon Feb 22 15:27:01 2010 -0800"
      },
      "message": "AU: Some graph types and a couple utility functions\n\nThese will be used by the delta diff generator.\n\nReview URL: http://codereview.chromium.org/578009\n"
    },
    {
      "commit": "8006106bd8dea3761d7f4dd8c8aa82d43c35bd17",
      "tree": "ddc90f26cff8d836d2abf5756670dc6933cbdeaf",
      "parents": [
        "1e338b8d8289e1abbee16c628612a10e0eaaca93"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Feb 04 14:25:00 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Thu Feb 04 14:25:00 2010 -0800"
      },
      "message": "AU: Extent writer utility classes\n\nThese are similar to the FileWriter classes, but focus on writing to\nextents within a file (or device) rather than writing a file in order.\n\nAgain there is a ExtentWriter interface from which all types of extent\nwriters interit.\n\nThere are also two basic extent writers: a direct extent writer that\nwrites data directly to the file descriptor, and a zero padding extent\nwriter that piggy-backs on another extent writer. When the\nzero-padding extent writer is End()ed, it fills out the rest of the\nextent with zeros.\n\nAlso, BzipExtentWriter: an ExtentWriter concrete subclass that writes\nto another ExtentWriter.  BzipExtentWriter bzip2 decompresses all data\npassed through.\n\nReview URL: http://codereview.chromium.org/551132\n"
    },
    {
      "commit": "1e338b8d8289e1abbee16c628612a10e0eaaca93",
      "tree": "814c74a8c6cf4fded995242587d37cbaff5ae290",
      "parents": [
        "f2c29ec6913be845cd8f0e547a4acec52bb736d6"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Fri Jan 22 14:57:27 2010 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "adlr@chromium.org",
        "time": "Fri Jan 22 14:57:27 2010 -0800"
      },
      "message": "AU: Gut code for old updater. New protobuf for v2 updater.\n\nReview URL: http://codereview.chromium.org/545072\n"
    },
    {
      "commit": "f2c29ec6913be845cd8f0e547a4acec52bb736d6",
      "tree": "13220853fd7b26574eccde69f9a92002512ea161",
      "parents": [
        "926d20926542f945e1901bd6b845990ffedfc43e"
      ],
      "author": {
        "name": "Colin Watson",
        "email": "cjwatson@canonical.com",
        "time": "Fri Jan 08 18:50:56 2010 +0000"
      },
      "committer": {
        "name": "Colin Watson",
        "email": "cjwatson@canonical.com",
        "time": "Fri Jan 08 18:50:56 2010 +0000"
      },
      "message": "Consistently pass through PKG_CONFIG_LIBDIR environment variable\n\nPKG_CONFIG_LIBDIR is set by dpkg-buildpackage, and needs to be passed\nthrough to pkg-config for successful cross-building.\n\nReview URL: http://codereview.chromium.org/524073\n"
    },
    {
      "commit": "926d20926542f945e1901bd6b845990ffedfc43e",
      "tree": "56e253e0854ddc79f335fb26ed5013303a518732",
      "parents": [
        "4fe15d017c145aca449c2248420c1b4ec8c23758"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Tue Dec 15 15:59:52 2009 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Tue Dec 15 15:59:52 2009 -0800"
      },
      "message": "AU: missing file in last commit\n\nReview URL: http://codereview.chromium.org/495005\n"
    },
    {
      "commit": "4fe15d017c145aca449c2248420c1b4ec8c23758",
      "tree": "62d7c0cc4b73fdaae0ea34756650cfd3237d310f",
      "parents": [
        "970bb28905b44bf9f2cb986bb412ecda1095b0b1"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Thu Dec 10 19:01:36 2009 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Thu Dec 10 19:01:36 2009 -0800"
      },
      "message": "AU: Try delta updates first, then full updates\n\nAlso, some bug fixes.\n\nReview URL: http://codereview.chromium.org/492008\n"
    },
    {
      "commit": "970bb28905b44bf9f2cb986bb412ecda1095b0b1",
      "tree": "eddc41c74f80ac72856d3d79799082f28609996f",
      "parents": [
        "e573399617be974bd1e596311241939beb62899b"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Wed Dec 09 16:34:04 2009 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Wed Dec 09 16:34:04 2009 -0800"
      },
      "message": "AU: Use Omaha ID rather than MAC address in delta updater\n\nReview URL: http://codereview.chromium.org/467051\n"
    },
    {
      "commit": "e573399617be974bd1e596311241939beb62899b",
      "tree": "060297e8ca1220904ae7dd530460b883d82375e7",
      "parents": [
        "3defe6acb3609e70e851a6eff062577d25a2af9d"
      ],
      "author": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Tue Dec 08 13:34:00 2009 -0800"
      },
      "committer": {
        "name": "Andrew de los Reyes",
        "email": "opensource@google.com",
        "time": "Tue Dec 08 13:34:00 2009 -0800"
      },
      "message": "TBR: derat@chromium.org\n"
    },
    {
      "commit": "3defe6acb3609e70e851a6eff062577d25a2af9d",
      "tree": "341e979027fde117dd8906483db7a5c703a2e1cf",
      "parents": [
        "c98a7edf648aad88b3f66df3b5a7d43d6a6d7fa9"
      ],
      "author": {
        "name": "adlr@google.com",
        "email": "adlr@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Fri Dec 04 20:57:17 2009 +0000"
      },
      "committer": {
        "name": "adlr@google.com",
        "email": "adlr@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Fri Dec 04 20:57:17 2009 +0000"
      },
      "message": "Missed new files in last commit\n\nReview URL: http://codereview.chromium.org/465067\n\n\ngit-svn-id: svn://chrome-svn/chromeos/trunk@336 06c00378-0e64-4dae-be16-12b19f9950a1\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": "d2e4ccc22cd4dc1df69bb242321edde4af933e20",
      "tree": "9bb2e9c23b597399ac4e6bcfc2b44997dc17a035",
      "parents": [
        "49fdf1889b965be25f929eeebc5b60cd40b90435"
      ],
      "author": {
        "name": "seanparent@google.com",
        "email": "seanparent@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Thu Nov 05 22:56:33 2009 +0000"
      },
      "committer": {
        "name": "seanparent@google.com",
        "email": "seanparent@google.com@06c00378-0e64-4dae-be16-12b19f9950a1",
        "time": "Thu Nov 05 22:56:33 2009 +0000"
      },
      "message": "Die glog, die!\n\nReview URL: http://chromereview.prom.corp.google.com/1181050\n\ngit-svn-id: svn://chrome-svn/chromeos/trunk@171 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"
    }
  ]
}
