#!/bin/sh # usage () { echo >&2 "usage: $0 [--heads] [--tags] [-u|--upload-pack <upload-pack>]" echo >&2 " <repository> <refs>..." exit 1; } die () { echo >&2 "$*" exit 1 } exec= while test $# != 0 do case "$1" in -h|--h|--he|--hea|--head|--heads) heads=heads; shift ;; -t|--t|--ta|--tag|--tags) tags=tags; shift ;; -u|--u|--up|--upl|--uploa|--upload|--upload-|--upload-p|--upload-pa|\ --upload-pac|--upload-pack) shift exec="--upload-pack=$1" shift;; -u=*|--u=*|--up=*|--upl=*|--uplo=*|--uploa=*|--upload=*|\ --upload-=*|--upload-p=*|--upload-pa=*|--upload-pac=*|--upload-pack=*) exec=--upload-pack=$(expr "z$1" : 'z-[^=]*=\(.*\)') shift;; --) shift; break ;; -*) usage ;; *) break ;; esac done case "$#" in 0) usage ;; esac case ",$heads,$tags," in ,,,) heads=heads tags=tags other=other ;; esac . git-parse-remote peek_repo="$(get_remote_url "$@")" shift tmp=.ls-remote-$$ trap "rm -fr $tmp-*" 0 1 2 3 15 tmpdir=$tmp-d case "$peek_repo" in http://* | https://* | ftp://* ) if [ -n "$GIT_SSL_NO_VERIFY" -o \ "`git config --bool http.sslVerify`" = false ]; then curl_extra_args="-k" fi if [ -n "$GIT_CURL_FTP_NO_EPSV" -o \ "`git 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 && 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 tr -d '\012' <"$tmpdir/$path" echo " $path" done && rm -fr $tmpdir ;; * ) if test -f "$peek_repo" ; then git bundle list-heads "$peek_repo" || echo "failed slurping" else git-peek-remote $exec "$peek_repo" || echo "failed slurping" fi ;; esac | sort -t ' ' -k 2 | while read sha1 path do case "$sha1" in failed) exit 1 ;; esac case "$path" in refs/heads/*) group=heads ;; refs/tags/*) group=tags ;; *) group=other ;; esac case ",$heads,$tags,$other," in *,$group,*) ;; *) continue;; esac case "$#" in 0) match=yes ;; *) match=no for pat do case "/$path" in */$pat ) match=yes break ;; esac done esac case "$match" in no) continue ;; esac echo "$sha1 $path" done
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
README | File | 167 B | 0644 |
|
builtin-fetch--tool.c | File | 12.73 KB | 0644 |
|
git-checkout.sh | File | 7.44 KB | 0644 |
|
git-clean.sh | File | 2.21 KB | 0644 |
|
git-clone.sh | File | 12.4 KB | 0644 |
|
git-commit.sh | File | 14.04 KB | 0644 |
|
git-fetch.sh | File | 8.9 KB | 0644 |
|
git-gc.sh | File | 594 B | 0644 |
|
git-ls-remote.sh | File | 2.48 KB | 0644 |
|
git-merge-ours.sh | File | 338 B | 0644 |
|
git-merge.sh | File | 14.08 KB | 0644 |
|
git-notes.sh | File | 2.65 KB | 0644 |
|
git-remote.perl | File | 10.14 KB | 0644 |
|
git-rerere.perl | File | 6.05 KB | 0644 |
|
git-reset.sh | File | 2.25 KB | 0644 |
|
git-resolve.sh | File | 2.65 KB | 0644 |
|
git-revert.sh | File | 4.58 KB | 0644 |
|
git-svnimport.perl | File | 24.39 KB | 0644 |
|
git-svnimport.txt | File | 5.26 KB | 0644 |
|
git-tag.sh | File | 3.93 KB | 0644 |
|
git-verify-tag.sh | File | 749 B | 0644 |
|