Teach rebase -i to honor pre-rebase hook
The original git-rebase honored pre-rebase hook so that public branches can be protected from getting rebased, but rebase --interactive ignored the hook entirely. This fixes it. Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:

committed by
Shawn O. Pearce

parent
00e5d48a9a
commit
d70b4a8f4b
@ -144,6 +144,16 @@ is_interactive () {
|
||||
done && test -n "$1"
|
||||
}
|
||||
|
||||
run_pre_rebase_hook () {
|
||||
if test -x "$GIT_DIR/hooks/pre-rebase"
|
||||
then
|
||||
"$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || {
|
||||
echo >&2 "The pre-rebase hook refused to rebase."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
}
|
||||
|
||||
test -f "$GIT_DIR"/rebase-apply/applying &&
|
||||
die 'It looks like git-am is in progress. Cannot rebase.'
|
||||
|
||||
@ -320,13 +330,7 @@ onto_name=${newbase-"$upstream_name"}
|
||||
onto=$(git rev-parse --verify "${onto_name}^0") || exit
|
||||
|
||||
# If a hook exists, give it a chance to interrupt
|
||||
if test -x "$GIT_DIR/hooks/pre-rebase"
|
||||
then
|
||||
"$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || {
|
||||
echo >&2 "The pre-rebase hook refused to rebase."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
run_pre_rebase_hook ${1+"$@"}
|
||||
|
||||
# If the branch to rebase is given, that is the branch we will rebase
|
||||
# $branch_name -- branch being rebased, or HEAD (already detached)
|
||||
|
Reference in New Issue
Block a user