Subject: Re: [PATCH 12/13] Makefile: teach scripts to include make variables

From: Thomas Rast <[email-masked]>
Date: Sat, 08 Feb 2014 22:47:16 +0100

Jeff King <[email-masked]> writes:

> The current scheme for getting build-time variables into a
> shell script is to munge the script with sed, and stick the
> munged variable into a special sentinel file so that "make"
> knows about the dependency.
>
> Instead, we can combine both functions by generating a shell
> snippet with our value, and then "building" shell scripts by
> concatenating their snippets. "make" then handles the
> dependency automatically, and it's easy to generate tighter
> dependencies.
>
> We demonstrate here by moving the "DIFF" substitution into
> its own snippet, which lets us rebuild only the single
> affected file when it changes.

I can't look right now *why* this happens, but this breaks
./t2300-cd-to-toplevel.sh --valgrind with messages like

  expecting success: 
                  (
                          cd 'repo' &&
                          . "$(git --exec-path)"/git-sh-setup &&
                          cd_to_toplevel &&
                          [ "$(pwd -P)" = "$TOPLEVEL" ]
                  )

  ./test-lib.sh: line 414: /home/thomas/g/t/valgrind/bin/git-sh-setup: No such file or directory
  not ok 1 - at physical root
  #
  #                       (
  #                               cd 'repo' &&
  #                               . "$(git --exec-path)"/git-sh-setup &&
  #                               cd_to_toplevel &&
  #                               [ "$(pwd -P)" = "$TOPLEVEL" ]
  #                       )
  #

I don't know why it only affects this test, or why it doesn't break when
within 'git bisect run' -- probably there's something funky going on in
the environment, quite possibly in my own configs.

-- 
Thomas Rast
[email-masked]