mirror of
https://github.com/git/git.git
synced 2026-04-11 01:10:11 +02:00
merge: --no-verify to bypass pre-merge-commit hook
Analogous to commit, introduce a '--no-verify' option which bypasses the
pre-merge-commit hook. The shorthand '-n' is taken by '--no-stat'
already.
[js: * reworded commit message to reflect current state of --no-stat flag
and new hook name
* fixed flag documentation to reflect new hook name
* cleaned up trailing whitespace
* squashed test changes from the original series' patch 4/4
* modified tests to follow pattern from this series' patch 1/4
* added a test case for --no-verify with non-executable hook
* when testing that the merge hook did not run, make sure we
actually have a merge to perform (by resetting the "side" branch
to its original state).
]
Improved-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Michael J Gruber <git@grubix.eu>
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
6098817fd7
commit
bc40ce4de6
@@ -84,6 +84,15 @@ test_expect_success '--no-verify with no hook' '
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success '--no-verify with no hook (merge)' '
|
||||
test_when_finished "rm -f actual_hooks" &&
|
||||
git branch -f side side-orig &&
|
||||
git checkout side &&
|
||||
git merge --no-verify -m "merge master" master &&
|
||||
git checkout master &&
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success 'with succeeding hook' '
|
||||
test_when_finished "rm -f \"$PRECOMMIT\" expected_hooks actual_hooks" &&
|
||||
cp "$HOOKDIR/success.sample" "$PRECOMMIT" &&
|
||||
@@ -131,6 +140,16 @@ test_expect_success '--no-verify with succeeding hook' '
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success '--no-verify with succeeding hook (merge)' '
|
||||
test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
|
||||
cp "$HOOKDIR/success.sample" "$PREMERGE" &&
|
||||
git branch -f side side-orig &&
|
||||
git checkout side &&
|
||||
git merge --no-verify -m "merge master" master &&
|
||||
git checkout master &&
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success 'with failing hook' '
|
||||
test_when_finished "rm -f \"$PRECOMMIT\" expected_hooks actual_hooks" &&
|
||||
cp "$HOOKDIR/fail.sample" "$PRECOMMIT" &&
|
||||
@@ -160,6 +179,16 @@ test_expect_success 'with failing hook (merge)' '
|
||||
test_cmp expected_hooks actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success '--no-verify with failing hook (merge)' '
|
||||
test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
|
||||
cp "$HOOKDIR/fail.sample" "$PREMERGE" &&
|
||||
git branch -f side side-orig &&
|
||||
git checkout side &&
|
||||
git merge --no-verify -m "merge master" master &&
|
||||
git checkout master &&
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success POSIXPERM 'with non-executable hook' '
|
||||
test_when_finished "rm -f \"$PRECOMMIT\" actual_hooks" &&
|
||||
cp "$HOOKDIR/non-exec.sample" "$PRECOMMIT" &&
|
||||
@@ -188,6 +217,16 @@ test_expect_success POSIXPERM 'with non-executable hook (merge)' '
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success POSIXPERM '--no-verify with non-executable hook (merge)' '
|
||||
test_when_finished "rm -f \"$PREMERGE\" actual_hooks" &&
|
||||
cp "$HOOKDIR/non-exec.sample" "$PREMERGE" &&
|
||||
git branch -f side side-orig &&
|
||||
git checkout side &&
|
||||
git merge --no-verify -m "merge master" master &&
|
||||
git checkout master &&
|
||||
test_path_is_missing actual_hooks
|
||||
'
|
||||
|
||||
test_expect_success 'with hook requiring GIT_PREFIX' '
|
||||
test_when_finished "rm -rf \"$PRECOMMIT\" expected_hooks actual_hooks success" &&
|
||||
cp "$HOOKDIR/require-prefix.sample" "$PRECOMMIT" &&
|
||||
|
||||
Reference in New Issue
Block a user