Merge branch 'gr/rebase-i-drop-warn'
"git rebase -i" had a minor regression recently, which stopped considering a line that begins with an indented '#' in its insn sheet not a comment, which is now fixed. * gr/rebase-i-drop-warn: rebase-i: loosen over-eager check_bad_cmd check rebase-i: explicitly accept tab as separator in commands
This commit is contained in:
@ -729,8 +729,8 @@ transform_todo_ids () {
|
||||
# that do not have a SHA-1 at the beginning of $rest.
|
||||
;;
|
||||
*)
|
||||
sha1=$(git rev-parse --verify --quiet "$@" ${rest%% *}) &&
|
||||
rest="$sha1 ${rest#* }"
|
||||
sha1=$(git rev-parse --verify --quiet "$@" ${rest%%[ ]*}) &&
|
||||
rest="$sha1 ${rest#*[ ]}"
|
||||
;;
|
||||
esac
|
||||
printf '%s\n' "$command${rest:+ }$rest"
|
||||
@ -857,7 +857,8 @@ add_exec_commands () {
|
||||
# Check if the SHA-1 passed as an argument is a
|
||||
# correct one, if not then print $2 in "$todo".badsha
|
||||
# $1: the SHA-1 to test
|
||||
# $2: the line to display if incorrect SHA-1
|
||||
# $2: the line number of the input
|
||||
# $3: the input filename
|
||||
check_commit_sha () {
|
||||
badsha=0
|
||||
if test -z $1
|
||||
@ -873,9 +874,10 @@ check_commit_sha () {
|
||||
|
||||
if test $badsha -ne 0
|
||||
then
|
||||
line="$(sed -n -e "${2}p" "$3")"
|
||||
warn "Warning: the SHA-1 is missing or isn't" \
|
||||
"a commit in the following line:"
|
||||
warn " - $2"
|
||||
warn " - $line"
|
||||
warn
|
||||
fi
|
||||
|
||||
@ -886,37 +888,31 @@ check_commit_sha () {
|
||||
# from the todolist in stdin
|
||||
check_bad_cmd_and_sha () {
|
||||
retval=0
|
||||
git stripspace --strip-comments |
|
||||
(
|
||||
while read -r line
|
||||
do
|
||||
IFS=' '
|
||||
set -- $line
|
||||
command=$1
|
||||
sha1=$2
|
||||
|
||||
case $command in
|
||||
''|noop|x|"exec")
|
||||
# Doesn't expect a SHA-1
|
||||
;;
|
||||
pick|p|drop|d|reword|r|edit|e|squash|s|fixup|f)
|
||||
if ! check_commit_sha $sha1 "$line"
|
||||
then
|
||||
retval=1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
warn "Warning: the command isn't recognized" \
|
||||
"in the following line:"
|
||||
warn " - $line"
|
||||
warn
|
||||
lineno=0
|
||||
while read -r command rest
|
||||
do
|
||||
lineno=$(( $lineno + 1 ))
|
||||
case $command in
|
||||
"$comment_char"*|''|noop|x|exec)
|
||||
# Doesn't expect a SHA-1
|
||||
;;
|
||||
pick|p|drop|d|reword|r|edit|e|squash|s|fixup|f)
|
||||
if ! check_commit_sha "${rest%%[ ]*}" "$lineno" "$1"
|
||||
then
|
||||
retval=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
return $retval
|
||||
)
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
line="$(sed -n -e "${lineno}p" "$1")"
|
||||
warn "Warning: the command isn't recognized" \
|
||||
"in the following line:"
|
||||
warn " - $line"
|
||||
warn
|
||||
retval=1
|
||||
;;
|
||||
esac
|
||||
done <"$1"
|
||||
return $retval
|
||||
}
|
||||
|
||||
# Print the list of the SHA-1 of the commits
|
||||
@ -1010,7 +1006,7 @@ check_todo_list () {
|
||||
;;
|
||||
esac
|
||||
|
||||
if ! check_bad_cmd_and_sha <"$todo"
|
||||
if ! check_bad_cmd_and_sha "$todo"
|
||||
then
|
||||
raise_error=t
|
||||
fi
|
||||
|
Reference in New Issue
Block a user