summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4fa2197)
raw | patch | inline | side by side (parent: 4fa2197)
author | Linus Torvalds <torvalds@osdl.org> | |
Thu, 29 Sep 2005 21:35:15 +0000 (14:35 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sun, 2 Oct 2005 06:18:38 +0000 (23:18 -0700) |
You can do
git fetch --tags <linus-kernel-repo>
and it should fetch all my tags automatically.
[jc: The original by Linus fetched and overwrote branch heads with
--all, which felt dangerous and wrong, so I removed it. Also this
version does not use any refs that resulted as --tags for later
merge. ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git fetch --tags <linus-kernel-repo>
and it should fetch all my tags automatically.
[jc: The original by Linus fetched and overwrote branch heads with
--all, which felt dangerous and wrong, so I removed it. Also this
version does not use any refs that resulted as --tags for later
merge. ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-fetch.sh | patch | blob | history |
diff --git a/git-fetch.sh b/git-fetch.sh
index 27407c1d357d8bf9d621875b1a773cef671ddc3d..61da6a9e3167845cf5b0f9260206b2dd590532df 100755 (executable)
--- a/git-fetch.sh
+++ b/git-fetch.sh
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
+tags=
append=
force=
update_head_ok=
-f|--f|--fo|--for|--forc|--force)
force=t
;;
+ -t|--t|--ta|--tag|--tags)
+ tags=t
+ ;;
-u|--u|--up|--upd|--upda|--updat|--update|--update-|--update-h|\
--update-he|--update-hea|--update-head|--update-head-|\
--update-head-o|--update-head-ok)
;;
esac
-for ref in $(get_remote_refs_for_fetch "$@")
+# If --tags (and later --heads or --all) is specified, then we are
+# not talking about defaults stored in Pull: line of remotes or
+# branches file, and just fetch those and refspecs explicitly given.
+# Otherwise we do what we always did.
+
+reflist=$(get_remote_refs_for_fetch "$@")
+if test "$tags"
+then
+ taglist=$(git-ls-remote --tags "$remote" | awk '{ print "."$2":"$2 }')
+ if test "$#" -gt 1
+ then
+ # remote URL plus explicit refspecs; we need to merge them.
+ reflist="$reflist $taglist"
+ else
+ # No explicit refspecs; fetch tags only.
+ reflist=$taglist
+ fi
+fi
+
+for ref in $reflist
do
refs="$refs $ref"