git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] t0021, t5615: use $PWD instead of $(pwd) in PATH-like shell variables

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 11, 2016, 18:55 UTC
Message-ID
<xmqqa8d53ky9.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<2b69d098-92ef-77b0-367a-516e9edbe257@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
Show 37 quoted lines
> We have to use $PWD instead of $(pwd) because on Windows the latter
> would add a C: style path to bash's Unix-style $PATH variable, which
> becomes confused by the colon after the drive letter. ($PWD is a
> Unix-style path.)
>
> In the case of GIT_ALTERNATE_OBJECT_DIRECTORIES, bash on Windows
> assembles a Unix-style path list with the colon as separators. It
> converts the value to a Windows-style path list with the semicolon as
> path separator when it forwards the variable to git.exe. The same
> confusion happens when bash's original value is contaminated with
> Windows style paths.
>
> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
> ---
> Am 11.11.2016 um 18:11 schrieb Johannes Sixt:
>> Am 11.11.2016 um 18:06 schrieb Junio C Hamano:
>>> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>>> ...
>
> When the MSYS program such as bash invokes a non-MSYS program, it
> translates the Unix-style paths in arguments and environment variables
> to Windows stlye. We only have to ensure that we inject only Unix-style
> paths in these places so as not to confuse the conversion algorithm.
> Most of the time, we do not have to worry.
>
> On the other hand, when we write a path to a file that git.exe consumes
> or receive a path from git.exe, i.e., when the path travels through
> stdout and stdin, no automatic translation happens (which is quite
> understandable), and we have do the translation explicitly. An example
> for such a case is when we write a .git/info/alternates file via the
> shell.
>
>> A simpler fix is to use $PWD instead of $(pwd). I'll submit a patch in a
>> moment.
>
> Here it is. I had proposed the t0021 part earlier, but it fell through
> the cracks during the temporary maintainer change.
Thanks.  Dscho, does this fix both of these issues to you?
Show 38 quoted lines
>  t/t0021-conversion.sh    | 2 +-
>  t/t5615-alternate-env.sh | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
> index 9ff502773d..b93cd44546 100755
> --- a/t/t0021-conversion.sh
> +++ b/t/t0021-conversion.sh
> @@ -4,7 +4,7 @@ test_description='blob conversion via gitattributes'
>  
>  . ./test-lib.sh
>  
> -TEST_ROOT="$(pwd)"
> +TEST_ROOT="$PWD"
>  PATH=$TEST_ROOT:$PATH
>  
>  write_script <<\EOF "$TEST_ROOT/rot13.sh"
> diff --git a/t/t5615-alternate-env.sh b/t/t5615-alternate-env.sh
> index 22d9d8178b..eec4137ca5 100755
> --- a/t/t5615-alternate-env.sh
> +++ b/t/t5615-alternate-env.sh
> @@ -31,14 +31,14 @@ test_expect_success 'objects inaccessible without alternates' '
>  '
>  
>  test_expect_success 'access alternate via absolute path' '
> -	check_obj "$(pwd)/one.git/objects" <<-EOF
> +	check_obj "$PWD/one.git/objects" <<-EOF
>  	$one blob
>  	$two missing
>  	EOF
>  '
>  
>  test_expect_success 'access multiple alternates' '
> -	check_obj "$(pwd)/one.git/objects:$(pwd)/two.git/objects" <<-EOF
> +	check_obj "$PWD/one.git/objects:$PWD/two.git/objects" <<-EOF
>  	$one blob
>  	$two blob
>  	EOF
Previous: Jeff KingNext: Johannes Schindelin
Message 6 of 17 in “mingw: hot-fix t5615”
  1. mingw: hot-fix t5615Johannes Schindelin, Nov 11, 2016
  2. Junio C HamanoNov 11, 2016
  3. Johannes SixtNov 11, 2016
  4. t0021, t5615: use $PWD instead of $(pwd) in PATH-like shell variablesJohannes Sixt, Nov 11, 2016
  5. Jeff KingNov 11, 2016
  6. Junio C HamanoNov 11, 2016
  7. Johannes SchindelinNov 12, 2016
  8. Junio C HamanoNov 13, 2016
  9. Lars SchneiderNov 14, 2016
  10. Torsten BögershausenNov 14, 2016
  11. Jeff KingNov 14, 2016
  12. Ramsay JonesNov 14, 2016
  13. Junio C HamanoNov 14, 2016
  14. Johannes SchindelinNov 15, 2016
  15. Johannes SchindelinNov 16, 2016
  16. Junio C HamanoNov 16, 2016
  17. Jeff KingNov 11, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.