)]}'
{
  "commit": "4e260f1dc17864cdedc31bec1ff658404a9d703e",
  "tree": "e3587166d4ddbf25e248e9508acaee7eabc53bba",
  "parents": [
    "2b683eff60274dbe5874e81ee98a78c47169283e"
  ],
  "author": {
    "name": "RJ Ascani",
    "email": "rjascani@google.com",
    "time": "Mon Oct 19 17:41:51 2020 -0700"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Dec 17 19:23:57 2020 +0000"
  },
  "message": "Add clean_stale command\n\nThis CL adds a utility command to gn for cleaning out stale data from\nbuild directories. As users change configurations, arguments or gn\nfiles, the ninja build graph gets updated, but files and ninja database\nentries remain. This command is effectively a wrapper around a pair of\nninja tools: cleandead and recompact. The former removes no longer\nneeded output files from the build directory and the latter prunes their\nentries from the .ninja_log and .ninja_deps files.\n\nAdditionally, --clean-stale has been added as an option to the gen\ncommand.\n\nChange-Id: Ic931c1ac9fdf954d9a40318c7747ac9992a64045\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/10401\nCommit-Queue: RJ Ascani \u003crjascani@google.com\u003e\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0f40b75ae4b19512ddf1a7aba928a8a7406134be",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "922bf46fa5788ac751f9d5ceaf57b94b1f24eeaf",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "8eb1510c7c031eb49ae70f8bc63b69b1a305c481",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "4cced5886ada6dd171d00df85f63c081de8ca477",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "72f621ddff5b7ef8868b651c2d95769a0713617f",
      "new_mode": 33188,
      "new_path": "src/gn/command_clean_stale.cc"
    },
    {
      "type": "modify",
      "old_id": "44372367f699b0517c3157a05fb707fb8b93e79d",
      "old_mode": 33188,
      "old_path": "src/gn/command_gen.cc",
      "new_id": "20bc33280c6910eb18258afa90fc6558cd2e18cd",
      "new_mode": 33188,
      "new_path": "src/gn/command_gen.cc"
    },
    {
      "type": "modify",
      "old_id": "97d26299d1d30c24f706dd74b7277380e25ad5df",
      "old_mode": 33188,
      "old_path": "src/gn/commands.cc",
      "new_id": "da6514b3f7ecc5a240c45912b38a16ec1dca02e9",
      "new_mode": 33188,
      "new_path": "src/gn/commands.cc"
    },
    {
      "type": "modify",
      "old_id": "28d713a3102108d036946e2dd8de475805a9cc23",
      "old_mode": 33188,
      "old_path": "src/gn/commands.h",
      "new_id": "54a1a9dc8c3a979be89e1ecd26d807dc2c18eac8",
      "new_mode": 33188,
      "new_path": "src/gn/commands.h"
    },
    {
      "type": "modify",
      "old_id": "ed455441789c3656cabfe98ae913b31bd5a022e1",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_tools.cc",
      "new_id": "2eaf31cca367597a0629bbbb8e00f48417dc4deb",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_tools.cc"
    },
    {
      "type": "modify",
      "old_id": "4eda1e13086aed7613eca65078650aef0193000a",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_tools.h",
      "new_id": "97212969b71f91fb63bd97ea16512586358a705d",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_tools.h"
    }
  ]
}
