)]}'
{
  "commit": "acf4b6c1aa631e5fa6299ba7ef6dfdfe1fa7d6ab",
  "tree": "16cbc89c70300e9bf55b2ca8464e5a264ba0a969",
  "parents": [
    "ee396272d3263eec46c94bb1fa00cd2ca72dd1e7"
  ],
  "author": {
    "name": "Ian Hickson",
    "email": "ian@hixie.ch",
    "time": "Mon Jul 30 16:58:07 2018 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 30 16:58:07 2018 -0700"
  },
  "message": "Clean up startProgress logic. (#19695) (#20009)\n\nDisallow calling stop() or cancel() multiple times. This means that\r\nwhen you use startProgress you have to more carefully think about what\r\nexactly is going on.\r\n\r\nProperly cancel startProgress in non-ANSI situations, so that\r\nback-to-back startProgress calls all render to the console.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd3e1c322ff4ddf57ea4a304a57d3344df2e9f45",
      "old_mode": 33188,
      "old_path": "dev/devicelab/README.md",
      "new_id": "4450ee06a8209207e55d075dc987cf0d04332184",
      "new_mode": 33188,
      "new_path": "dev/devicelab/README.md"
    },
    {
      "type": "modify",
      "old_id": "e5e8699a34ad3c69c95376811c796d3861d2fc7e",
      "old_mode": 33188,
      "old_path": "dev/devicelab/bin/tasks/flutter_attach_test.dart",
      "new_id": "a3defc5895611ff3dc5dff35788f30461ec60b1c",
      "new_mode": 33188,
      "new_path": "dev/devicelab/bin/tasks/flutter_attach_test.dart"
    },
    {
      "type": "modify",
      "old_id": "dedd300966ceddd3ce38ef6e91656ce8d1d25b4d",
      "old_mode": 33188,
      "old_path": "dev/devicelab/bin/tasks/run_release_test.dart",
      "new_id": "87094bc998d11e43da120f2b5268a77695c2d7c3",
      "new_mode": 33188,
      "new_path": "dev/devicelab/bin/tasks/run_release_test.dart"
    },
    {
      "type": "modify",
      "old_id": "d1a0cc39161e5224b7935fca80130cf514b6ee3f",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/android/gradle.dart",
      "new_id": "4fa661b183f0487acb6e7a5ef17884b1407439c0",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/android/gradle.dart"
    },
    {
      "type": "modify",
      "old_id": "7248c7793ede1df8998c9d30c1dc4506f59188c0",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/base/logger.dart",
      "new_id": "dcab62c15a5f7f2254bd4121ac5549ada0dd840b",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/base/logger.dart"
    },
    {
      "type": "modify",
      "old_id": "ccfeb15b4378d6dd39942ba4894c6623796be302",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/cache.dart",
      "new_id": "326c24e02bb0f4544686d1038c8b0ee8cb3e2a72",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/cache.dart"
    },
    {
      "type": "modify",
      "old_id": "5bf9bb827ddf50731edad378b3178f7e3c669322",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/build_aot.dart",
      "new_id": "f28a1d27d1009b64495127d9187b3d169ff7c9eb",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/build_aot.dart"
    },
    {
      "type": "modify",
      "old_id": "202fbf2dacdcff45b9def74355137dedc8e647b6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/daemon.dart",
      "new_id": "eaf51f70c0e6e2c4d341625285582b898f1bf0a2",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/daemon.dart"
    },
    {
      "type": "modify",
      "old_id": "7106f639b0a81a18dfac8ce0e6d25eab19a5d5f4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/update_packages.dart",
      "new_id": "aca3411fcad0bbc446bd867bcbe4475a4c695663",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/update_packages.dart"
    },
    {
      "type": "modify",
      "old_id": "d633374aa0a8c37940c3f7c2c70114906f41db42",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/dart/pub.dart",
      "new_id": "90ef41b0e48e71ab7a616f494500cca94da10279",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/dart/pub.dart"
    },
    {
      "type": "modify",
      "old_id": "9d9dc90473d97e49fe0f74c1800d980e8a898f6f",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/doctor.dart",
      "new_id": "f97f2ff701e80112f038ec5595d045f16a19a804",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/doctor.dart"
    },
    {
      "type": "modify",
      "old_id": "8099bd278fdb0c6039640803da86d02b430b29d7",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/ios/devices.dart",
      "new_id": "3ea48a1974a0db00e84b3fce2279a8a799259f77",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/ios/devices.dart"
    },
    {
      "type": "modify",
      "old_id": "ca167809449d0d3b143982d377e01f098877619c",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/resident_runner.dart",
      "new_id": "a18ea9dd11620a933306394023f706480411e1dc",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/resident_runner.dart"
    },
    {
      "type": "modify",
      "old_id": "f28cf4947b8fb4b22648039fef5d535f54c3dec4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/run_hot.dart",
      "new_id": "b051dafaf6b181dfd21fb72f36cd7512980366b6",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/run_hot.dart"
    },
    {
      "type": "modify",
      "old_id": "5fa9778d8eace4105ee5437cb82c1eae84af526c",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/base/logger_test.dart",
      "new_id": "cf1fbf126d4d991252ae2d559ab5ae91e5f0270e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/base/logger_test.dart"
    }
  ]
}
