diff options
author | Junio C Hamano <junkio@cox.net> | 2006-11-18 21:39:17 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-11-19 18:44:23 -0800 |
commit | 6c96c0f1940b0247530d21b10042d16bf1e7b769 (patch) | |
tree | 55d7edd39adc5b480cc1ccfad7f6fc60769a05d1 | |
parent | 198a4f4ff0694cb5b906278fc1c2b6e7db4d2737 (diff) | |
download | git-6c96c0f1940b0247530d21b10042d16bf1e7b769.tar.gz git-6c96c0f1940b0247530d21b10042d16bf1e7b769.tar.xz |
git-fetch: follow lightweit tags as well.
This side-ports commit fd19f620 from Cogito, in which I fixed
exactly the same bug. Somehow nobody noticed this for a long
time in git.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | git-fetch.sh | 5 | ||||
-rwxr-xr-x | t/t5510-fetch.sh | 16 |
2 files changed, 19 insertions, 2 deletions
diff --git a/git-fetch.sh b/git-fetch.sh index 7442dd2ca..eb32476bb 100755 --- a/git-fetch.sh +++ b/git-fetch.sh @@ -432,10 +432,11 @@ case "$no_tags$tags" in # using local tracking branch. taglist=$(IFS=" " && git-ls-remote $upload_pack --tags "$remote" | - sed -ne 's|^\([0-9a-f]*\)[ ]\(refs/tags/.*\)^{}$|\1 \2|p' | + sed -n -e 's|^\('"$_x40"'\) \(refs/tags/.*\)^{}$|\1 \2|p' \ + -e 's|^\('"$_x40"'\) \(refs/tags/.*\)$|\1 \2|p' | while read sha1 name do - git-show-ref --verify --quiet -- $name && continue + git-show-ref --verify --quiet -- "$name" && continue git-check-ref-format "$name" || { echo >&2 "warning: tag ${name} ignored" continue diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh index df0ae4811..a11ab0ad4 100755 --- a/t/t5510-fetch.sh +++ b/t/t5510-fetch.sh @@ -66,4 +66,20 @@ test_expect_success "fetch test for-merge" ' cut -f -2 .git/FETCH_HEAD >actual && diff expected actual' +test_expect_success 'fetch following tags' ' + + cd "$D" && + git tag -a -m 'annotated' anno HEAD && + git tag light HEAD && + + mkdir four && + cd four && + git init-db && + + git fetch .. :track && + git show-ref --verify refs/tags/anno && + git show-ref --verify refs/tags/light + +' + test_done |