Re: [PATCH v2] rebase -i: respect core.commentchar
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 12, 2013, 18:00 UTC
- Message-ID
- <7vvc9xh0p1.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7v4nhhigp5.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 17 quoted lines
>> cat >comment-lines.sh <<EOF && >> #!$SHELL_PATH >> -sed -e "2,\$ s/^/\\\\\\/" "\$1" >"\$1".tmp >> +sed -e "2,\$ s/^/\\\\\\\\/" "\$1" >"\$1".tmp >> mv "\$1".tmp "\$1" >> EOF >> chmod a+x comment-lines.sh && > > Yeek. If you used write_script with here-text that does not > interpolate, > > write_script remove-all-but-the-first.sh <<\EOF > sed -e '2,$s/^/\\/' <"$1" >"$1.tmp" && > mv "$1.tmp" "$1" > EOF > > the above would be much more readable.
As this is already inside a pair of '', we cannot use single quote around sed expression without doing the ugly '\''.
So it needs to be more like this, and I think it still is more readable.
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index cbe36bf..8b3e2cd 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -945,13 +945,11 @@ test_expect_success 'rebase -i respects core.commentchar' ' git checkout E^0 && git config core.commentchar "\\" && test_when_finished "git config --unset core.commentchar" && - cat >comment-lines.sh <<EOF && -#!$SHELL_PATH -sed -e "2,\$ s/^/\\\\\\/" "\$1" >"\$1".tmp -mv "\$1".tmp "\$1" -EOF - chmod a+x comment-lines.sh && - test_set_editor "$(pwd)/comment-lines.sh" && + write_script remove-all-but-first.sh <<-\EOF && + sed -e "2,\$s/^/\\\\/" "$1" >"$1.tmp" && + mv "$1.tmp" "$1" + EOF + test_set_editor "$(pwd)/remove-all-but-first.sh" && git rebase -i B && test B = $(git cat-file commit HEAD^ | sed -ne \$p) '