Subject: Re: [PATCH] fix t1504 on Windows

From: Johannes Sixt <[email-masked]>
Date: Fri, 06 Feb 2009 20:23:47 +0100

René Scharfe schrieb:
> Johannes Sixt schrieb:
>> I also need this to complete this test:
>>
>> diff --git a/t/t1504-ceiling-dirs.sh b/t/t1504-ceiling-dirs.sh
>> index 9c9c4c9..e377d48 100755
>> --- a/t/t1504-ceiling-dirs.sh
>> +++ b/t/t1504-ceiling-dirs.sh
>> @@ -93,13 +93,13 @@ GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi"
>>  test_prefix subdir_ceil_at_subdi_slash "sub/dir/"
>>
>>
>> -GIT_CEILING_DIRECTORIES="foo:$TRASH_ROOT/sub"
>> +GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub"
>>  test_fail second_of_two
>>
>>  GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub:/bar"
>>  test_fail first_of_two
>>
>> -GIT_CEILING_DIRECTORIES="foo:$TRASH_ROOT/sub:bar"
>> +GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub:/bar"
>>  test_fail second_of_three
> 
> I don't, which makes me uneasy -- the tests shouldn't depend on details
> in our setup. :-/

I updated my msysgit to the current master this moment, and I still need 
these two changes. Do you use an older msysgit? With 31d5dfeb0 
(2008-06-08) Steffen changed path mangling so that a text without a 
leading / or . is not converted. That's exactly what we see here.

>> That said, I'm in the process of preparing a series that includes your
>> patch and that does the proper cleanup and code moving that you again
>> didn't do :-/ But it turns out that this is non-trivial because of bash's
>> (MSYS's) I-know-better-what-is-a-path-and-what-not behavior. It will take
>> some time...
> 
> Glad to hear the first part, but what code moving do you mean?  Something
> like the following?
> 
> -- snip! --
> Remove the unused function normalize_absolute_path() and its tests.

No, that's not enough. I mean something more like this (but I'll not 
include the diff itself):

Johannes Sixt (4):
       Make test-path-utils more robust against incorrect use
       Move sanitary_path_copy to path.c (and rename to
         normalize_path_copy)
       Test and fix normalize_path_copy()
       Remove unused normalize_absolute_path()

René Scharfe (1):
       Fix t1504 on Windows

  cache.h                 |    2 +-
  path.c                  |  124 +++++++++++++++++++++++++------------
  setup.c                 |   88 +--------------------------
  t/t0060-path-utils.sh   |   26 ++++----
  t/t1504-ceiling-dirs.sh |    2 +-
  test-path-utils.c       |   12 +++-
  6 files changed, 107 insertions(+), 147 deletions(-)

-- Hannes