Commits

Junio C Hamano  committed 972b6fe

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>

  • Participants
  • Parent commits 4282c4f

Comments (0)

Files changed (2)

File Documentation/git-ls-remote-script.txt

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

File 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