X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-ls-remote.sh;h=0f88953f299c1fd1243c3d5d6ae1e71d56e842a8;hb=e2b1d1ccdd2ef4db41819bb0d242b808cfe6c422;hp=b6882a90c15a7b706966e608e00facbb80f26422;hpb=a549e11cc2fee10ddf66dd98ea79f7c624eee34e;p=git.git diff --git a/git-ls-remote.sh b/git-ls-remote.sh index b6882a90c..0f88953f2 100755 --- a/git-ls-remote.sh +++ b/git-ls-remote.sh @@ -49,20 +49,32 @@ trap "rm -fr $tmp-*" 0 1 2 3 15 tmpdir=$tmp-d case "$peek_repo" in -http://* | https://* ) +http://* | https://* | ftp://* ) if [ -n "$GIT_SSL_NO_VERIFY" ]; then curl_extra_args="-k" fi + if [ -n "$GIT_CURL_FTP_NO_EPSV" -o \ + "`git-repo-config --bool http.noEPSV`" = true ]; then + curl_extra_args="${curl_extra_args} --disable-epsv" + fi curl -nsf $curl_extra_args --header "Pragma: no-cache" "$peek_repo/info/refs" || echo "failed slurping" ;; rsync://* ) - mkdir $tmpdir + mkdir $tmpdir && + rsync -rlq "$peek_repo/HEAD" $tmpdir && rsync -rq "$peek_repo/refs" $tmpdir || { echo "failed slurping" exit } + head=$(cat "$tmpdir/HEAD") && + case "$head" in + ref:' '*) + head=$(expr "z$head" : 'zref: \(.*\)') && + head=$(cat "$tmpdir/$head") || exit + esac && + echo "$head HEAD" (cd $tmpdir && find refs -type f) | while read path do