)]}'
{
  "commit": "30d1038d1bd538bf2f8abfb5f5dccf80327a26c9",
  "tree": "bcac4b82fce1c7ba24cf71bea861e98c110ab41c",
  "parents": [
    "2e770fe47ef9c0b20bc687e37f3eb50f1bf919d0"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Thu Sep 11 23:38:30 2014 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Sep 12 10:45:49 2014 -0700"
  },
  "message": "fsck: return non-zero status on missing ref tips\n\nFsck tries hard to detect missing objects, and will complain\n(and exit non-zero) about any inter-object links that are\nmissing. However, it will not exit non-zero for any missing\nref tips, meaning that a severely broken repository may\nstill pass \"git fsck \u0026\u0026 echo ok\".\n\nThe problem is that we use for_each_ref to iterate over the\nref tips, which hides broken tips. It does at least print an\nerror from the refs.c code, but fsck does not ever see the\nref and cannot note the problem in its exit code. We can solve\nthis by using for_each_rawref and noting the error ourselves.\n\nIn addition to adding tests for this case, we add tests for\nall types of missing-object links (all of which worked, but\nwhich we were not testing).\n\nSigned-off-by: Jeff King \u003cpeff@peff.net\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8abe6440bd44a54d362d1d74cca48f710f8022f4",
      "old_mode": 33188,
      "old_path": "builtin/fsck.c",
      "new_id": "ca3018c6c5b65c1cfd644d0557a39b6cb2a73759",
      "new_mode": 33188,
      "new_path": "builtin/fsck.c"
    },
    {
      "type": "modify",
      "old_id": "0de755cedf52640304bca9dd92363074d03f6ddf",
      "old_mode": 33261,
      "old_path": "t/t1450-fsck.sh",
      "new_id": "b52397afd3352b873c9c7fabb91eb850aaf0db3b",
      "new_mode": 33261,
      "new_path": "t/t1450-fsck.sh"
    }
  ]
}
