fetch: allow command line --tags to override config

Originally, if remote.<name>.tagopt was set, the --tags and option would
have no effect when given to git fetch. So if
tagopt="--no-tags"

	git fetch --tags

would not actually fetch tags.

This patch changes this behavior to only follow what is written in the
config if there is no option passed by the command line.

Signed-off-by: Daniel Johnson <ComputerDruid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Daniel Johnson
2010-08-11 18:57:20 -04:00
committed by Junio C Hamano
parent 64fdc08dac
commit ed36854651
4 changed files with 56 additions and 7 deletions

View File

@ -675,10 +675,12 @@ static int do_fetch(struct transport *transport,
for_each_ref(add_existing, &existing_refs);
if (transport->remote->fetch_tags == 2 && tags != TAGS_UNSET)
tags = TAGS_SET;
if (transport->remote->fetch_tags == -1)
tags = TAGS_UNSET;
if (tags == TAGS_DEFAULT) {
if (transport->remote->fetch_tags == 2)
tags = TAGS_SET;
if (transport->remote->fetch_tags == -1)
tags = TAGS_UNSET;
}
if (!transport->get_refs_list || !transport->fetch)
die("Don't know how to fetch from %s", transport->url);