Subject: Re: [PATCHv6 3/3] git rebase -i: add static check for commands and SHA-1

From: Junio C Hamano <[email-masked]>
Date: Tue, 23 Jun 2015 12:42:24 -0700

Galan Rémi  <[email-masked]> writes:

>  I used:
>    read -r command sha1 rest <<EOF
>    $line
>    EOF
>  because
>    printf '%s' "$line" | read -r command sha1 rest
>  doesn't work (the 3 variables have no value as a result).
>  There might be a better way to do this, but I don't have it right now.

	while read line
        do
		(
			IFS=' '
                        set x $line
			shift
                        # now $1 is your command, $2 is sha1, $3 is remainder
			...
		)
	done

perhaps?

But more importantly, why do you even need to keep the bad ones in a
separate .badcmd and .badsha files?  Isn't that bloating your changes
unnecessarily, iow, if you issued your warning as you encounter them,
wouldn't the change become cleaner and easier to understand (and as
a side effect it may even become smaller)?  The _only_ thing that
you would get by keeping them in temporary files is that you can do
"one header and bunch of errors", but is it so common to make a bad
edit to the insn sheet that "a sequence of errors, one per line"
becomes more burdensome to the end user?

I would think

	stripspace |
	while read -r command sha1 rest
        do
        	...

and showing the warning as you detect inside that loop would be
sufficient.  Perhaps I am missing subtle details of what you are
doing.