)]}'
{
  "commit": "4d740ebe4fd3cef70d415113f427f64ee5e87f7e",
  "tree": "6020d4f900a1b4bf797694071771e06b8dfa4822",
  "parents": [
    "ae23670c74f499214349253066cd520b250b9e83"
  ],
  "author": {
    "name": "Gilad Arnold",
    "email": "garnold@chromium.org",
    "time": "Tue May 15 08:48:13 2012 -0700"
  },
  "committer": {
    "name": "Gerrit",
    "email": "chrome-bot@google.com",
    "time": "Tue May 22 16:10:39 2012 -0700"
  },
  "message": "Revised GPIO module interface + GPIO discovery logic\n\n* The GpioHandler class is no longer a static singleton, rather an\n  ordinary object with a dynamic guard against multiple instances. This\n  makes testing/mocking a lot easier and simplifies implementation.\n\n* It uses a basic, mockable udev interface; the module comes with\n  complete unit testing of the discovery mechanism.\n\n* Corresponding changes to user classes, including UpdateAttempter and\n  UpdateCheckScheduler.\n\nNote that the implementation of the test mode signaling protocol is\ncurrently a no-op, always returning false, and hence has no effect on\nthe update process yet. This mechanism will be implemented in a later\nCL.\n\nBUG\u003dchromium-os:25397\nTEST\u003dBuilds and passes unit tests (including new ones)\n\nChange-Id: I2f6254db6799ff5ef8616314890833f6e3269ff6\nReviewed-on: https://gerrit.chromium.org/gerrit/22869\nReviewed-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nTested-by: Gilad Arnold \u003cgarnold@chromium.org\u003e\nCommit-Ready: Gilad Arnold \u003cgarnold@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0030bd596a436b04704ec1e753a2947da9012e30",
      "old_mode": 33188,
      "old_path": "SConstruct",
      "new_id": "a79a8a8acac723c153969fd72237aa654b3dd5f2",
      "new_mode": 33188,
      "new_path": "SConstruct"
    },
    {
      "type": "modify",
      "old_id": "d1825bde482feaadd2a6a389638bcd76fc927ce7",
      "old_mode": 33188,
      "old_path": "gpio_handler.cc",
      "new_id": "efd5e3df298c0194efcd47a6adf6a54b2ca0b9be",
      "new_mode": 33188,
      "new_path": "gpio_handler.cc"
    },
    {
      "type": "modify",
      "old_id": "c3d5a380f14e0758b3bb824e74828627986abe5c",
      "old_mode": 33188,
      "old_path": "gpio_handler.h",
      "new_id": "b269266096596356d4d147d0d62484d798511604",
      "new_mode": 33188,
      "new_path": "gpio_handler.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a133ac705ec2f4089c688ac03457869b509b38dd",
      "new_mode": 33188,
      "new_path": "gpio_handler_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5780eaa1f5499915903483bf910de20d2ca29f04",
      "new_mode": 33188,
      "new_path": "gpio_handler_unittest.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "22c7b7fc9e57118deea33be130b95ac621892031",
      "new_mode": 33188,
      "new_path": "gpio_mock_udev_interface.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "724a0f4ea62b12665e1d15b2c6e40c0a138c960d",
      "new_mode": 33188,
      "new_path": "gpio_mock_udev_interface.h"
    },
    {
      "type": "modify",
      "old_id": "790fe739922b7a0033da99ba6b51b13e264c6d34",
      "old_mode": 33188,
      "old_path": "main.cc",
      "new_id": "fc0319f0c391c877551a538cd26a81e315c80915",
      "new_mode": 33188,
      "new_path": "main.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b9765a85cbd8f58659ec3da7f83c8aa856e96421",
      "new_mode": 33188,
      "new_path": "udev_interface.h"
    },
    {
      "type": "modify",
      "old_id": "214f21ae81b0567ab19b201184124bb5a69442ed",
      "old_mode": 33188,
      "old_path": "update_attempter.cc",
      "new_id": "d6c54962d3e511e6dfa960cca88bd1938958dbba",
      "new_mode": 33188,
      "new_path": "update_attempter.cc"
    },
    {
      "type": "modify",
      "old_id": "4f306678dff8667981bd482486262003b50d5af7",
      "old_mode": 33188,
      "old_path": "update_attempter.h",
      "new_id": "950163e727cf374a6c4e295ed63578e642c03f49",
      "new_mode": 33188,
      "new_path": "update_attempter.h"
    },
    {
      "type": "modify",
      "old_id": "50b5c256484f103965fe0a6d3ce89b791acb85bb",
      "old_mode": 33188,
      "old_path": "update_attempter_mock.h",
      "new_id": "bdb83ff04eaa6530fe818d4cf9d26c93695b0a4a",
      "new_mode": 33188,
      "new_path": "update_attempter_mock.h"
    },
    {
      "type": "modify",
      "old_id": "6402bb657d6714b7700fdc1bf2e4351aac0b2e4c",
      "old_mode": 33188,
      "old_path": "update_attempter_unittest.cc",
      "new_id": "04648e30049beac90de749222f330c81624a7649",
      "new_mode": 33188,
      "new_path": "update_attempter_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "cbe90c4e60c9da8fdf5fd949bfa3cf1e389ca543",
      "old_mode": 33188,
      "old_path": "update_check_scheduler.cc",
      "new_id": "c3b0d17a8292734aabf443d9c2f205594afafad8",
      "new_mode": 33188,
      "new_path": "update_check_scheduler.cc"
    },
    {
      "type": "modify",
      "old_id": "edfbbfd0d3fa09554a12fcde34627d30dfdaa35e",
      "old_mode": 33188,
      "old_path": "update_check_scheduler.h",
      "new_id": "cd3ad870c050e587b6822725460a5570a35840b2",
      "new_mode": 33188,
      "new_path": "update_check_scheduler.h"
    },
    {
      "type": "modify",
      "old_id": "098651b4b36f07eb7a13d94b71143e726271f1e2",
      "old_mode": 33188,
      "old_path": "update_check_scheduler_unittest.cc",
      "new_id": "965ce9d6532e9ba1a7afbbc0c2b307ed38128102",
      "new_mode": 33188,
      "new_path": "update_check_scheduler_unittest.cc"
    }
  ]
}
