ls-remote: drop storing operation and add documentation.

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>
This commit is contained in:
Junio C Hamano 2005-08-08 01:20:03 -07:00
parent 4282c4fbdd
commit 972b6fe746
2 changed files with 87 additions and 27 deletions

View File

@ -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

View File

@ -3,7 +3,7 @@
. 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;
}
@ -12,10 +12,6 @@ do
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 ;;
--)
@ -27,15 +23,15 @@ do
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
@ -65,7 +61,7 @@ rsync://* )
git-peek-remote "$peek_repo"
;;
esac |
sort -t ' ' -k 2 |
while read sha1 path
do
case "$path" in
@ -82,23 +78,23 @@ do
*)
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