)]}'
{
  "commit": "b66efad2b1f53755a80699dc39f94e2b15d6af67",
  "tree": "3e42cefd6493973af8c8e6e6aa6059836cb1fc50",
  "parents": [
    "d8513bc5d84f21ea6d327a9cf9a369077eb19c67"
  ],
  "author": {
    "name": "Adrian Ratiu",
    "email": "adrian.ratiu@collabora.com",
    "time": "Wed Mar 25 21:55:01 2026 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Mar 25 14:00:47 2026 -0700"
  },
  "message": "hook: show config scope in git hook list\n\nUsers running \"git hook list\" can see which hooks are configured but\nhave no way to tell at which config scope (local, global, system...)\neach hook was defined.\n\nStore the scope from ctx-\u003ekvi-\u003escope in the single-pass config callback,\nthen carry it through the cache to the hook structs, so we can expose it\nto users via the \"git hook list --show-scope\" flag, which mirrors the\nexisting git config --show-scope convention.\n\nWithout the flag the output is unchanged.\n\nThe scope is printed as a tab-separated prefix (like \"git config --show-scope\"),\nmaking it unambiguously machine-parseable even when the friendly name\ncontains spaces.\n\nExample usage:\n$ git hook list --show-scope pre-commit\nglobal\tlinter\nlocal\tno-leaks\nhook from hookdir\n\nTraditional hooks from the hookdir are unaffected by --show-scope since\nthe config scope concept does not apply to them.\n\nSuggested-by: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Adrian Ratiu \u003cadrian.ratiu@collabora.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "966388660aea4070e8dfc475f67cbaafa88d4d8f",
      "old_mode": 33188,
      "old_path": "Documentation/git-hook.adoc",
      "new_id": "e7d399ae57af54a21fbec2f0a8b3ba14578a0ec6",
      "new_mode": 33188,
      "new_path": "Documentation/git-hook.adoc"
    },
    {
      "type": "modify",
      "old_id": "54b737990b070cab205f8abe6d30aaad468c9b18",
      "old_mode": 33188,
      "old_path": "builtin/hook.c",
      "new_id": "4cc65a0dc5970c0a0a4cb7db7a2a1caa3c8e79e9",
      "new_mode": 33188,
      "new_path": "builtin/hook.c"
    },
    {
      "type": "modify",
      "old_id": "54f99f4989f46bc90b48b942c3c9d01a0b401f2d",
      "old_mode": 33188,
      "old_path": "hook.c",
      "new_id": "74f5a1df35ace378a27060ad96f9912906ef39bc",
      "new_mode": 33188,
      "new_path": "hook.c"
    },
    {
      "type": "modify",
      "old_id": "d2cf59e64941fd4b80f795648f98fd3f8fcd0a6e",
      "old_mode": 33188,
      "old_path": "hook.h",
      "new_id": "a0432e8307e3968bc73145eb589b1f5246332155",
      "new_mode": 33188,
      "new_path": "hook.h"
    },
    {
      "type": "modify",
      "old_id": "7eee84fc3956c2f9d73752b1977a8a841b57b107",
      "old_mode": 33261,
      "old_path": "t/t1800-hook.sh",
      "new_id": "6fc6603da820869ec0fd2edfc87aedfaa3bba704",
      "new_mode": 33261,
      "new_path": "t/t1800-hook.sh"
    }
  ]
}
