X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-ls-remote.sh;h=2fdcaf7886850b1f59a1775bffc23948d1b62c6a;hb=fb6a9f93d39e4e5fdb83673a927f71a34e9fb7c0;hp=2c9a588d21e4eaf6358148949ace2dc825798c55;hpb=92643a27cc2cc7ce55ba2afd6155f94b40e1aa89;p=git.git diff --git a/git-ls-remote.sh b/git-ls-remote.sh index 2c9a588d..2fdcaf78 100755 --- a/git-ls-remote.sh +++ b/git-ls-remote.sh @@ -53,16 +53,24 @@ http://* | https://* ) if [ -n "$GIT_SSL_NO_VERIFY" ]; then curl_extra_args="-k" fi - curl -nsf $curl_extra_args "$peek_repo/info/refs" || + 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