Merge branch 'dj/fetch-tagopt' into maint
* dj/fetch-tagopt: fetch: allow command line --tags to override config
This commit is contained in:
commit
6da28b4f87
@ -1629,7 +1629,9 @@ remote.<name>.tagopt::
|
|||||||
Setting this value to \--no-tags disables automatic tag following when
|
Setting this value to \--no-tags disables automatic tag following when
|
||||||
fetching from remote <name>. Setting it to \--tags will fetch every
|
fetching from remote <name>. Setting it to \--tags will fetch every
|
||||||
tag from remote <name>, even if they are not reachable from remote
|
tag from remote <name>, even if they are not reachable from remote
|
||||||
branch heads.
|
branch heads. Passing these flags directly to linkgit:git-fetch[1] can
|
||||||
|
override this setting. See options \--tags and \--no-tags of
|
||||||
|
linkgit:git-fetch[1].
|
||||||
|
|
||||||
remote.<name>.vcs::
|
remote.<name>.vcs::
|
||||||
Setting this to a value <vcs> will cause git to interact with
|
Setting this to a value <vcs> will cause git to interact with
|
||||||
|
@ -49,7 +49,9 @@ ifndef::git-pull[]
|
|||||||
endif::git-pull[]
|
endif::git-pull[]
|
||||||
By default, tags that point at objects that are downloaded
|
By default, tags that point at objects that are downloaded
|
||||||
from the remote repository are fetched and stored locally.
|
from the remote repository are fetched and stored locally.
|
||||||
This option disables this automatic tag following.
|
This option disables this automatic tag following. The default
|
||||||
|
behavior for a remote may be specified with the remote.<name>.tagopt
|
||||||
|
setting. See linkgit:git-config[1].
|
||||||
|
|
||||||
-t::
|
-t::
|
||||||
--tags::
|
--tags::
|
||||||
@ -58,7 +60,9 @@ endif::git-pull[]
|
|||||||
objects reachable from the branch heads that are being
|
objects reachable from the branch heads that are being
|
||||||
tracked will not be fetched by this mechanism. This
|
tracked will not be fetched by this mechanism. This
|
||||||
flag lets all tags and their associated objects be
|
flag lets all tags and their associated objects be
|
||||||
downloaded.
|
downloaded. The default behavior for a remote may be
|
||||||
|
specified with the remote.<name>.tagopt setting. See
|
||||||
|
linkgit:git-config[1].
|
||||||
|
|
||||||
-u::
|
-u::
|
||||||
--update-head-ok::
|
--update-head-ok::
|
||||||
|
@ -675,10 +675,12 @@ static int do_fetch(struct transport *transport,
|
|||||||
|
|
||||||
for_each_ref(add_existing, &existing_refs);
|
for_each_ref(add_existing, &existing_refs);
|
||||||
|
|
||||||
if (transport->remote->fetch_tags == 2 && tags != TAGS_UNSET)
|
if (tags == TAGS_DEFAULT) {
|
||||||
tags = TAGS_SET;
|
if (transport->remote->fetch_tags == 2)
|
||||||
if (transport->remote->fetch_tags == -1)
|
tags = TAGS_SET;
|
||||||
tags = TAGS_UNSET;
|
if (transport->remote->fetch_tags == -1)
|
||||||
|
tags = TAGS_UNSET;
|
||||||
|
}
|
||||||
|
|
||||||
if (!transport->get_refs_list || !transport->fetch)
|
if (!transport->get_refs_list || !transport->fetch)
|
||||||
die("Don't know how to fetch from %s", transport->url);
|
die("Don't know how to fetch from %s", transport->url);
|
||||||
|
41
t/t5525-fetch-tagopt.sh
Executable file
41
t/t5525-fetch-tagopt.sh
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/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)
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success "fetch --tags with tagopt=--no-tags gets tag" '
|
||||||
|
git fetch --tags remote_one &&
|
||||||
|
git show-ref tag_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
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success "fetch with tagopt=--tags gets tag" '
|
||||||
|
git fetch remote_two &&
|
||||||
|
git show-ref tag_two
|
||||||
|
'
|
||||||
|
test_done
|
Loading…
Reference in New Issue
Block a user