From: Junio C Hamano Date: Mon, 8 Aug 2005 08:20:03 +0000 (-0700) Subject: ls-remote: drop storing operation and add documentation. X-Git-Tag: v0.99.4~3^2~3 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=972b6fe746f0d9a3ea13118d80d9371a9ff68dba;p=git.git 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 --- diff --git a/Documentation/git-ls-remote-script.txt b/Documentation/git-ls-remote-script.txt new file mode 100644 index 000000000..0b98e6a9f --- /dev/null +++ b/Documentation/git-ls-remote-script.txt @@ -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] ... + +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. + +:: + Location of the repository. The shorthand defined in + $GIT_DIR/branches/ can be used. + +...:: + When unspecified, all references, after filtering done + with --heads and --tags, are shown. When ... 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 + +GIT +--- +Part of the link:git.html[git] suite + diff --git a/git-ls-remote-script b/git-ls-remote-script index 31cdac8bf..75f602786 100755 --- a/git-ls-remote-script +++ b/git-ls-remote-script @@ -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] ..." 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