rebase -i: recognize short commands without arguments
The sequencer instruction 'b', short for 'break', is rejected: error: invalid line 2: b The reason is that the parser expects all short commands to have an argument. Permit short commands without arguments. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
71f82465b1
commit
3a4a4cab3e
@@ -1954,7 +1954,8 @@ static int parse_insn_line(struct todo_item *item, const char *bol, char *eol)
|
|||||||
if (skip_prefix(bol, todo_command_info[i].str, &bol)) {
|
if (skip_prefix(bol, todo_command_info[i].str, &bol)) {
|
||||||
item->command = i;
|
item->command = i;
|
||||||
break;
|
break;
|
||||||
} else if (bol[1] == ' ' && *bol == todo_command_info[i].c) {
|
} else if ((bol + 1 == eol || bol[1] == ' ') &&
|
||||||
|
*bol == todo_command_info[i].c) {
|
||||||
bol++;
|
bol++;
|
||||||
item->command = i;
|
item->command = i;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ set_fake_editor () {
|
|||||||
case $line in
|
case $line in
|
||||||
squash|fixup|edit|reword|drop)
|
squash|fixup|edit|reword|drop)
|
||||||
action="$line";;
|
action="$line";;
|
||||||
exec*|break)
|
exec*|break|b)
|
||||||
echo "$line" | sed 's/_/ /g' >> "$1";;
|
echo "$line" | sed 's/_/ /g' >> "$1";;
|
||||||
"#")
|
"#")
|
||||||
echo '# comment' >> "$1";;
|
echo '# comment' >> "$1";;
|
||||||
|
|||||||
@@ -243,7 +243,9 @@ unset GIT_SEQUENCE_EDITOR
|
|||||||
|
|
||||||
test_expect_success 'the todo command "break" works' '
|
test_expect_success 'the todo command "break" works' '
|
||||||
rm -f execed &&
|
rm -f execed &&
|
||||||
FAKE_LINES="break exec_>execed" git rebase -i HEAD &&
|
FAKE_LINES="break b exec_>execed" git rebase -i HEAD &&
|
||||||
|
test_path_is_missing execed &&
|
||||||
|
git rebase --continue &&
|
||||||
test_path_is_missing execed &&
|
test_path_is_missing execed &&
|
||||||
git rebase --continue &&
|
git rebase --continue &&
|
||||||
test_path_is_file execed
|
test_path_is_file execed
|
||||||
|
|||||||
Reference in New Issue
Block a user