Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git-fetch: reuse ls-remote result.
author
Junio C Hamano
<junkio@cox.net>
Thu, 23 Nov 2006 05:57:14 +0000
(21:57 -0800)
committer
Junio C Hamano
<junkio@cox.net>
Fri, 24 Nov 2006 00:54:54 +0000
(16:54 -0800)
This will become necessary to update the dumb protocol
transports to fetch from a repository with packed and then
pruned tags.
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-fetch.sh
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
4769489
)
diff --git
a/git-fetch.sh
b/git-fetch.sh
index eb32476bbdc98cc9a34d4026575e4d1a608289be..170c2cb048057e58b568888ea121da18cd63c1da 100755
(executable)
--- a/
git-fetch.sh
+++ b/
git-fetch.sh
@@
-88,6
+88,10
@@
then
: >"$GIT_DIR/FETCH_HEAD"
fi
: >"$GIT_DIR/FETCH_HEAD"
fi
+# Global that is reused later
+ls_remote_result=$(git ls-remote $upload_pack "$remote") ||
+ die "Cannot find the reflist at $remote"
+
append_fetch_head () {
head_="$1"
remote_="$2"
append_fetch_head () {
head_="$1"
remote_="$2"
@@
-233,10
+237,7
@@
reflist=$(get_remote_refs_for_fetch "$@")
if test "$tags"
then
taglist=`IFS=" " &&
if test "$tags"
then
taglist=`IFS=" " &&
- (
- git-ls-remote $upload_pack --tags "$remote" ||
- echo fail ouch
- ) |
+ echo "$ls_remote_result" |
while read sha1 name
do
case "$sha1" in
while read sha1 name
do
case "$sha1" in
@@
-245,6
+246,8
@@
then
esac
case "$name" in
*^*) continue ;;
esac
case "$name" in
*^*) continue ;;
+ refs/tags/*) ;;
+ *) continue ;;
esac
if git-check-ref-format "$name"
then
esac
if git-check-ref-format "$name"
then
@@
-431,7
+434,7
@@
case "$no_tags$tags" in
# effective only when we are following remote branch
# using local tracking branch.
taglist=$(IFS=" " &&
# effective only when we are following remote branch
# using local tracking branch.
taglist=$(IFS=" " &&
-
git-ls-remote $upload_pack --tags "$remote
" |
+
echo "$ls_remote_result
" |
sed -n -e 's|^\('"$_x40"'\) \(refs/tags/.*\)^{}$|\1 \2|p' \
-e 's|^\('"$_x40"'\) \(refs/tags/.*\)$|\1 \2|p' |
while read sha1 name
sed -n -e 's|^\('"$_x40"'\) \(refs/tags/.*\)^{}$|\1 \2|p' \
-e 's|^\('"$_x40"'\) \(refs/tags/.*\)$|\1 \2|p' |
while read sha1 name