)]}'
{
  "commit": "8655908b9eb00a47332d53bf73d9d7fb6cd1d569",
  "tree": "b0f3cd26b2792084e4180d206496a9d395093713",
  "parents": [
    "2c2ba49d55ff26c1082b8137b1ec5eeccb4337d1"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Aug 14 08:09:17 2025 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Aug 14 08:17:21 2025 -0700"
  },
  "message": "abbrev: allow extending beyond 32 chars to disambiguate\n\nWhen you have two or more objects with object names that share more\nthan 32 letters in an SHA-1 repository, find_unique_abbrev() fails\nto show disambiguation.\n\nTo see how many leading letters of a given full object name is\nsufficiently unambiguous, the algorithm starts from a initial\nlength, guessed based on the estimated number of objects in the\nrepository, and see if another object that shares the prefix, and\nkeeps extending the abbreviation.  The loop stops at GIT_MAX_RAWSZ,\nwhich is counted as the number of bytes, since 5b20ace6 (sha1_name:\nunroll len loop in find_unique_abbrev_r(), 2017-10-08); before that\nchange, it extended up to GIT_SHA1_HEXSZ, which meant to stop at the\nend of hexadecimal SHA-1 object name.\n\nBecause the hexadecimal object name passed to the function is\nNUL-terminated, and this fact is used to correctly terminate the\nloop that scans for the first difference earlier in the function,\nuse it to make sure we do not increment the .cur_len member beyond\nthe end of the string.\n\nNoticed-by: Jon Forrest \u003cnobozo@gmail.com\u003e\nHelped-by: René Scharfe \u003cl.s.r@web.de\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "11aa0e6afc565e94b723c8469d2004afe520c9cc",
      "old_mode": 33188,
      "old_path": "object-name.c",
      "new_id": "4cd1d387784b1142dd7aa8351fbf28f5c97a6ea5",
      "new_mode": 33188,
      "new_path": "object-name.c"
    }
  ]
}
