)]}'
{
  "commit": "f92f71feb9120500a7513644e493de74f0b1a99b",
  "tree": "67393f3ca30c685815483c72e9a2fc80f4f6a550",
  "parents": [
    "d8c52527cc98003bc01b3c5bf7fd65655b2bd889"
  ],
  "author": {
    "name": "Ian Hickson",
    "email": "ian@hixie.ch",
    "time": "Tue Jun 14 10:16:08 2016 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jun 14 10:16:08 2016 -0700"
  },
  "message": "Lock flutter tool while updating artifacts (#4476)\n\nThis prevents multiple simultaneous runs of the analyzer from stomping\r\nover each other (e.g. multiple runs of \u0027update-packages\u0027). Certain\r\nlong-lived commands (like analyze, run, logs) are exempted once they\u0027ve\r\ndone enough work to be safe from most stomping action.\r\n\r\nThis still doesn\u0027t make us entirely safe from craziness, e.g. if you\u0027re\r\nhalf way through an \u0027update-packages\u0027 run and you call \u0027git pull\u0027, who\r\nknows what state you\u0027ll end up in. But there\u0027s only so much one can do.\r\n\r\nFixes https://github.com/flutter/flutter/issues/2762",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6b67ec527f49a11df2d7195588942a10bb4b0613",
      "old_mode": 33188,
      "old_path": "bin/cache/.gitignore",
      "new_id": "a644cdcdb9173b0b173d30dcda50c5d936eb16e2",
      "new_mode": 33188,
      "new_path": "bin/cache/.gitignore"
    },
    {
      "type": "modify",
      "old_id": "610f57b15bddfa9f8ff797a991e9c5b162373ef1",
      "old_mode": 33261,
      "old_path": "bin/flutter",
      "new_id": "67e6e13b0b67bc79ed7cfa3f6d9f4c5d9d71a9cb",
      "new_mode": 33261,
      "new_path": "bin/flutter"
    },
    {
      "type": "modify",
      "old_id": "4f98bad672331aea44e15b21634dd863fcf90a57",
      "old_mode": 33188,
      "old_path": "dev/automated_tests/flutter_test/test_async_utils_guarded_expectation.txt",
      "new_id": "ee5901b980fe95189a00d92bd23b9ba047019956",
      "new_mode": 33188,
      "new_path": "dev/automated_tests/flutter_test/test_async_utils_guarded_expectation.txt"
    },
    {
      "type": "modify",
      "old_id": "915bd7851b202ea8b0b90080be0cbaa9624ba71b",
      "old_mode": 33188,
      "old_path": "dev/automated_tests/flutter_test/test_async_utils_unguarded_expectation.txt",
      "new_id": "b07f651b7c9ef3916313a11ec42f78b07641d3dd",
      "new_mode": 33188,
      "new_path": "dev/automated_tests/flutter_test/test_async_utils_unguarded_expectation.txt"
    },
    {
      "type": "modify",
      "old_id": "72cf752a9e00cb1b7847ac4b33e996ead8723262",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/cache.dart",
      "new_id": "079e6b64e50a093396b9996f8a2d544bf9d617ad",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/cache.dart"
    },
    {
      "type": "modify",
      "old_id": "1f5ca0dd2e8c729a1204df646b8e71c10ccfb76b",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/analyze.dart",
      "new_id": "2e2945115c2d4489870c0231f1a8092d6f2a7d46",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/analyze.dart"
    },
    {
      "type": "modify",
      "old_id": "5bd9f490a7baa3e6852133c33a27f92f338ec6a8",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/daemon.dart",
      "new_id": "b26ba9e3a9a5d15ff4d27486defc98afdcae8179",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/daemon.dart"
    },
    {
      "type": "modify",
      "old_id": "9cc65aa535d064c19bf3b00163ebf1ce5559f4fb",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/drive.dart",
      "new_id": "6b50e30c10b062a0e3d1bee8af5251bd518e298d",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/drive.dart"
    },
    {
      "type": "modify",
      "old_id": "ab2ebb16b1498fe484ce3f7f035e1af5700b032d",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/install.dart",
      "new_id": "1e4b5f97619f144d8f8e54a9e8fdaee2cf58f64a",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/install.dart"
    },
    {
      "type": "modify",
      "old_id": "73ec0faaffb01830746cd829b166aefc6e1054a8",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/listen.dart",
      "new_id": "966dd2274df9959a3895d943104778f4115b442a",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/listen.dart"
    },
    {
      "type": "modify",
      "old_id": "a769d97e88ebf2421cf0ae46a18b980af4cb17e2",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/logs.dart",
      "new_id": "df2b8b4681d2aa89bdc9deac1c0e05993897e2d3",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/logs.dart"
    },
    {
      "type": "modify",
      "old_id": "2dfbc7d79b672d5159e3fe8e775039edfebb1c22",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/refresh.dart",
      "new_id": "b0f7a3fece63ee2415e2122999133cce88f062da",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/refresh.dart"
    },
    {
      "type": "modify",
      "old_id": "72a586ec660ad45d24cde6c5729fc5362862aaec",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/run.dart",
      "new_id": "45c27d7f5dc9913eb53e46089e32e59882420f0f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/run.dart"
    },
    {
      "type": "modify",
      "old_id": "67da38323881f0353853a2ef4b25feed8855b13b",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/run_mojo.dart",
      "new_id": "eb7f6a2e49842ba3dd4b077623d926a6eb51f698",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/run_mojo.dart"
    },
    {
      "type": "modify",
      "old_id": "a247e752e4c1834d070c745a507059394a995151",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/test.dart",
      "new_id": "ca3c81ee4a9c660e186f7131da07da1d2f8cd245",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/test.dart"
    },
    {
      "type": "modify",
      "old_id": "674940a62a59947b81295b3d7c8dde646ccac9a5",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/trace.dart",
      "new_id": "75817950156d2c8c248eba40a8d5d4d7c8405586",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/trace.dart"
    },
    {
      "type": "modify",
      "old_id": "9dfdd521b51abe859e618a15e682f045408f141f",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/runner/flutter_command_runner.dart",
      "new_id": "f25fbe063d607993dab56ebbfc4808ad6a0bc47f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/runner/flutter_command_runner.dart"
    },
    {
      "type": "modify",
      "old_id": "d929af8fb33ecc4bf489d85c139eb8c86358212f",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/all.dart",
      "new_id": "32fc9a0738064f14ff75946455067fe72fac864f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/all.dart"
    },
    {
      "type": "rename",
      "old_id": "db242a5d64cdf05f0b0047c68f7dd22395760d0a",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/devices.test.dart",
      "new_id": "db242a5d64cdf05f0b0047c68f7dd22395760d0a",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/devices_test.dart",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "73a51c212e0c24c2499e9394bea46498f0a3623e",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/test_test.dart",
      "new_id": "a812c24c134666ad762ceb49383a0600a138050f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/test_test.dart"
    }
  ]
}
