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

[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
Previous: Josh SteadmonNext: Josh Steadmon
Message 32 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.