mirror of
https://github.com/git/git.git
synced 2025-03-27 16:58:05 +00:00
Previously, fetch's "--tags" option was considered equivalent to specifying the refspec "refs/tags/*:refs/tags/*" on the command line; in particular, it caused the remote.<name>.refspec configuration to be ignored. But it is not very useful to fetch tags without also fetching other references, whereas it *is* quite useful to be able to fetch tags *in addition to* other references. So change the semantics of this option to do the latter. If a user wants to fetch *only* tags, then it is still possible to specifying an explicit refspec: git fetch <remote> 'refs/tags/*:refs/tags/*' Please note that the documentation prior to 1.8.0.3 was ambiguous about this aspect of "fetch --tags" behavior. Commit f0cb2f137c 2012-12-14 fetch --tags: clarify documentation made the documentation match the old behavior. This commit changes the documentation to match the new behavior. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
55 lines
1.2 KiB
Bash
Executable File
55 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='tagopt variable affects "git fetch" and is overridden by commandline.'
|
|
|
|
. ./test-lib.sh
|
|
|
|
setup_clone () {
|
|
git clone --mirror . $1 &&
|
|
git remote add remote_$1 $1 &&
|
|
(cd $1 &&
|
|
git tag tag_$1 &&
|
|
git branch branch_$1)
|
|
}
|
|
|
|
test_expect_success setup '
|
|
test_commit test &&
|
|
setup_clone one &&
|
|
git config remote.remote_one.tagopt --no-tags &&
|
|
setup_clone two &&
|
|
git config remote.remote_two.tagopt --tags
|
|
'
|
|
|
|
test_expect_success "fetch with tagopt=--no-tags does not get tag" '
|
|
git fetch remote_one &&
|
|
test_must_fail git show-ref tag_one &&
|
|
git show-ref remote_one/branch_one
|
|
'
|
|
|
|
test_expect_success "fetch --tags with tagopt=--no-tags gets tag" '
|
|
(
|
|
cd one &&
|
|
git branch second_branch_one
|
|
) &&
|
|
git fetch --tags remote_one &&
|
|
git show-ref tag_one &&
|
|
git show-ref remote_one/second_branch_one
|
|
'
|
|
|
|
test_expect_success "fetch --no-tags with tagopt=--tags does not get tag" '
|
|
git fetch --no-tags remote_two &&
|
|
test_must_fail git show-ref tag_two &&
|
|
git show-ref remote_two/branch_two
|
|
'
|
|
|
|
test_expect_success "fetch with tagopt=--tags gets tag" '
|
|
(
|
|
cd two &&
|
|
git branch second_branch_two
|
|
) &&
|
|
git fetch remote_two &&
|
|
git show-ref tag_two &&
|
|
git show-ref remote_two/second_branch_two
|
|
'
|
|
test_done
|