)]}'
{
  "commit": "1ec42e7f64945f55960d404acbcd81bddeb8c77d",
  "tree": "3401170ce7308ec91693c3f247a9101373784e0f",
  "parents": [
    "5b4af69f9e815e7e66568bd0b2cc47113e399c66"
  ],
  "author": {
    "name": "Scott Graham",
    "email": "scottmg@chromium.org",
    "time": "Thu Nov 07 12:19:44 2019 -0800"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Nov 08 00:23:49 2019 +0000"
  },
  "message": "[format] Convert invalid whitespace to space when loading for format\n\nI\u0027ve been forced to edit a lot of Go code recently where tabs are much\nloved, and my Vim occasionally gets horked and sneaks tabs into my .gn\nfiles.\n\nAfter that, running `gn format` on the BUILD.gn complains about\n\n    ERROR at //.../BUILD.gn:5:1: Invalid token.\n            sources \u003d [\n    ^\n    You got a tab character in here. Tabs are evil. Convert to spaces.\n\nIt just seems petty to make me manually replace them! So only when\nparsing for format purposes, silently transform tabs (and since we\u0027re\nhere vertical tabs and form feeds too) to spaces outside of quoted\nstrings. Maintain the error in normal operation though.\n\nChange-Id: Ia4099be3bbd9621e75479d4bfa734862f6c5bccf\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/6500\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\nCommit-Queue: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "15a0dc596d9945f64877b1946d7cfb8b9a57a952",
      "old_mode": 33188,
      "old_path": "src/gn/command_format.cc",
      "new_id": "99e7a62ede53662d5a44b569ab556532d28f1b2c",
      "new_mode": 33188,
      "new_path": "src/gn/command_format.cc"
    },
    {
      "type": "modify",
      "old_id": "0420269ffb4953d46eb4b6263ea0e0fb13aee253",
      "old_mode": 33188,
      "old_path": "src/gn/command_format_unittest.cc",
      "new_id": "f334b7059a1e0abe45f789736f32f3b5067ac602",
      "new_mode": 33188,
      "new_path": "src/gn/command_format_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ea617dc90b98a70118d712a047634efdc7c31d87",
      "new_mode": 33188,
      "new_path": "src/gn/format_test_data/076.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b682482b48220f5b58edff4287c31ca479dc2101",
      "new_mode": 33188,
      "new_path": "src/gn/format_test_data/076.golden"
    },
    {
      "type": "modify",
      "old_id": "67c21d55a9ebc4fa68b3c9c402ed2a2f5cd2b4b5",
      "old_mode": 33188,
      "old_path": "src/gn/tokenizer.cc",
      "new_id": "eec234999111d3f8ef44e66cb430408025211b9d",
      "new_mode": 33188,
      "new_path": "src/gn/tokenizer.cc"
    },
    {
      "type": "modify",
      "old_id": "a2153cabc1c68f00b64776b024e1ef7ff983940a",
      "old_mode": 33188,
      "old_path": "src/gn/tokenizer.h",
      "new_id": "fb74d2a88d7fd981c69690c451d1c6adc0a739ad",
      "new_mode": 33188,
      "new_path": "src/gn/tokenizer.h"
    },
    {
      "type": "modify",
      "old_id": "b7423a8c6e99b45400fc6a0993ad8a99610a1b1a",
      "old_mode": 33188,
      "old_path": "src/gn/tokenizer_unittest.cc",
      "new_id": "d740d866986fd3fbfbf5265a4e62df840dfa4eb2",
      "new_mode": 33188,
      "new_path": "src/gn/tokenizer_unittest.cc"
    }
  ]
}
