[PATCH] git-merge: run commit hooks when making merge commits
From: Sam Vilain <hidden>
Date: 2016-06-15 22:43:20
Subsystem:
the rest · Maintainer:
Linus Torvalds
git-merge.sh was not running the commit hooks, so run them in the two places where we go to commit. Signed-off-by: Sam Vilain <redacted> --- Not sure if it should call these or some specialist hooks, like git-am does. git-merge.sh | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/git-merge.sh b/git-merge.sh
index 981d69d..ef4f51b 100755
--- a/git-merge.sh
+++ b/git-merge.sh@@ -117,6 +117,29 @@ merge_name () { fi } +call_pre_hooks () { + message="$1" + if test -x "$GIT_DIR"/hooks/pre-commit + then + "$GIT_DIR"/hooks/pre-commit || exit 1 + fi + if test -x "$GIT_DIR"/hooks/commit-msg + then + printf '%s\n' "$message" > "$GIT_DIR"/MERGE_MSG + "$GIT_DIR"/hooks/commit-msg "$GIT_DIR"/MERGE_MSG || exit 1 + cat "$GIT_DIR"/MERGE_MSG + else + echo "$message" + fi +} + +call_post_hook () { + if test -x "$GIT_DIR"/hooks/post-commit + then + "$GIT_DIR"/hooks/post-commit + fi +} + case "$#" in 0) usage ;; esac have_message=
@@ -334,11 +357,13 @@ f,*) result_tree=$(git-write-tree) then echo "Wonderful." + merge_msg=$(call_pre_hooks "$merge_msg") result_commit=$( printf '%s\n' "$merge_msg" | git-commit-tree $result_tree -p HEAD -p "$1" ) || exit finish "$result_commit" "In-index merge" + call_post_hook dropsave exit 0 fi
@@ -440,8 +465,10 @@ done if test '' != "$result_tree" then parents=$(git-show-branch --independent "$head" "$@" | sed -e 's/^/-p /') + merge_msg=$(call_pre_hooks "$merge_msg") result_commit=$(printf '%s\n' "$merge_msg" | git-commit-tree $result_tree $parents) || exit finish "$result_commit" "Merge made by $wt_strategy." + call_post_hook dropsave exit 0 fi
--
1.5.2.1.1131.g3b90