On Wed, Mar 2, 2016 at 9:21 AM, Johannes Sixt <j6t@xxxxxxxx> wrote: > Am 13.02.2016 um 00:39 schrieb Stefan Beller: >> @@ -289,4 +296,39 @@ test_git_path GIT_COMMON_DIR=bar config bar/config >> test_git_path GIT_COMMON_DIR=bar packed-refs bar/packed-refs >> test_git_path GIT_COMMON_DIR=bar shallow bar/shallow >> >> +test_submodule_relative_url "(null)" "../foo/bar" "../sub/a/b/c" "../foo/sub/a/b/c" >> +test_submodule_relative_url "../../../" "../foo/bar" "../sub/a/b/c" "../../../../foo/sub/a/b/c" >> +test_submodule_relative_url "(null)" "../foo/bar" "../submodule" "../foo/submodule" >> +test_submodule_relative_url "../" "../foo/bar" "../submodule" "../../foo/submodule" >> +test_submodule_relative_url "(null)" "../foo/submodule" "../submodule" "../foo/submodule" >> +test_submodule_relative_url "../" "../foo/submodule" "../submodule" "../../foo/submodule" >> +test_submodule_relative_url "(null)" "../foo" "../submodule" "../submodule" >> +test_submodule_relative_url "../" "../foo" "../submodule" "../../submodule" >> +test_submodule_relative_url "(null)" "./foo/bar" "../submodule" "foo/submodule" >> +test_submodule_relative_url "../" "./foo/bar" "../submodule" "../foo/submodule" >> +test_submodule_relative_url "(null)" "./foo" "../submodule" "submodule" >> +test_submodule_relative_url "../" "./foo" "../submodule" "../submodule" >> +test_submodule_relative_url "(null)" "//somewhere else/repo" "../subrepo" "//somewhere else/subrepo" >> +test_submodule_relative_url "(null)" "/u//trash directory.t7406-submodule-update/subsuper_update_r" "../subsubsuper_update_r" "/u//trash directory.t7406-submodule-update/subsubsuper_update_r" >> +test_submodule_relative_url "(null)" "/u//trash directory.t7406-submodule-update/super_update_r2" "../subsuper_update_r" "/u//trash directory.t7406-submodule-update/subsuper_update_r" >> +test_submodule_relative_url "(null)" "/u/trash directory.t3600-rm/." "../." "/u/trash directory.t3600-rm/." >> +test_submodule_relative_url "(null)" "/u/trash directory.t3600-rm" "./." "/u/trash directory.t3600-rm/." >> +test_submodule_relative_url "(null)" "/u/trash directory.t7400-submodule-basic/addtest" "../repo" "/u/trash directory.t7400-submodule-basic/repo" >> +test_submodule_relative_url "../" "/u/trash directory.t7400-submodule-basic/addtest" "../repo" "/u/trash directory.t7400-submodule-basic/repo" >> +test_submodule_relative_url "(null)" "/u/trash directory.t7400-submodule-basic" "./å äö" "/u/trash directory.t7400-submodule-basic/å äö" >> +test_submodule_relative_url "(null)" "/u/trash directory.t7403-submodule-sync/." "../submodule" "/u/trash directory.t7403-submodule-sync/submodule" >> +test_submodule_relative_url "(null)" "/u/trash directory.t7407-submodule-foreach/submodule" "../submodule" "/u/trash directory.t7407-submodule-foreach/submodule" >> +test_submodule_relative_url "(null)" "/u/trash directory.t7409-submodule-detached-worktree/home2/../remote" "../bundle1" "/u/trash directory.t7409-submodule-detached-worktree/home2/../bundle1" >> +test_submodule_relative_url "(null)" "/u/trash directory.t7613-merge-submodule/submodule_update_repo" "./." "/u/trash directory.t7613-merge-submodule/submodule_update_repo/." > > The tests with absolute paths all fail on Windows. The reason is that > git.exe sees mangled paths and 'git submodule--helper > resolve-relative-url-test' produces mangled paths (that begins with a > drive letter), whereas the test script expects POSIX paths. The pattern > I currently use to fix this is > > test_submodule_relative_url "(null)" "$PWD/addtest" "../repo" "$(pwd)/repo" > > (In our test scripts, $PWD is a POSIX style path and $(pwd) is a > Windows style path). > > With this change, the penultimate case above still fails because the > 'home2/..' gets lost somewhere in the actual output, which I still have > to debug. > > The two cases beginning with '/u//' cannot be tested on Windows. > Are they important? Are the doubled slashes intentional? The way I got the test cases is by inserting a debug printf into the shell script and then running the test suite (as that ought to work correct and cover everything). And the double slash is intentional, somewhere in the test suite we have a case where that occurs. It may be a calling error? Thanks for looking into this on the Windows side :) Thanks, Stefan > >> +test_submodule_relative_url "(null)" "file:///tmp/repo" "../subrepo" "file:///tmp/subrepo" >> +test_submodule_relative_url "(null)" "foo/bar" "../submodule" "foo/submodule" >> +test_submodule_relative_url "../" "foo/bar" "../submodule" "../foo/submodule" >> +test_submodule_relative_url "(null)" "foo" "../submodule" "submodule" >> +test_submodule_relative_url "../" "foo" "../submodule" "../submodule" >> +test_submodule_relative_url "(null)" "helper:://hostname/repo" "../subrepo" "helper:://hostname/subrepo" >> +test_submodule_relative_url "(null)" "ssh://hostname/repo" "../subrepo" "ssh://hostname/subrepo" >> +test_submodule_relative_url "(null)" "ssh://hostname:22/repo" "../subrepo" "ssh://hostname:22/subrepo" >> +test_submodule_relative_url "(null)" "user@host:path/to/repo" "../subrepo" "user@host:path/to/subrepo" >> +test_submodule_relative_url "(null)" "user@host:repo" "../subrepo" "user@host:subrepo" >> + >> test_done >> > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html