cherry-pick/revert: add --skip option
[gitweb.git] / t / t5580-clone-push-unc.sh
index b322c2f72202fbfda5c74f8d085744dd29c55fb3..b3c8a92450bc0e9ba869563ef1a7a4c1362cebd6 100755 (executable)
@@ -3,12 +3,18 @@
 test_description='various Windows-only path tests'
 . ./test-lib.sh
 
-if ! test_have_prereq MINGW; then
+if test_have_prereq CYGWIN
+then
+       alias winpwd='cygpath -aw .'
+elif test_have_prereq MINGW
+then
+       alias winpwd=pwd
+else
        skip_all='skipping Windows-only path tests'
        test_done
 fi
 
-UNCPATH="$(pwd)"
+UNCPATH="$(winpwd)"
 case "$UNCPATH" in
 [A-Z]:*)
        # Use administrative share e.g. \\localhost\C$\git-sdk-64\usr\src\git
@@ -34,6 +40,11 @@ test_expect_success clone '
        git clone "file://$UNCPATH" clone
 '
 
+test_expect_success 'clone with backslashed path' '
+       BACKSLASHED="$(echo "$UNCPATH" | tr / \\\\)" &&
+       git clone "$BACKSLASHED" backslashed
+'
+
 test_expect_success push '
        (
                cd clone &&
@@ -45,10 +56,22 @@ test_expect_success push '
        test "$rev" = "$(git rev-parse --verify refs/heads/to-push)"
 '
 
-test_expect_success 'remote nick cannot contain backslashes' '
-       BACKSLASHED="$(pwd | tr / \\\\)" &&
+test_expect_success MINGW 'remote nick cannot contain backslashes' '
+       BACKSLASHED="$(winpwd | tr / \\\\)" &&
        git ls-remote "$BACKSLASHED" >out 2>err &&
        test_i18ngrep ! "unable to access" err
 '
 
+test_expect_success 'unc alternates' '
+       tree="$(git rev-parse HEAD:)" &&
+       mkdir test-unc-alternate &&
+       (
+               cd test-unc-alternate &&
+               git init &&
+               test_must_fail git show $tree &&
+               echo "$UNCPATH/.git/objects" >.git/objects/info/alternates &&
+               git show $tree
+       )
+'
+
 test_done