)]}'
{
  "commit": "2a387b17c5bc5e0872bed352a41a2b312ea86f9b",
  "tree": "28e39bf1dc1bbff4003023509b0222b86b4c6f2c",
  "parents": [
    "dcdb71f1599734ae46870d3eca11e2093bbd7520"
  ],
  "author": {
    "name": "Alex Vandiver",
    "email": "alexmv@dropbox.com",
    "time": "Tue Oct 03 23:27:46 2017 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Oct 04 18:58:53 2017 +0900"
  },
  "message": "fsmonitor: read entirety of watchman output\n\nIn Perl, setting $/ sets the string that is used as the \"record\nseparator,\" which sets the boundary that the `\u003c\u003e` construct reads to.\nSetting `local $/ \u003d 0666;` evaluates the octal, getting 438, and\nstringifies it.  Thus, the later read from `\u003cCHLD_OUT\u003e` stops as soon\nas it encounters the string \"438\" in the watchman output, yielding\ninvalid JSON; repositories containing filenames with SHA1 hashes are\nable to trip this easily.\n\nSet `$/` to undefined, thus slurping all output from watchman.  Also\nclose STDIN which is provided to watchman, to better guarantee that we\ncannot deadlock with watchman while both attempting to read.\n\nSigned-off-by: Alex Vandiver \u003calexmv@dropbox.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cca3d71e9073a655350e2522eb6075c0c46216ea",
      "old_mode": 33261,
      "old_path": "t/t7519/fsmonitor-watchman",
      "new_id": "51330f8b3d73d513856747264342cefac32ba802",
      "new_mode": 33261,
      "new_path": "t/t7519/fsmonitor-watchman"
    },
    {
      "type": "modify",
      "old_id": "c68038ef0045f55bb5675f899d59b94f335d1284",
      "old_mode": 33261,
      "old_path": "templates/hooks--fsmonitor-watchman.sample",
      "new_id": "9eba8a740933dfa77d7155aca2ba1979e9d0fb68",
      "new_mode": 33261,
      "new_path": "templates/hooks--fsmonitor-watchman.sample"
    }
  ]
}
