rebase-i: loosen over-eager check_bad_cmd check
commit1db168ee971a6a61ce72480e1db9ddfd3629bfcf
authorMatthieu Moy <Matthieu.Moy@imag.fr>
Thu, 1 Oct 2015 08:18:42 +0000 (1 10:18 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 6 Oct 2015 05:39:56 +0000 (5 22:39 -0700)
tree277aea9e0571f98073e7e7aecb22ccd19901b8b2
parent31bff64100d0864741b57cc44e01a19359573e99
rebase-i: loosen over-eager check_bad_cmd check

804098bb (git rebase -i: add static check for commands and SHA-1,
2015-06-29) tried to check all insns before running any in the todo
list, but it did so by implementing its own parser that is a lot
stricter than necessary.  We used to allow lines that are indented
(including comment lines), and we used to allow a whitespace between
the insn and the commit object name to be HT, among other things,
that are flagged as an invalid line by mistake.

Fix this by using the same tokenizer that is used to parse the todo
list file in the new check.

Whether it's a good thing to accept indented comments is
debatable (other commands like "git commit" do not accept them), but we
already accepted them in the past, and some people and scripts rely on
this behavior. Also, a line starting with space followed by a '#' cannot
have any meaning other than being a comment, hence it doesn't harm to
accept them as comments.

Largely based on patch by: Junio C Hamano <gitster@pobox.com>

[jc: updated test with quickfix from Torsten Bögershausen]

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase--interactive.sh
t/t3404-rebase-interactive.sh