Am 17.10.2016 um 09:10 schrieb Junio C Hamano:
And I agree from that point of view that having to spell both sides as $(pwd) would mean you are not testing that "Unixy input to Windowsy output" expectation, but at the same time, I think you would want "Windowsy input to Windowsy output" combination also does produce correct result, which is not tested in the three tests shown above. IOW, probably you would want to test both (at least on any platform where $PWD and $(pwd) textually disagree) for all these [*1*], and the pair "../." taken relative to "$(pwd)/." must be "$(pwd)/." "../." taken relative to "$PWD/." must be "$(pwd)/." test, because of the limitation of your bash, cannot have the latter half of the pair, so you'd need to comment it out with in-code explanation, perhaps?
No, we do not have to test both cases. Git, the program, never sees Unixy input. It cannot distinguish the two cases. If we did both tests, we would just test that *if* the front-end of git is an MSYS program (such as bash), *then* that MSYS front-end has converted the Unixy path to a Windows-y path in such a way that the end-result is also as expected. It's similar to a test that grep produces expected output.
I think that we could reduce the confusion by converting all $PWD to $(pwd) in these test cases. I don't remember why I suggested to use $PWD for one of the arguments of the test cases (the second must be $(pwd)), but the most likely reason is only that we save a process.
-- Hannes