Code

parse-remote: trivial fix to allow refs/{heads,tags}/ spelled easier.
authorJunio C Hamano <junkio@cox.net>
Tue, 30 Aug 2005 08:08:24 +0000 (01:08 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 30 Aug 2005 08:08:24 +0000 (01:08 -0700)
Earlier we always prefixed refs/heads to the token given to "git fetch"
(and "git pull") as refspec.  This was a mistake.  Allow them to be
spelled like "master:refs/tags/paulus" to mean "I want to fetch the
master there and store it as my local "paulus" tag.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-parse-remote-script

index cf3788425693750edbb6080a3dfa8b314bf9bdb2..43b436803477f656e5ae0dddcc2c2440455a1820 100755 (executable)
@@ -81,10 +81,14 @@ canon_refs_list_for_fetch () {
                local=$(expr "$ref" : '[^:]*:\(.*\)')
                case "$remote" in
                '') remote=HEAD ;;
+               refs/heads/* | refs/tags/*) ;;
+               heads/* | tags/* ) remote="refs/$remote" ;;
                *) remote="refs/heads/$remote" ;;
                esac
                case "$local" in
                '') local= ;;
+               refs/heads/* | refs/tags/*) ;;
+               heads/* | tags/* ) local="refs/$local" ;;
                *) local="refs/heads/$local" ;;
                esac
                echo "${force}${remote}:${local}"