git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 3/4] merge: --no-verify to bypass pre-merge hook

From
Josh Steadmon <steadmon@google.com>
Date
Jul 18, 2019, 22:57 UTC
Message-ID
<2440ad35e420db868596435dea3d634e37dbe671.1563490164.git.steadmon@google.com>
In-Reply-To
<cover.1563490164.git.steadmon@google.com>
From: Michael J Gruber <git@grubix.eu>

Analogous to commit, introduce a '--no-verify' option which bypasses the pre-merge hook. The shorthand '-n' is taken by the (non-existing) '--no-stat' already.

[js: cleaned up trailing whitespace, moved some documentation changes
 from this commit to 2/4.]
Signed-off-by: Michael J Gruber <git@grubix.eu>
Signed-off-by: Josh Steadmon <steadmon@google.com>
---
 Documentation/githooks.txt | 2 +-
 builtin/merge.c            | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index dcc6606d44..6a93478dcf 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -108,7 +108,7 @@ pre-merge
 
 This hook is invoked by 'git merge' when doing an automatic merge
 commit; it is equivalent to 'pre-commit' for a non-automatic commit
-for a merge.
+for a merge, and can be bypassed with the `--no-verify` option.
 
 prepare-commit-msg
 ~~~~~~~~~~~~~~~~~~
diff --git a/builtin/merge.c b/builtin/merge.c
index 5bbef203f3..5ed3472c84 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -287,7 +287,7 @@ static struct option builtin_merge_options[] = {
 	  N_("GPG sign commit"), PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
 	OPT_BOOL(0, "overwrite-ignore", &overwrite_ignore, N_("update ignored files (default)")),
 	OPT_BOOL(0, "signoff", &signoff, N_("add Signed-off-by:")),
-	OPT_BOOL(0, "no-verify", &no_verify, N_("bypass commit-msg hook")),
+	OPT_BOOL(0, "no-verify", &no_verify, N_("bypass pre-merge and commit-msg hooks")),
 	OPT_END()
 };
 
@@ -818,7 +818,7 @@ static void prepare_to_commit(struct commit_list *remoteheads)
 	struct strbuf msg = STRBUF_INIT;
 	const char *index_file = get_index_file();
 
-	if (run_commit_hook(0 < option_edit, index_file, "pre-merge", NULL))
+	if (!no_verify && run_commit_hook(0 < option_edit, index_file, "pre-merge", NULL))
 		abort_commit(remoteheads, NULL);
 	/*
 	 * Re-read the index as pre-merge hook could have updated it,
-- 
2.22.0.657.g960e92d24f-goog
Previous: Josh SteadmonNext: Martin Ågren
Message 20 of 59 in “pre-merge hook”
  1. 0/4 pre-merge hookMichael J Gruber, Sep 22, 2017
  2. 2/4 merge: do no-verify like commitMichael J Gruber, Sep 22, 2017
  3. Stefan BellerSep 22, 2017
  4. 1/4 git-merge: Honor pre-merge hookMichael J Gruber, Sep 22, 2017
  5. Stefan BellerSep 22, 2017
  6. Martin ÅgrenSep 23, 2017
  7. 3/4 merge: --no-verify to bypass pre-merge hookMichael J Gruber, Sep 22, 2017
  8. Junio C HamanoSep 23, 2017
  9. Michael J GruberSep 25, 2017
  10. 4/4 t7503: add tests for pre-merge-hookMichael J Gruber, Sep 22, 2017
  11. Stefan BellerSep 22, 2017
  12. Junio C HamanoOct 2, 2017
  13. Stefan BellerOct 2, 2017
  14. Junio C HamanoOct 17, 2017
  15. 0/4 pre-merge hookJosh Steadmon, Jul 18, 2019
  16. 0/4 pre-merge hookJosh Steadmon, Jul 18, 2019
  17. 1/4 git-merge: Honor pre-merge hookJosh Steadmon, Jul 18, 2019
  18. Martin ÅgrenJul 29, 2019
  19. 2/4 merge: do no-verify like commitJosh Steadmon, Jul 18, 2019
  20. 3/4 merge: --no-verify to bypass pre-merge hookJosh Steadmon, Jul 18, 2019
  21. Martin ÅgrenJul 29, 2019
  22. Josh SteadmonJul 29, 2019
  23. 4/4 t7503: add tests for pre-merge-hookJosh Steadmon, Jul 18, 2019
  24. Martin ÅgrenJul 29, 2019
  25. Josh SteadmonJul 29, 2019
  26. Martin ÅgrenJul 30, 2019
  27. Josh SteadmonJul 31, 2019
  28. Martin ÅgrenJul 29, 2019
  29. Josh SteadmonJul 29, 2019
  30. Martin ÅgrenJul 29, 2019
  31. Josh SteadmonJul 29, 2019
  32. 0/4 pre-merge-commit hookJosh Steadmon, Aug 1, 2019
  33. 1/4 t7503: verify proper hook executionJosh Steadmon, Aug 1, 2019
  34. Martin ÅgrenAug 2, 2019
  35. 2/4 merge: do no-verify like commitJosh Steadmon, Aug 1, 2019
  36. 3/4 git-merge: honor pre-merge-commit hookJosh Steadmon, Aug 1, 2019
  37. Martin ÅgrenAug 2, 2019
  38. Josh SteadmonAug 2, 2019
  39. 4/4 merge: --no-verify to bypass pre-merge-commit hookJosh Steadmon, Aug 1, 2019
  40. Martin ÅgrenAug 2, 2019
  41. 1/5 t7503: use "&&" in "test_when_finished" rather than ";"Martin Ågren, Aug 2, 2019
  42. 2/5 t7503: avoid touch when mtime doesn't matterMartin Ågren, Aug 2, 2019
  43. 5/5 t7503: test failing merge with both hooks availableMartin Ågren, Aug 2, 2019
  44. 4/5 t7503: don't create "actual_hooks" for later appendingMartin Ågren, Aug 2, 2019
  45. 3/5 t7503: simplify file-jugglingMartin Ågren, Aug 2, 2019
  46. Josh SteadmonAug 2, 2019
  47. 0/4 pre-merge-commit hookJosh Steadmon, Aug 5, 2019
  48. 1/4 t7503: verify proper hook executionJosh Steadmon, Aug 5, 2019
  49. Junio C HamanoAug 6, 2019
  50. Josh SteadmonAug 7, 2019
  51. 2/4 merge: do no-verify like commitJosh Steadmon, Aug 5, 2019
  52. 3/4 git-merge: honor pre-merge-commit hookJosh Steadmon, Aug 5, 2019
  53. 4/4 merge: --no-verify to bypass pre-merge-commit hookJosh Steadmon, Aug 5, 2019
  54. 0/4 pre-merge-commit hookJosh Steadmon, Aug 7, 2019
  55. 1/4 t7503: verify proper hook executionJosh Steadmon, Aug 7, 2019
  56. 2/4 merge: do no-verify like commitJosh Steadmon, Aug 7, 2019
  57. 3/4 git-merge: honor pre-merge-commit hookJosh Steadmon, Aug 7, 2019
  58. 4/4 merge: --no-verify to bypass pre-merge-commit hookJosh Steadmon, Aug 7, 2019
  59. Martin ÅgrenAug 8, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.