)]}'
{
  "commit": "8766c19eb465e01be5658e6aa7baf2a41f3ce393",
  "tree": "595cf0c23807c28057fe080c80f030cba6ddb8b8",
  "parents": [
    "8f06b88ae597650c4c74d0fc0e18dc9245fa9b59"
  ],
  "author": {
    "name": "Harald Nordgren",
    "email": "haraldnordgren@gmail.com",
    "time": "Mon Jul 20 08:27:03 2026 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Jul 29 10:36:55 2026 -0700"
  },
  "message": "sequencer: share the squash message marker helpers and flags\n\nWhen \"git rebase -i\" squashes commits it builds an editor template with a\n\"This is a combination of N commits.\" banner, a \"This is the 1st/Nth\ncommit message:\" header above each kept message (or a \"will be skipped\"\nheader for a dropped one), and a commented-out subject for any fixup!,\nsquash! or amend! commit. The banner, the headers and the\nsubject-commenting all live in static helpers in sequencer.c wired to the\nrebase state, so no other command can present a squash the same way.\n\nPull the three pieces out into add_squash_combination_header(),\nadd_squash_message_header() (which takes a flag for the \"will be skipped\"\nvariant) and squash_subject_comment_len(), and use them from\nupdate_squash_messages() and append_squash_message(). Also move the\ntodo_item_flags enum to the header, so a caller reading the output of\ntodo_list_rearrange_squash() can tell an amend! (TODO_REPLACE_FIXUP_MSG)\nfrom a plain fixup!. A later change reuses all of this to give \"git\nhistory squash --reedit-message\" the same template.\n\nNo change in behavior.\n\nSigned-off-by: Harald Nordgren \u003charaldnordgren@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1355a99a0922681a4443b03df7387974009d1fee",
      "old_mode": 33188,
      "old_path": "sequencer.c",
      "new_id": "3c704fd5ab1346cb19f0d217fb5587208826db8f",
      "new_mode": 33188,
      "new_path": "sequencer.c"
    },
    {
      "type": "modify",
      "old_id": "64a9c7fb1beccd6f91f7e6e4263d37d40f4885c3",
      "old_mode": 33188,
      "old_path": "sequencer.h",
      "new_id": "b01f8970201fc36b116fc76d1223a5bd8b9526b2",
      "new_mode": 33188,
      "new_path": "sequencer.h"
    }
  ]
}
