On Mon, Aug 5, 2013 at 11:21 AM, René Scharfe <l....@web.de> wrote:
> Sub-test 42 of t8001 and t8002 ("blame -L :literal") fails on NetBSD
> with the following verbose output:
>
>         git annotate  -L:main hello.c
>         Author F (expected 4, attributed 3) bad
>         Author G (expected 1, attributed 1) good
>
> This is not caused by different behaviour of git blame or annotate on
> that platform, but by different test input, in turn caused by a sed
> command that forgets to add a newline on NetBSD.  Here's the diff of the
> commit that adds "goodbye" to hello.c, for Linux:
>
>         @@ -1,4 +1,5 @@
>          int main(int argc, const char *argv[])
>          {
>                 puts("hello");
>         +               puts("goodbye");
>          }
>
> We see that it adds an extra TAB,

Curious. On Mac OS X, there is only a single tab.

> but that's not a problem.  Here's the
> same on NetBSD:
>
>         @@ -1,4 +1,4 @@
>          int main(int argc, const char *argv[])
>          {
>                 puts("hello");
>         -}
>         +               puts("goodbye");}
>
> It also adds an extra TAB, but it is missing the newline character
> after the semicolon.
>
> The following patch gets rid of the extra TAB at the beginning, but
> more importantly adds the missing newline at the end in a (hopefully)
> portable way, mentioned in http://sed.sourceforge.net/sedfaq4.html.

Tested on Mac OS X. Works correctly.

> The diff becomes this, on both Linux and NetBSD:
>
>         @@ -1,4 +1,5 @@
>          int main(int argc, const char *argv[])
>          {
>                 puts("hello");
>         +       puts("goodbye");
>          }
>
> Signed-off-by: Rene Scharfe <l....@web.de>
> ---
> This regression was introduced by 5a9830cb ("t8001/t8002 (blame):
> add blame -L :funcname tests").
>
>  t/annotate-tests.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/t/annotate-tests.sh b/t/annotate-tests.sh
> index 0bfee00..d4e7f47 100644
> --- a/t/annotate-tests.sh
> +++ b/t/annotate-tests.sh
> @@ -245,8 +245,8 @@ test_expect_success 'setup -L :regex' '
>         git commit -m "hello" &&
>
>         mv hello.c hello.orig &&
> -       sed -e "/}/i\\
> -       Qputs(\"goodbye\");" <hello.orig | tr Q "\\t" >hello.c &&
> +       sed -e "/}/ {x; s/$/Qputs(\"goodbye\");/; G;}" <hello.orig |
> +       tr Q "\\t" >hello.c &&

Thanks.

Acked-by: Eric Sunshine <sunsh...@sunshineco.com>

>         GIT_AUTHOR_NAME="G" GIT_AUTHOR_EMAIL="g...@test.git" \
>         git commit -a -m "goodbye" &&
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to