)]}'
{
  "commit": "ed0f47a8c431f27e0bd131ea1cf9cabbd580745b",
  "tree": "2ede2745b8611c76ac76b7b9e240a1e092b87f84",
  "parents": [
    "ee837244df2e2e4e9171f508f83f353730db9e53"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Sat Aug 30 13:20:31 2008 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Sat Aug 30 13:23:02 2008 -0700"
  },
  "message": "git-apply: Loosen \"match_beginning\" logic\n\nEven after a handfle attempts, match_beginning logic still has corner\ncases:\n\n    1bf1a85 (apply: treat EOF as proper context., 2006-05-23)\n    65aadb9 (apply: force matching at the beginning., 2006-05-24)\n    4be6096 (apply --unidiff-zero: loosen sanity checks ..., 2006-09-17)\n    ee5a317 (Fix \"git apply\" to correctly enforce \"match ..., 2008-04-06)\n\nThis is a tricky piece of code.\n\nWe still incorrectly enforce \"match_beginning\" for -U0 matches.\nI noticed this while trying out an example sequence from Clemens Buchacher:\n\n    $ echo a \u003evictim\n    $ git add victim\n    $ echo b \u003e\u003evictim\n    $ git diff -U0 \u003epatch\n    $ cat patch\n    diff --git i/victim w/victim\n    index 7898192..422c2b7 100644\n    --- i/victim\n    +++ w/victim\n    @@ -1,0 +2 @@ a\n    +b\n    $ git apply --cached --unidiff-zero \u003cpatch\n    $ git show :victim\n    b\n    a\n\nThe change inserts a new line before the second line, but we insist it to\nbe applied at the beginning.  As the result, the code refuses to apply it\nat the original offset, and we end up adding the line at the beginning.\n\nUpdates to the test script are by Clemens Buchacher.\n\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2216a0bf7cd53adc31346f66a3b9786a1d688bad",
      "old_mode": 33188,
      "old_path": "builtin-apply.c",
      "new_id": "47261e10fb3901f3b99861020762e63856ee2d60",
      "new_mode": 33188,
      "new_path": "builtin-apply.c"
    },
    {
      "type": "modify",
      "old_id": "e7e2913de745cc9f7639103757933f6238fdd564",
      "old_mode": 33261,
      "old_path": "t/t4104-apply-boundary.sh",
      "new_id": "0e3ce3611d9e83ab290ce034f2439961864ce30a",
      "new_mode": 33261,
      "new_path": "t/t4104-apply-boundary.sh"
    }
  ]
}
