[PATCH v3 0/4] pre-merge-commit hook
- From
Josh Steadmon <steadmon@google.com>
- Date
- Aug 1, 2019, 22:20 UTC
- Message-ID
- <cover.1564695892.git.steadmon@google.com>
- In-Reply-To
- <cover.1563490164.git.steadmon@google.com>
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@grubix.eu>. 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@grubix.eu>
@@ 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