)]}'
{
  "commit": "2bb3a012f3d756ad7101c359f38285a018f9e517",
  "tree": "915520877b606535aaf7fb21dedb6b8590f8fdf2",
  "parents": [
    "16bd9f20a403117f2e0d9bcda6c6e621d3763e77"
  ],
  "author": {
    "name": "Ruoyu Zhong",
    "email": "zhongruoyu@outlook.com",
    "time": "Wed Oct 22 08:36:13 2025 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Oct 22 11:25:23 2025 -0700"
  },
  "message": "bisect: fix handling of `help` and invalid subcommands\n\nAs documented in git-bisect(1), `git bisect help` should display usage\ninformation. However, since the migration of `git bisect` to a full\nbuiltin command in 73fce29427 (Turn `git bisect` into a full built-in,\n2022-11-10), this behavior was broken. Running `git bisect help` would,\ninstead of showing usage, either fail silently if already in a bisect\nsession, or otherwise trigger an interactive autostart prompt asking \"Do\nyou want me to do it for you [Y/n]?\".\n\nSimilarly, since df63421be9 (bisect--helper: handle states directly,\n2022-11-10), running invalid subcommands like `git bisect foobar` also\nled to the same behavior.\n\nThis occurred because `help` and other unrecognized subcommands were\nbeing unconditionally passed to `bisect_state`, which then called\n`bisect_autostart`, triggering the interactive prompt.\n\nFix this by:\n1. Adding explicit handling for the `help` subcommand to show usage;\n2. Validating that unrecognized commands are actually valid state\n   commands before calling `bisect_state`;\n3. Showing an error with usage for truly invalid commands.\n\nThis ensures that `git bisect help` displays the usage as documented,\nand invalid commands fail cleanly without entering interactive mode.\nAlternate terms are still handled correctly through\n`check_and_set_terms`.\n\nSigned-off-by: Ruoyu Zhong \u003czhongruoyu@outlook.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b8d870cd1ef0845ae28aa9295a1d6c4db81d984",
      "old_mode": 33188,
      "old_path": "builtin/bisect.c",
      "new_id": "993caf545dbd2c3c84a869e3b63e89c28af40c28",
      "new_mode": 33188,
      "new_path": "builtin/bisect.c"
    }
  ]
}
