projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
repo-config: trim white-space before comment
[git.git]
/
git-ls-remote.sh
diff --git
a/git-ls-remote.sh
b/git-ls-remote.sh
index
604c5f5
..
b6882a9
100755
(executable)
--- a/
git-ls-remote.sh
+++ b/
git-ls-remote.sh
@@
-1,12
+1,18
@@
#!/bin/sh
#
#!/bin/sh
#
-. git-sh-setup || die "Not a git archive"
usage () {
usage () {
- echo >&2 "usage: $0 [--heads] [--tags] <repository> <refs>..."
+ echo >&2 "usage: $0 [--heads] [--tags] [-u|--upload-pack <upload-pack>]"
+ echo >&2 " <repository> <refs>..."
exit 1;
}
exit 1;
}
+die () {
+ echo >&2 "$*"
+ exit 1
+}
+
+exec=
while case "$#" in 0) break;; esac
do
case "$1" in
while case "$#" in 0) break;; esac
do
case "$1" in
@@
-14,6
+20,11
@@
do
heads=heads; shift ;;
-t|--t|--ta|--tag|--tags)
tags=tags; shift ;;
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="--exec=$1"
+ shift;;
--)
shift; break ;;
-*)
--)
shift; break ;;
-*)
@@
-42,12
+53,16
@@
http://* | https://* )
if [ -n "$GIT_SSL_NO_VERIFY" ]; then
curl_extra_args="-k"
fi
if [ -n "$GIT_SSL_NO_VERIFY" ]; then
curl_extra_args="-k"
fi
- curl -nsf $curl_extra_args "$peek_repo/info/refs" || exit 1
+ curl -nsf $curl_extra_args --header "Pragma: no-cache" "$peek_repo/info/refs" ||
+ echo "failed slurping"
;;
rsync://* )
mkdir $tmpdir
;;
rsync://* )
mkdir $tmpdir
- rsync -rq "$peek_repo/refs" $tmpdir || exit 1
+ rsync -rq "$peek_repo/refs" $tmpdir || {
+ echo "failed slurping"
+ exit
+ }
(cd $tmpdir && find refs -type f) |
while read path
do
(cd $tmpdir && find refs -type f) |
while read path
do
@@
-58,12
+73,17
@@
rsync://* )
;;
* )
;;
* )
- git-peek-remote "$peek_repo"
+ git-peek-remote $exec "$peek_repo" ||
+ echo "failed slurping"
;;
esac |
sort -t ' ' -k 2 |
while read sha1 path
do
;;
esac |
sort -t ' ' -k 2 |
while read sha1 path
do
+ case "$sha1" in
+ failed)
+ die "Failed to find remote refs"
+ esac
case "$path" in
refs/heads/*)
group=heads ;;
case "$path" in
refs/heads/*)
group=heads ;;