This series adds a new pre-merge-commit hook, similar in usage to pre-commit. It also improves hook testing in t7503, by verifying that the correct hooks are run or bypassed as expected. The original series was done by Michael J Gruber <git@xxxxxxxxx>. I have addressed the outstanding review comments, and noted my changes in the commit messages in "[js: ...]" blocks. Changes since V2: * Renamed the hook from "pre-merge" to "pre-merge-commit". * Added a new patch (1/4) to improve t7503 by verifying that the expected hooks are (or are not) run. * Squashed test changes (from V2's patch 4/4) into patch 3/4. Modified the tests to follow the example set in patch 1/4. * Reworded commit messages to match with the current state of certain flags, which changed in between V1 and V2 of this series. Josh Steadmon (1): t7503: verify proper hook execution Michael J Gruber (3): merge: do no-verify like commit git-merge: honor pre-merge-commit hook merge: --no-verify to bypass pre-merge-commit hook Documentation/git-merge.txt | 2 +- Documentation/githooks.txt | 7 + Documentation/merge-options.txt | 4 + builtin/merge.c | 18 +- ...3-pre-commit-and-pre-merge-commit-hooks.sh | 237 ++++++++++++++++++ t/t7503-pre-commit-hook.sh | 139 ---------- templates/hooks--pre-merge-commit.sample | 13 + 7 files changed, 277 insertions(+), 143 deletions(-) create mode 100755 t/t7503-pre-commit-and-pre-merge-commit-hooks.sh delete mode 100755 t/t7503-pre-commit-hook.sh create mode 100755 templates/hooks--pre-merge-commit.sample Range-diff against v2: 1: e8b3fd8a5b < -: ---------- git-merge: Honor pre-merge hook -: ---------- > 1: f0476b2b1e t7503: verify proper hook execution 2: 36406a85be ! 2: 89ddbf410f merge: do no-verify like commit @@ Commit message "git merge --help" to be more clear that the hook return code is respected by default. - [js: reworded commit message, and moved documentation changes from patch - 3/4 to this commit.] + [js: * reworded commit message + * squashed documentation changes from original series' patch 3/4 + ] Signed-off-by: Michael J Gruber <git@xxxxxxxxx> @@ Documentation/git-merge.txt: SYNOPSIS + [--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]] [--[no-]allow-unrelated-histories] [--[no-]rerere-autoupdate] [-m <msg>] [-F <file>] [<commit>...] - 'git merge' --abort + 'git merge' (--continue | --abort | --quit) ## Documentation/merge-options.txt ## @@ Documentation/merge-options.txt: option can be used to override --squash. 3: 2440ad35e4 < -: ---------- merge: --no-verify to bypass pre-merge hook 4: 69dc3696e7 < -: ---------- t7503: add tests for pre-merge-hook -: ---------- > 3: 61b989ff16 git-merge: honor pre-merge-commit hook -: ---------- > 4: 45828c56fc merge: --no-verify to bypass pre-merge-commit hook -- 2.22.0.770.g0f2c4a37fd-goog