* git rebase -i error message interprets \t in commit message
@ 2013-08-06 15:44 David Kastrup
2013-08-06 16:01 ` Ramkumar Ramachandra
2013-08-06 16:05 ` Matthieu Moy
0 siblings, 2 replies; 14+ messages in thread
From: David Kastrup @ 2013-08-06 15:44 UTC (permalink / raw)
To: git
Hi,
I just got the following error message:
dak@lola:/usr/local/tmp/lilypond$ git rebase -i
Waiting for Emacs...
error: could not apply 16de9d2... Make tempo range \tempo 20~30 be input as \tempo 20-30 instead
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Could not apply 16de9d2... Make tempo range empo 20~30 be input as empo 20-30 instead
dak@lola:/usr/local/tmp/lilypond$ git --version
git version 1.8.1.2
As you can see, the first message starting with "error: could not apply"
outputs a reasonable rendition of the commit summary line. However, the
final "Could not apply" message (starting with a capital C) converts
instances of \t to a tab.
This is on Ubuntu 13.04 with
lrwxrwxrwx 1 root root 4 Aug 15 2012 /bin/sh -> dash
--
David Kastrup
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 15:44 git rebase -i error message interprets \t in commit message David Kastrup
@ 2013-08-06 16:01 ` Ramkumar Ramachandra
2013-08-06 17:47 ` Junio C Hamano
2013-08-06 16:05 ` Matthieu Moy
1 sibling, 1 reply; 14+ messages in thread
From: Ramkumar Ramachandra @ 2013-08-06 16:01 UTC (permalink / raw)
To: David Kastrup; +Cc: git
David Kastrup wrote:
> As you can see, the first message starting with "error: could not apply"
> outputs a reasonable rendition of the commit summary line. However, the
> final "Could not apply" message (starting with a capital C) converts
> instances of \t to a tab.
To get you started:
$ git grep "could not apply"
sequencer.c=475=static int do_pick_commit(struct commit *commit,
sequencer.c:628: : _("could not apply %s... %s"),
$ git grep "Could not apply"
git-rebase--interactive.sh=431=die_failed_squash() {
git-rebase--interactive.sh:436: warn "Could not apply $1... $2"
git-rebase--interactive.sh=460=do_pick () {
git-rebase--interactive.sh:476: die_with_patch $1 "Could not apply $1... $2"
git-rebase--interactive.sh:479: die_with_patch $1 "Could not apply $1... $2"
So, it's the shell script. Now, read about shell escaping [1] and
submit a patch.
Thanks.
[1]: http://tldp.org/LDP/abs/html/escapingsection.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 15:44 git rebase -i error message interprets \t in commit message David Kastrup
2013-08-06 16:01 ` Ramkumar Ramachandra
@ 2013-08-06 16:05 ` Matthieu Moy
2013-08-06 17:07 ` David Kastrup
2013-08-06 17:52 ` Junio C Hamano
1 sibling, 2 replies; 14+ messages in thread
From: Matthieu Moy @ 2013-08-06 16:05 UTC (permalink / raw)
To: David Kastrup; +Cc: git
David Kastrup <dak@gnu.org> writes:
> Could not apply 16de9d2... Make tempo range empo 20~30 be input as empo 20-30 instead
Indeed. The source of the problem is that our "die" shell function
interprets \t (because it uses "echo").
A simple fix would be this:
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 7a964ad..97258d5 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -53,7 +53,7 @@ die () {
die_with_status () {
status=$1
shift
- echo >&2 "$*"
+ printf >&2 "%s\n" "$*"
exit "$status"
}
It does not sound crazy as the shell function "say" right below uses the
same printf "%s\n" "$*", but I'm wondering whether this could have other
bad implications (e.g. if there are escape sequences in the commit
message, aren't we going to screw up the terminal?).
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 16:05 ` Matthieu Moy
@ 2013-08-06 17:07 ` David Kastrup
2013-08-06 17:19 ` Matthieu Moy
2013-08-06 17:52 ` Junio C Hamano
1 sibling, 1 reply; 14+ messages in thread
From: David Kastrup @ 2013-08-06 17:07 UTC (permalink / raw)
To: Matthieu Moy; +Cc: git
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
> David Kastrup <dak@gnu.org> writes:
>
>> Could not apply 16de9d2... Make tempo range empo 20~30 be input as
>> empo 20-30 instead
>
> Indeed. The source of the problem is that our "die" shell function
> interprets \t (because it uses "echo").
>
> A simple fix would be this:
>
> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
> index 7a964ad..97258d5 100644
> --- a/git-sh-setup.sh
> +++ b/git-sh-setup.sh
> @@ -53,7 +53,7 @@ die () {
> die_with_status () {
> status=$1
> shift
> - echo >&2 "$*"
> + printf >&2 "%s\n" "$*"
> exit "$status"
> }
>
> It does not sound crazy as the shell function "say" right below uses the
> same printf "%s\n" "$*",
Sounds reasonable, though I don't know off-hand (not having the source
here) whether using "say" inside of die_with_status (and thus not having
two different places to maintain) might not be feasible instead. It's
not like die_with_status is going to be called often enough to become a
performance hog.
> but I'm wondering whether this could have other bad implications
> (e.g. if there are escape sequences in the commit message, aren't we
> going to screw up the terminal?).
One person's escape sequences are another's multibyte characters. Less
cheesy, it would seem that the above change is a strict improvement and
requires little thought to implement.
Not interpreting escape sequences is orthogonal from output
sanitization.
--
David Kastrup
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 17:07 ` David Kastrup
@ 2013-08-06 17:19 ` Matthieu Moy
2013-08-06 19:23 ` David Kastrup
0 siblings, 1 reply; 14+ messages in thread
From: Matthieu Moy @ 2013-08-06 17:19 UTC (permalink / raw)
To: David Kastrup; +Cc: git
David Kastrup <dak@gnu.org> writes:
>> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
>> index 7a964ad..97258d5 100644
>> --- a/git-sh-setup.sh
>> +++ b/git-sh-setup.sh
>> @@ -53,7 +53,7 @@ die () {
>> die_with_status () {
>> status=$1
>> shift
>> - echo >&2 "$*"
>> + printf >&2 "%s\n" "$*"
>> exit "$status"
>> }
>>
>> It does not sound crazy as the shell function "say" right below uses the
>> same printf "%s\n" "$*",
>
> Sounds reasonable, though I don't know off-hand (not having the source
> here) whether using "say" inside of die_with_status
The definition of say is:
say () {
if test -z "$GIT_QUIET"
then
printf '%s\n' "$*"
fi
}
I don't think we want to disable die's output even when the caller
requested to be quiet. Currently, my patch is:
>From 7962ac8d8f2cbc556f669fd97487f9d70edc4ea1 Mon Sep 17 00:00:00 2001
From: Matthieu Moy <Matthieu.Moy@imag.fr>
Date: Tue, 6 Aug 2013 19:13:03 +0200
Subject: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
At least GNU echo interprets backslashes in its arguments.
This triggered at least one bug: the error message of "rebase -i" was
turning \t in commit messages into actual tabulations. There may be
others.
Using "printf '%s\n'" instead avoids this bad behavior, and is the form
used by the "say" function.
Noticed-by: David Kastrup <dak@gnu.org>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
git-sh-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 7a964ad..e15be51 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -53,7 +53,7 @@ die () {
die_with_status () {
status=$1
shift
- echo >&2 "$*"
+ printf >&2 '%s\n' "$*"
exit "$status"
}
--
1.8.3.3.797.gb72c616
I'll resend properly for inclusion if no one objects.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 17:19 ` Matthieu Moy
@ 2013-08-06 19:23 ` David Kastrup
2013-08-06 19:35 ` Junio C Hamano
0 siblings, 1 reply; 14+ messages in thread
From: David Kastrup @ 2013-08-06 19:23 UTC (permalink / raw)
To: Matthieu Moy; +Cc: git
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
>>From 7962ac8d8f2cbc556f669fd97487f9d70edc4ea1 Mon Sep 17 00:00:00 2001
> From: Matthieu Moy <Matthieu.Moy@imag.fr>
> Date: Tue, 6 Aug 2013 19:13:03 +0200
> Subject: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
>
> At least GNU echo interprets backslashes in its arguments.
I think that's incorrect in several respects. For one thing, echo is
never called for most Bourne shells since echo is a builtin (might have
been different for UNIX version 7 or so). For another, GNU echo would
behave like Bash:
And GNU Bash does not interpret escapes unless you do echo -e. Escape
sequence interpretation, however, happens for Dash:
dak@lola:/usr/local/tmp/lilypond$ dash -c 'echo "x\tx"'
x x
dak@lola:/usr/local/tmp/lilypond$ bash -c 'echo "x\tx"'
x\tx
dak@lola:/usr/local/tmp/lilypond$ /bin/echo "x\tx"
x\tx
So replace "GNU echo" in your commit message with "Dash's echo builtin"
and you get closer.
--
David Kastrup
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 19:23 ` David Kastrup
@ 2013-08-06 19:35 ` Junio C Hamano
0 siblings, 0 replies; 14+ messages in thread
From: Junio C Hamano @ 2013-08-06 19:35 UTC (permalink / raw)
To: David Kastrup; +Cc: Matthieu Moy, git
David Kastrup <dak@gnu.org> writes:
> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
>
>>>From 7962ac8d8f2cbc556f669fd97487f9d70edc4ea1 Mon Sep 17 00:00:00 2001
>> From: Matthieu Moy <Matthieu.Moy@imag.fr>
>> Date: Tue, 6 Aug 2013 19:13:03 +0200
>> Subject: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
>>
>> At least GNU echo interprets backslashes in its arguments.
>
> I think that's incorrect in several respects. For one thing, echo is
> never called for most Bourne shells since echo is a builtin (might have
> been different for UNIX version 7 or so). For another, GNU echo would
> behave like Bash:
>
> And GNU Bash does not interpret escapes unless you do echo -e. Escape
> sequence interpretation, however, happens for Dash:
>
> dak@lola:/usr/local/tmp/lilypond$ dash -c 'echo "x\tx"'
> x x
> dak@lola:/usr/local/tmp/lilypond$ bash -c 'echo "x\tx"'
> x\tx
> dak@lola:/usr/local/tmp/lilypond$ /bin/echo "x\tx"
> x\tx
>
> So replace "GNU echo" in your commit message with "Dash's echo builtin"
> and you get closer.
I'll queue the attached.
POSIX makes it an implementation defined behaviour when the first
argument is "-n", or any argument contains a backslas (X/Open System
Interfaces wants to treat "-n" as literal and always interpret the
backslash sequence), so it is definitely safer to avoid running
'echo' on any random string.
Thanks.
Author: Matthieu Moy <Matthieu.Moy@imag.fr>
Date: Tue Aug 6 20:26:44 2013 +0200
die_with_status: use "printf '%s\n'", not "echo"
Some implementations of 'echo' (e.g. dash's built-in) interpret
backslash sequences in their arguments.
This triggered at least one bug: the error message of "rebase -i" was
turning \t in commit messages into actual tabulations. There may be
others.
Using "printf '%s\n'" instead avoids this bad behavior, and is the form
used by the "say" function.
Noticed-by: David Kastrup <dak@gnu.org>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 7a964ad..e15be51 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -53,7 +53,7 @@ die () {
die_with_status () {
status=$1
shift
- echo >&2 "$*"
+ printf >&2 '%s\n' "$*"
exit "$status"
}
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 49ccb38..074deb1 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -976,4 +976,17 @@ test_expect_success 'rebase -i with --strategy and -X' '
test $(cat file1) = Z
'
+test_expect_success 'rebase -i error on commits with \ in message' '
+ current_head=$(git rev-parse HEAD)
+ test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
+ test_commit TO-REMOVE will-conflict old-content &&
+ test_commit "\temp" will-conflict new-content dummy &&
+ (
+ EDITOR=true &&
+ export EDITOR &&
+ test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error
+ ) &&
+ grep -v " " error
+'
+
test_done
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: git rebase -i error message interprets \t in commit message
2013-08-06 16:05 ` Matthieu Moy
2013-08-06 17:07 ` David Kastrup
@ 2013-08-06 17:52 ` Junio C Hamano
2013-08-06 18:26 ` [PATCH] die_with_status: use "printf '%s\n'", not "echo" Matthieu Moy
1 sibling, 1 reply; 14+ messages in thread
From: Junio C Hamano @ 2013-08-06 17:52 UTC (permalink / raw)
To: Matthieu Moy; +Cc: David Kastrup, git
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
> David Kastrup <dak@gnu.org> writes:
>
>> Could not apply 16de9d2... Make tempo range empo 20~30 be input as empo 20-30 instead
>
> Indeed. The source of the problem is that our "die" shell function
> interprets \t (because it uses "echo").
>
> A simple fix would be this:
>
> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
> index 7a964ad..97258d5 100644
> --- a/git-sh-setup.sh
> +++ b/git-sh-setup.sh
> @@ -53,7 +53,7 @@ die () {
> die_with_status () {
> status=$1
> shift
> - echo >&2 "$*"
> + printf >&2 "%s\n" "$*"
> exit "$status"
> }
>
> It does not sound crazy as the shell function "say" right below uses the
> same printf "%s\n" "$*", but I'm wondering whether this could have other
> bad implications (e.g. if there are escape sequences in the commit
> message, aren't we going to screw up the terminal?).
I gave a quick look at "git grep -e 'die ' -- \*.sh" output, and I
do not think this change will break things (i.e. no caller expects
the non-portable behaviour of the shell such as "\c" at the end to
omit the trailing newline).
Thanks, care to roll it into a patch with a test or two?
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] die_with_status: use "printf '%s\n'", not "echo"
2013-08-06 17:52 ` Junio C Hamano
@ 2013-08-06 18:26 ` Matthieu Moy
2013-08-07 8:58 ` Thomas Rast
0 siblings, 1 reply; 14+ messages in thread
From: Matthieu Moy @ 2013-08-06 18:26 UTC (permalink / raw)
To: git, gitster; +Cc: Matthieu Moy
At least GNU echo interprets backslashes in its arguments.
This triggered at least one bug: the error message of "rebase -i" was
turning \t in commit messages into actual tabulations. There may be
others.
Using "printf '%s\n'" instead avoids this bad behavior, and is the form
used by the "say" function.
Noticed-by: David Kastrup <dak@gnu.org>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
git-sh-setup.sh | 2 +-
t/t3404-rebase-interactive.sh | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 7a964ad..e15be51 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -53,7 +53,7 @@ die () {
die_with_status () {
status=$1
shift
- echo >&2 "$*"
+ printf >&2 '%s\n' "$*"
exit "$status"
}
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 49ccb38..074deb1 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -976,4 +976,17 @@ test_expect_success 'rebase -i with --strategy and -X' '
test $(cat file1) = Z
'
+test_expect_success 'rebase -i error on commits with \ in message' '
+ current_head=$(git rev-parse HEAD)
+ test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
+ test_commit TO-REMOVE will-conflict old-content &&
+ test_commit "\temp" will-conflict new-content dummy &&
+ (
+ EDITOR=true &&
+ export EDITOR &&
+ test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error
+ ) &&
+ grep -v " " error
+'
+
test_done
--
1.8.3.3.797.gb72c616
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
2013-08-06 18:26 ` [PATCH] die_with_status: use "printf '%s\n'", not "echo" Matthieu Moy
@ 2013-08-07 8:58 ` Thomas Rast
2013-08-07 9:23 ` Matthieu Moy
0 siblings, 1 reply; 14+ messages in thread
From: Thomas Rast @ 2013-08-07 8:58 UTC (permalink / raw)
To: Matthieu Moy; +Cc: git, gitster
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
> At least GNU echo interprets backslashes in its arguments.
>
> This triggered at least one bug: the error message of "rebase -i" was
> turning \t in commit messages into actual tabulations. There may be
> others.
>
> Using "printf '%s\n'" instead avoids this bad behavior, and is the form
> used by the "say" function.
>
> Noticed-by: David Kastrup <dak@gnu.org>
> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
[...]
> +test_expect_success 'rebase -i error on commits with \ in message' '
> + current_head=$(git rev-parse HEAD)
> + test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
> + test_commit TO-REMOVE will-conflict old-content &&
> + test_commit "\temp" will-conflict new-content dummy &&
> + (
> + EDITOR=true &&
> + export EDITOR &&
> + test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error
> + ) &&
> + grep -v " " error
Umm, doesn't that only test that _some_ line in the error does not
contain a tab?
Whereas you need to test that _no_ line contains <TAB>emp, or some
such. Perhaps as
! grep -v " emp" error
> +'
> +
> test_done
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
2013-08-07 8:58 ` Thomas Rast
@ 2013-08-07 9:23 ` Matthieu Moy
2013-08-07 9:26 ` [PATCH v2] " Matthieu Moy
2013-08-07 9:48 ` [PATCH] " Thomas Rast
0 siblings, 2 replies; 14+ messages in thread
From: Matthieu Moy @ 2013-08-07 9:23 UTC (permalink / raw)
To: Thomas Rast; +Cc: git, gitster
Thomas Rast <trast@inf.ethz.ch> writes:
>> + grep -v " " error
>
> Umm, doesn't that only test that _some_ line in the error does not
> contain a tab?
Indeed. It does work as the error message is just a one-liner, but let's
be robust anyway.
> Whereas you need to test that _no_ line contains <TAB>emp, or some
> such. Perhaps as
>
> ! grep -v " emp" error
Err, then the -v should be remove. Also, I'll use test_expect_code 1
instead of ! to catch other grep failures, just in case.
Thanks, new patch comming.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2] die_with_status: use "printf '%s\n'", not "echo"
2013-08-07 9:23 ` Matthieu Moy
@ 2013-08-07 9:26 ` Matthieu Moy
2013-08-07 9:48 ` [PATCH] " Thomas Rast
1 sibling, 0 replies; 14+ messages in thread
From: Matthieu Moy @ 2013-08-07 9:26 UTC (permalink / raw)
To: git, gitster; +Cc: Thomas Rast, Matthieu Moy
Some implementations of 'echo' (e.g. dash's built-in) interpret
backslash sequences in their arguments.
This triggered at least one bug: the error message of "rebase -i" was
turning \t in commit messages into actual tabulations. There may be
others.
Using "printf '%s\n'" instead avoids this bad behavior, and is the form
used by the "say" function.
Noticed-by: David Kastrup <dak@gnu.org>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
Changed the "grep" function to be more accurate. The test still
catches the old failure and pass after the fix.
git-sh-setup.sh | 2 +-
t/t3404-rebase-interactive.sh | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 7a964ad..e15be51 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -53,7 +53,7 @@ die () {
die_with_status () {
status=$1
shift
- echo >&2 "$*"
+ printf >&2 '%s\n' "$*"
exit "$status"
}
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 49ccb38..4dbeddb 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -976,4 +976,17 @@ test_expect_success 'rebase -i with --strategy and -X' '
test $(cat file1) = Z
'
+test_expect_success 'rebase -i error on commits with \ in message' '
+ current_head=$(git rev-parse HEAD)
+ test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
+ test_commit TO-REMOVE will-conflict old-content &&
+ test_commit "\temp" will-conflict new-content dummy &&
+ (
+ EDITOR=true &&
+ export EDITOR &&
+ test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error
+ ) &&
+ test_expect_code 1 grep " emp" error
+'
+
test_done
--
1.8.3.3.797.gb72c616
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
2013-08-07 9:23 ` Matthieu Moy
2013-08-07 9:26 ` [PATCH v2] " Matthieu Moy
@ 2013-08-07 9:48 ` Thomas Rast
1 sibling, 0 replies; 14+ messages in thread
From: Thomas Rast @ 2013-08-07 9:48 UTC (permalink / raw)
To: Matthieu Moy; +Cc: git, gitster
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
> Thomas Rast <trast@inf.ethz.ch> writes:
>
>>> + grep -v " " error
>>
>> Umm, doesn't that only test that _some_ line in the error does not
>> contain a tab?
>
> Indeed. It does work as the error message is just a one-liner, but let's
> be robust anyway.
Err, right. I actually applied the patch and verified that the test
"erroneously" passed without the fix, but that's simply because I use
bash instead of dash. The error message indeed is only one line, the
rest of the rebase output goes to stdout.
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-08-07 9:48 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-06 15:44 git rebase -i error message interprets \t in commit message David Kastrup
2013-08-06 16:01 ` Ramkumar Ramachandra
2013-08-06 17:47 ` Junio C Hamano
2013-08-06 16:05 ` Matthieu Moy
2013-08-06 17:07 ` David Kastrup
2013-08-06 17:19 ` Matthieu Moy
2013-08-06 19:23 ` David Kastrup
2013-08-06 19:35 ` Junio C Hamano
2013-08-06 17:52 ` Junio C Hamano
2013-08-06 18:26 ` [PATCH] die_with_status: use "printf '%s\n'", not "echo" Matthieu Moy
2013-08-07 8:58 ` Thomas Rast
2013-08-07 9:23 ` Matthieu Moy
2013-08-07 9:26 ` [PATCH v2] " Matthieu Moy
2013-08-07 9:48 ` [PATCH] " Thomas Rast
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).