summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4282c4f)
raw | patch | inline | side by side (parent: 4282c4f)
author | Junio C Hamano <junkio@cox.net> | |
Mon, 8 Aug 2005 08:20:03 +0000 (01:20 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Wed, 10 Aug 2005 06:38:51 +0000 (23:38 -0700) |
The store operation was never useful because we needed to fetch
the objects needed to complete the reference. Remove it.
The fetch command fetch multiple references shortly to
replace the lost "store" functionality in more a generic way.
Signed-off-by: Junio C Hamano <junkio@cox.net>
the objects needed to complete the reference. Remove it.
The fetch command fetch multiple references shortly to
replace the lost "store" functionality in more a generic way.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-ls-remote-script.txt | [new file with mode: 0644] | patch | blob |
git-ls-remote-script | patch | blob | history |
diff --git a/Documentation/git-ls-remote-script.txt b/Documentation/git-ls-remote-script.txt
--- /dev/null
@@ -0,0 +1,64 @@
+git-ls-remote-script(1)
+=======================
+v0.1, May 2005
+
+NAME
+----
+git-ls-remote-script - Look at references other repository has.
+
+
+SYNOPSIS
+--------
+'git-ls-remote' [--heads] [--tags] <repository> <refs>...
+
+DESCRIPTION
+-----------
+Displays the references other repository has.
+
+
+OPTIONS
+-------
+--heads --tags::
+ Limit to only refs/heads and refs/tags, respectively.
+ These options are _not_ mutually exclusive; when given
+ both, references stored in refs/heads and refs/tags are
+ displayed.
+
+<repository>::
+ Location of the repository. The shorthand defined in
+ $GIT_DIR/branches/ can be used.
+
+<refs>...::
+ When unspecified, all references, after filtering done
+ with --heads and --tags, are shown. When <refs>... are
+ specified, only references matching the given patterns
+ are displayed.
+
+EXAMPLES
+--------
+
+ $ git ls-remote --tags ./.
+ d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
+ f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
+ 7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
+ c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
+ 0918385dbd9656cab0d1d81ba7453d49bbc16250 refs/tags/junio-gpg-pub
+ $ git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc
+ 5fe978a5381f1fbad26a80e682ddd2a401966740 refs/heads/master
+ c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/pu
+ b1d096f2926c4e37c9c0b6a7bf2119bedaa277cb refs/heads/rc
+ $ echo http://www.kernel.org/pub/scm/git/git.git >.git/branches/public
+ $ git ls-remote --tags public v\*
+ d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
+ f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
+ c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
+ 7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
+
+Author
+------
+Written by Junio C Hamano <junkio@cox.net>
+
+GIT
+---
+Part of the link:git.html[git] suite
+
diff --git a/git-ls-remote-script b/git-ls-remote-script
index 31cdac8bfed3837653d80828c7cf60647df0af07..75f60278669851d627a9ff2f8e87c9382af72c6a 100755 (executable)
--- a/git-ls-remote-script
+++ b/git-ls-remote-script
. git-sh-setup-script || die "Not a git archive"
usage () {
- echo >&2 "usage: $0 [--heads] [--tags] [--overwrite | --store] repo"
+ echo >&2 "usage: $0 [--heads] [--tags] <repository> <refs>..."
exit 1;
}
case "$1" in
-h|--h|--he|--hea|--head|--heads)
heads=heads; shift ;;
- -o|--o|--ov|--ove|--over|--overw|--overwr|--overwri|--overwrit|--overwrite)
- overwrite=overwrite; shift ;;
- -s|--s|--st|--sto|--stor|--store)
- store=store; shift ;;
-t|--t|--ta|--tag|--tags)
tags=tags; shift ;;
--)
esac
done
-case "$#" in 1) ;; *) usage ;; esac
-case ",$store,$overwrite," in *,,*) ;; *) usage ;; esac
+case "$#" in 0) usage ;; esac
case ",$heads,$tags," in
,,,) heads=heads tags=tags other=other ;;
esac
-. git-parse-remote "$@"
+. git-parse-remote "$1"
peek_repo="$_remote_repo"
+shift
tmp=.ls-remote-$$
trap "rm -fr $tmp-*" 0 1 2 3 15
git-peek-remote "$peek_repo"
;;
esac |
-
+sort -t ' ' -k 2 |
while read sha1 path
do
case "$path" in
*)
continue;;
esac
-
- echo "$sha1 $path"
-
- case "$path,$store,$overwrite," in
- *,,, | HEAD,*) continue ;;
+ case "$#" in
+ 0)
+ match=yes ;;
+ *)
+ match=no
+ for pat
+ do
+ case "/$path" in
+ */$pat )
+ match=yes
+ break ;;
+ esac
+ done
esac
-
- if test -f "$GIT_DIR/$path" && test "$overwrite" == ""
- then
- continue
- fi
-
- # Be careful. We may not have that object yet!
- if git-cat-file -t "$sha1" >/dev/null 2>&1
- then
- echo "$sha1" >"$GIT_DIR/$path"
- else
- echo >&2 "* You have not fetched updated $path ($sha1)."
- fi
+ case "$match" in
+ no)
+ continue ;;
+ esac
+ echo "$sha1 $path"
done