)]}'
{
  "commit": "13134cecb08604fc2a4d30b6f9f941f6323e6de2",
  "tree": "09662dd0be0a1befe13e1f63e511704f175400b8",
  "parents": [
    "7a75e549b29cfe7b4f0279625298649a28edc110",
    "61ac8ba0f034b61d7353a799fecae9fe45137a72"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Nov 19 10:55:39 2025 -0800"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Nov 19 10:55:39 2025 -0800"
  },
  "message": "Merge branch \u0027ps/ref-peeled-tags\u0027\n\nSome ref backend storage can hold not just the object name of an\nannotated tag, but the object name of the object the tag points at.\nThe code to handle this information has been streamlined.\n\n* ps/ref-peeled-tags:\n  t7004: do not chdir around in the main process\n  ref-filter: fix stale parsed objects\n  ref-filter: parse objects on demand\n  ref-filter: detect broken tags when dereferencing them\n  refs: don\u0027t store peeled object IDs for invalid tags\n  object: add flag to `peel_object()` to verify object type\n  refs: drop infrastructure to peel via iterators\n  refs: drop `current_ref_iter` hack\n  builtin/show-ref: convert to use `reference_get_peeled_oid()`\n  ref-filter: propagate peeled object ID\n  upload-pack: convert to use `reference_get_peeled_oid()`\n  refs: expose peeled object ID via the iterator\n  refs: refactor reference status flags\n  refs: fully reset `struct ref_iterator::ref` on iteration\n  refs: introduce `.ref` field for the base iterator\n  refs: introduce wrapper struct for `each_ref_fn`\n",
  "tree_diff": []
}
