mirror of
https://github.com/git/git.git
synced 2024-11-25 10:54:00 +08:00
Merge branch 'ns/rebase-noverify'
* ns/rebase-noverify: rebase: Document --no-verify option to bypass pre-rebase hook rebase --no-verify
This commit is contained in:
commit
ce6e5ff435
@ -9,7 +9,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git rebase' [-i | --interactive] [-v | --verbose] [-m | --merge]
|
||||
[-s <strategy> | --strategy=<strategy>]
|
||||
[-s <strategy> | --strategy=<strategy>] [--no-verify]
|
||||
[-C<n>] [ --whitespace=<option>] [-p | --preserve-merges]
|
||||
[--onto <newbase>] <upstream> [<branch>]
|
||||
'git rebase' --continue | --skip | --abort
|
||||
@ -232,6 +232,9 @@ OPTIONS
|
||||
--verbose::
|
||||
Display a diffstat of what changed upstream since the last rebase.
|
||||
|
||||
--no-verify::
|
||||
This option bypasses the pre-rebase hook. See also linkgit:githooks[5].
|
||||
|
||||
-C<n>::
|
||||
Ensure at least <n> lines of surrounding context match before
|
||||
and after each change. When fewer lines of surrounding
|
||||
|
@ -26,6 +26,7 @@ i,interactive always used (no-op)
|
||||
continue continue rebasing process
|
||||
abort abort rebasing process and restore original branch
|
||||
skip skip current patch and continue rebasing process
|
||||
no-verify override pre-rebase hook from stopping the operation
|
||||
"
|
||||
|
||||
. git-sh-setup
|
||||
@ -41,6 +42,7 @@ PRESERVE_MERGES=
|
||||
STRATEGY=
|
||||
ONTO=
|
||||
VERBOSE=
|
||||
OK_TO_SKIP_PRE_REBASE=
|
||||
|
||||
GIT_CHERRY_PICK_HELP=" After resolving the conflicts,
|
||||
mark the corrected paths with 'git add <paths>', and
|
||||
@ -66,7 +68,8 @@ output () {
|
||||
}
|
||||
|
||||
run_pre_rebase_hook () {
|
||||
if test -x "$GIT_DIR/hooks/pre-rebase"
|
||||
if test -z "$OK_TO_SKIP_PRE_REBASE" &&
|
||||
test -x "$GIT_DIR/hooks/pre-rebase"
|
||||
then
|
||||
"$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || {
|
||||
echo >&2 "The pre-rebase hook refused to rebase."
|
||||
@ -421,6 +424,11 @@ get_saved_options () {
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
--no-verify)
|
||||
OK_TO_SKIP_PRE_REBASE=yes
|
||||
;;
|
||||
--verify)
|
||||
;;
|
||||
--continue)
|
||||
is_standalone "$@" || usage
|
||||
get_saved_options
|
||||
|
@ -34,6 +34,7 @@ set_reflog_action rebase
|
||||
require_work_tree
|
||||
cd_to_toplevel
|
||||
|
||||
OK_TO_SKIP_PRE_REBASE=
|
||||
RESOLVEMSG="
|
||||
When you have resolved this problem run \"git rebase --continue\".
|
||||
If you would prefer to skip this patch, instead run \"git rebase --skip\".
|
||||
@ -145,7 +146,8 @@ is_interactive () {
|
||||
}
|
||||
|
||||
run_pre_rebase_hook () {
|
||||
if test -x "$GIT_DIR/hooks/pre-rebase"
|
||||
if test -z "$OK_TO_SKIP_PRE_REBASE" &&
|
||||
test -x "$GIT_DIR/hooks/pre-rebase"
|
||||
then
|
||||
"$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || {
|
||||
echo >&2 "The pre-rebase hook refused to rebase."
|
||||
@ -170,6 +172,9 @@ fi
|
||||
while test $# != 0
|
||||
do
|
||||
case "$1" in
|
||||
--no-verify)
|
||||
OK_TO_SKIP_PRE_REBASE=yes
|
||||
;;
|
||||
--continue)
|
||||
test -d "$dotest" -o -d "$GIT_DIR"/rebase-apply ||
|
||||
die "No rebase in progress?"
|
||||
|
@ -123,4 +123,20 @@ test_expect_success 'pre-rebase hook stops rebase (2)' '
|
||||
test 0 = $(git rev-list HEAD...side | wc -l)
|
||||
'
|
||||
|
||||
test_expect_success 'rebase --no-verify overrides pre-rebase (1)' '
|
||||
git checkout test &&
|
||||
git reset --hard side &&
|
||||
git rebase --no-verify master &&
|
||||
test "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&
|
||||
test "z$(cat git)" = zworld
|
||||
'
|
||||
|
||||
test_expect_success 'rebase --no-verify overrides pre-rebase (2)' '
|
||||
git checkout test &&
|
||||
git reset --hard side &&
|
||||
EDITOR=true git rebase --no-verify -i master &&
|
||||
test "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&
|
||||
test "z$(cat git)" = zworld
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user