)]}'
{
  "commit": "3dec6a693059dc65ccd66e751f53ef21525a7d74",
  "tree": "c2714c82e36ed6d51c87c934fa6961115dc8db81",
  "parents": [
    "d581208557d6278f81ada3ac39299256d14a6702"
  ],
  "author": {
    "name": "Ian Hickson",
    "email": "ian@hixie.ch",
    "time": "Fri Aug 17 13:17:23 2018 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 17 13:17:23 2018 -0700"
  },
  "message": "Clean up usage of temporary directories (#20682)\n\nAll temporary directory start with `flutter_` and have their random component separated from the name by a period, as in `flutter_test_bundle.YFYQMY`.\r\n\r\nI\u0027ve tried to find some of the places where we didn\u0027t cleanly delete temporary directories, too. This greatly reduces, though it does not entirely eliminate, the directories we leave behind when running tests, especially `flutter_tools` tests.\r\n\r\nWhile I was at it I standardized on `tempDir` as the variable name for temporary directories, since it was the most common, removing occurrences of `temp` and `tmp`, among others.\r\n\r\nAlso I factored out some common code that used to catch exceptions that happen on Windows, and made more places use that pattern.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5974d4b019efae4f9d0ee34aa1f287dcf7b2b084",
      "old_mode": 33188,
      "old_path": "dev/bots/analyze-sample-code.dart",
      "new_id": "ecc1491c4adbd014fecdd7b1a64deedeb83f4b35",
      "new_mode": 33188,
      "new_path": "dev/bots/analyze-sample-code.dart"
    },
    {
      "type": "modify",
      "old_id": "d323f877f2e6748493d7f9da340d98faab139845",
      "old_mode": 33188,
      "old_path": "dev/bots/prepare_package.dart",
      "new_id": "cbaf1e2584a57b96727e554309ec52b9ed520bc4",
      "new_mode": 33188,
      "new_path": "dev/bots/prepare_package.dart"
    },
    {
      "type": "modify",
      "old_id": "09e66f5f79e8aef759baadd30fc88ec7bbfcb459",
      "old_mode": 33188,
      "old_path": "dev/bots/test.dart",
      "new_id": "61e3c049c348cfca2ba1cc57271f0fd3d8a3741c",
      "new_mode": 33188,
      "new_path": "dev/bots/test.dart"
    },
    {
      "type": "modify",
      "old_id": "b36d043b0ad3bc32e995756b401672530b67222f",
      "old_mode": 33188,
      "old_path": "dev/bots/test/common.dart",
      "new_id": "7638adba37858d0b018e6cbffe192dd1f7e08095",
      "new_mode": 33188,
      "new_path": "dev/bots/test/common.dart"
    },
    {
      "type": "modify",
      "old_id": "bfeb9e4e9cd5e9c6f3916bbc287136f3ace7c737",
      "old_mode": 33188,
      "old_path": "dev/bots/test/prepare_package_test.dart",
      "new_id": "1da66ea592a39c2d3c297142361ade1465c2eb59",
      "new_mode": 33188,
      "new_path": "dev/bots/test/prepare_package_test.dart"
    },
    {
      "type": "modify",
      "old_id": "70eacefdb6791f09b4dd3530875abd4484aed48c",
      "old_mode": 33188,
      "old_path": "dev/devicelab/bin/tasks/gradle_plugin_test.dart",
      "new_id": "7e218189f8f1691279ba2be8fdf8997b906098c5",
      "new_mode": 33188,
      "new_path": "dev/devicelab/bin/tasks/gradle_plugin_test.dart"
    },
    {
      "type": "modify",
      "old_id": "75ee57a2935f84ffda8b9401a41e61a2ae2f47fd",
      "old_mode": 33188,
      "old_path": "dev/devicelab/bin/tasks/module_test.dart",
      "new_id": "88a35fe8cde8eed2e0ee8fec945bb6604f24539d",
      "new_mode": 33188,
      "new_path": "dev/devicelab/bin/tasks/module_test.dart"
    },
    {
      "type": "modify",
      "old_id": "3263000b70d9d4882096ac5a5ae86682102d4d4d",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/framework/utils.dart",
      "new_id": "65b092350470d31cd1dce084286478fcab73eb0a",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/framework/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "0d31ef63ff396b1ad8d43243bb27d2a089799810",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/tasks/perf_tests.dart",
      "new_id": "cea0ca330fb394d28a4012a6e3c085381f430a8d",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/tasks/perf_tests.dart"
    },
    {
      "type": "modify",
      "old_id": "3f032fa31e3a20cb4dd51c964122f85b8a80b1aa",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/tasks/plugin_tests.dart",
      "new_id": "556d99c75673b758261b3b68768bd28d07c63dc3",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/tasks/plugin_tests.dart"
    },
    {
      "type": "modify",
      "old_id": "f672ef44aa102aa5efcfb37a3e1500d4da0b68cd",
      "old_mode": 33188,
      "old_path": "dev/tools/dartdoc.dart",
      "new_id": "4ee08177aa2327b673a782c7d3e0d41fb6477ce8",
      "new_mode": 33188,
      "new_path": "dev/tools/dartdoc.dart"
    },
    {
      "type": "modify",
      "old_id": "b36d043b0ad3bc32e995756b401672530b67222f",
      "old_mode": 33188,
      "old_path": "packages/flutter_driver/test/common.dart",
      "new_id": "dbc658f949911c88a02410f4c48c14f91eceacbf",
      "new_mode": 33188,
      "new_path": "packages/flutter_driver/test/common.dart"
    },
    {
      "type": "modify",
      "old_id": "166fdbd425affd747b96a45556bc910ff1b24af8",
      "old_mode": 33188,
      "old_path": "packages/flutter_driver/test/src/timeline_summary_test.dart",
      "new_id": "96b38b184a075d2bd99950851b2b9a7282e94eea",
      "new_mode": 33188,
      "new_path": "packages/flutter_driver/test/src/timeline_summary_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b77017d5e5abb49957ebd1d86b9ee2a6f77e5526",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/bin/fuchsia_tester.dart",
      "new_id": "2182f6be3c4973b9be4bbda251d6444669803236",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/bin/fuchsia_tester.dart"
    },
    {
      "type": "modify",
      "old_id": "ac7faf5d604786909d6dd4f48b0483d413db4304",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/application_package.dart",
      "new_id": "cbe569bb9bbee21b785ea2ab6f0cbbd9f34903c3",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/application_package.dart"
    },
    {
      "type": "modify",
      "old_id": "49f202e6a9f2b222d30d0e7b4d6eebe28641ef6c",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/update_packages.dart",
      "new_id": "78e6a8c6b939b7be1ef6bc9b6489f8213b15c1e9",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/update_packages.dart"
    },
    {
      "type": "modify",
      "old_id": "e8890f14956489841158d6477c12febf0c64b1a9",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/ios/mac.dart",
      "new_id": "f9a1e7aba29add54606f8fc48cb59f3355c5e303",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/ios/mac.dart"
    },
    {
      "type": "modify",
      "old_id": "5c665dfffdb725ca86bc739ff5b431af844ea0a8",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/runner/flutter_command_runner.dart",
      "new_id": "454fac98439524b6926c4716731217141a2210e4",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/runner/flutter_command_runner.dart"
    },
    {
      "type": "modify",
      "old_id": "461038ca4933e992c191c63d3aac00a5f47f0a8d",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/test/coverage_collector.dart",
      "new_id": "3ed1c9dcdd707db09772b8ce0c91d9b4c0671209",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/test/coverage_collector.dart"
    },
    {
      "type": "modify",
      "old_id": "f219c08ea3f7927b2546b61fc4c9e5168dfed9e6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/test/flutter_platform.dart",
      "new_id": "f5b56bb75f507651dc55b2188dfbb475277ede04",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/test/flutter_platform.dart"
    },
    {
      "type": "modify",
      "old_id": "b61cd35b0242df8b3d7cef27dc83b6036cc64b9b",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/analytics_test.dart",
      "new_id": "f6f2b7594559902d7123c3ac17d4467a8a846004",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/analytics_test.dart"
    },
    {
      "type": "modify",
      "old_id": "179db332772a15a88a5aaedcb3c2509a140a0e6d",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/android/android_sdk_test.dart",
      "new_id": "870a0bf81b5701893d25a9671179df7e895595ba",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/android/android_sdk_test.dart"
    },
    {
      "type": "modify",
      "old_id": "48831650f3abc2736beea173527a48a2fa610a5f",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/android/android_workflow_test.dart",
      "new_id": "70bc842e157379e0524ba7b0f53f300bba70cab1",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/android/android_workflow_test.dart"
    },
    {
      "type": "modify",
      "old_id": "7767736132252818b45dc6b1d036fe6f1ab8668b",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/artifacts_test.dart",
      "new_id": "ac1c8fe776a86bd13804aee9e0a212532e2f836e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/artifacts_test.dart"
    },
    {
      "type": "modify",
      "old_id": "dc7c135eb194d5e178cfdba10174b4e33757bce4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/asset_bundle_package_fonts_test.dart",
      "new_id": "4804dba56ebf96f47ff85bb9072902686181deea",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/asset_bundle_package_fonts_test.dart"
    },
    {
      "type": "modify",
      "old_id": "624607698a50d0048dc3ed75e0b4b628e3332438",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/asset_bundle_package_test.dart",
      "new_id": "4361bba3ba6c6803107ce92aaa514165457e7f0e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/asset_bundle_package_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e4fdf8ee188290671c30a72c559043bc03994b3e",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/asset_bundle_test.dart",
      "new_id": "afafc7171c0d21ec9af7fb2eef9373730c135691",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/asset_bundle_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e58f0e7f0d6cee7eedecbb132b4f97ae6d1a7b63",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/asset_bundle_variant_test.dart",
      "new_id": "afdbcc6a90be705058e1f515d8d1e9bea40924fc",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/asset_bundle_variant_test.dart"
    },
    {
      "type": "modify",
      "old_id": "5f6987c26b6721516c416f9c84fbfeae70724da6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/base/os_utils_test.dart",
      "new_id": "27c98497073e897d3297eda93bcbc50539fd7312",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/base/os_utils_test.dart"
    },
    {
      "type": "modify",
      "old_id": "dfb1972edf5f07489c702f57c86fb9ac1aba8c79",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/analyze_continuously_test.dart",
      "new_id": "018dc85595ef45bdacb30b6e679ef0d857d4656f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/analyze_continuously_test.dart"
    },
    {
      "type": "modify",
      "old_id": "37360820ba1cf3d54edad25ff9a249826ff578bd",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/analyze_once_test.dart",
      "new_id": "3b0ee80b4a655d34e62c50e9baf7d7ed6644a80e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/analyze_once_test.dart"
    },
    {
      "type": "modify",
      "old_id": "bae562c6eae37ce859e538b46999a6fe333f6f00",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/analyze_test.dart",
      "new_id": "d86b5745c6ec5bd7273c11f2a20d173eaccd98c5",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/analyze_test.dart"
    },
    {
      "type": "modify",
      "old_id": "d71d4fbd758b2233ec1e218529ad1ababb797c9c",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/create_test.dart",
      "new_id": "18edccef06e238fae757487c1b8639543d74f499",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/create_test.dart"
    },
    {
      "type": "modify",
      "old_id": "9507805d2a0283b24fd5f763f3109c7cdc22fcfc",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/drive_test.dart",
      "new_id": "c15bbc9591b940b11265817052f4329f26786832",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/drive_test.dart"
    },
    {
      "type": "modify",
      "old_id": "43e7b5cecb8e48f8d3b371f002f8eb9998a979d6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/format_test.dart",
      "new_id": "752e720da1ea19a5057a1aa9ca92d374f788ae00",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/format_test.dart"
    },
    {
      "type": "modify",
      "old_id": "aa97518fa1c856675f40d2c377d532bf8f87c2a4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/ide_config_test.dart",
      "new_id": "79e799f95224d9ab721c2b64f73dc8a7fe15252c",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/ide_config_test.dart"
    },
    {
      "type": "modify",
      "old_id": "7d5d67025ba979b797948fef25aa3b84caeeb192",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/packages_test.dart",
      "new_id": "efa71ddabf3223e6483d3d993b56234c8c1fa13e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/packages_test.dart"
    },
    {
      "type": "modify",
      "old_id": "16469bebed4f60954a24cb08b7e0e9ba1412376d",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands/upgrade_test.dart",
      "new_id": "f4a0f0da805a825a45cf70a97ec62dceeec6389c",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands/upgrade_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e476cb8f417b3cda89d0181f0d035626e0ab76c1",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/config_test.dart",
      "new_id": "30edb71d5d3bc50c7384c95e3a5a277de9d9542a",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/config_test.dart"
    },
    {
      "type": "modify",
      "old_id": "0c55782256610dc8df767e7746416b7d5a81d77b",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/dependency_checker_test.dart",
      "new_id": "1fdbc7c9922b3c5b2a2289ba84b9f45bdfc196f7",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/dependency_checker_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b2fb44532db830d8f62522949187fe6fed210648",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/devfs_test.dart",
      "new_id": "6a9d309b92ecb10c9b2f762b75fc46603eac96e7",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/devfs_test.dart"
    },
    {
      "type": "modify",
      "old_id": "677bd29d809a4b0cf923be2b3d9079a03e4143d6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/expression_evaluation_test.dart",
      "new_id": "e68b7c24862757ecd72de9fe2b2ff16bfaa5b406",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/expression_evaluation_test.dart"
    },
    {
      "type": "modify",
      "old_id": "6a2bace84505bbf4842d723ee00175bbc7c0cb65",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/flutter_attach_test.dart",
      "new_id": "68fb836b677d680d084ce339730e7f0d48c565c5",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/flutter_attach_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e3d2575cb6700b96968ddfb5fdf61c687a833da5",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/flutter_tester_test.dart",
      "new_id": "6b98e192cc637e829eb25b4e4be6a3531757b32b",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/flutter_tester_test.dart"
    },
    {
      "type": "modify",
      "old_id": "58e6ddff583b5239537850fba6dd6d39a40054c6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/hot_reload_test.dart",
      "new_id": "7d721ca01dbaa6142f9a646b021581c1b1d93a0f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/hot_reload_test.dart"
    },
    {
      "type": "modify",
      "old_id": "10336a609af18cd2599907ee8451b77b4d70aa2d",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/lifetime_test.dart",
      "new_id": "79576da08816d9fdc0cad7a3f207905b96d488dd",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/lifetime_test.dart"
    },
    {
      "type": "modify",
      "old_id": "af825d261b63e490711c02dec732965042f2dbec",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/test_data/test_project.dart",
      "new_id": "1b73c45c1b444c5529e8e22647b2b8472791370f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/test_data/test_project.dart"
    },
    {
      "type": "modify",
      "old_id": "0df87924ccf693a502090e91aac8b3f3c2412181",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/integration/test_driver.dart",
      "new_id": "ee9a76d62cfe190e2e4543bbbd0c3349775e1cc6",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/integration/test_driver.dart"
    },
    {
      "type": "modify",
      "old_id": "3aa0331de228b6f5732181e2470e675425e66fbd",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/src/common.dart",
      "new_id": "b932cf851723b69c56ad6674e589d9148dfc0087",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/src/common.dart"
    },
    {
      "type": "modify",
      "old_id": "0136da142775f314918dbc28f28dc31e9c4d5cf6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/src/context.dart",
      "new_id": "c36663355718191680f84b55885f52b849215c6b",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/src/context.dart"
    },
    {
      "type": "modify",
      "old_id": "19e6e4557451405ad352176a717555f9192caba2",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/src/mocks.dart",
      "new_id": "a4326e0db6b9030a3b357252b6bc75660b496fae",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/src/mocks.dart"
    }
  ]
}
