git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Johnson <computerdruid@gmail.com>
To: git@vger.kernel.org
Cc: Daniel Johnson <ComputerDruid@gmail.com>,
	Tay Ray Chuan <rctay89@gmail.com>
Subject: [RFC/PATCHv2] fetch: allow command line --tags to override config
Date: Wed, 11 Aug 2010 18:57:20 -0400	[thread overview]
Message-ID: <1281567440-6329-1-git-send-email-ComputerDruid@gmail.com> (raw)
In-Reply-To: <AANLkTike2mAoGGk2ryZGjOmfT=yjHBLD4W5GPaXkxiso@mail.gmail.com>

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>
---
On Sat, Aug 7, 2010 at 10:17 PM, Tay Ray Chuan <rctay89@gmail.com> wrote:
> On Fri, Aug 6, 2010 at 9:54 PM, Daniel Johnson <computerdruid@gmail.com> wrote:
>> ---
>> How does this look?
>
> Looks ok - now you'll have to squash this with your code patch.
And here it is. Sorry about the lateness. I also fixed a mistake I made in the
documentation (linked to the wrong secton).

I'd still like comments on both the code and the change in behavior behind it.

 Documentation/config.txt        |    4 +++-
 Documentation/fetch-options.txt |    8 ++++++--
 builtin/fetch.c                 |   10 ++++++----
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index f81fb91..682ebef 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1627,7 +1627,9 @@ remote.<name>.tagopt::
 	Setting this value to \--no-tags disables automatic tag following when
 	fetching from remote <name>. Setting it to \--tags will fetch every
 	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::
 	Setting this to a value <vcs> will cause git to interact with
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index 9333c42..470ac31 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -49,7 +49,9 @@ ifndef::git-pull[]
 endif::git-pull[]
 	By default, tags that point at objects that are downloaded
 	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::
 --tags::
@@ -58,7 +60,9 @@ endif::git-pull[]
 	objects reachable from the branch heads that are being
 	tracked will not be fetched by this mechanism.  This
 	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::
 --update-head-ok::
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 1b67f5f..7a53144 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -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);
-- 
1.7.2

  reply	other threads:[~2010-08-11 22:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-04 18:56 [PATCH/RFC] fetch: allow command line --tags to override config Daniel Johnson
2010-08-05  9:56 ` Tay Ray Chuan
2010-08-06 13:54   ` [PATCH] Documentation: changes in the behavior of tagopt Daniel Johnson
2010-08-08  2:17     ` Tay Ray Chuan
2010-08-11 22:57       ` Daniel Johnson [this message]
2010-08-13  1:22         ` [RFC/PATCHv2] fetch: allow command line --tags to override config Junio C Hamano
2010-08-13 20:13           ` [RFC/PATCH] t5525: test the tagopt variable and that it can be overridden Daniel Johnson
2010-08-13 20:55             ` Ævar Arnfjörð Bjarmason
2010-08-13 21:27               ` [RFC/PATCHv2] " Daniel Johnson
2010-08-13 21:39                 ` Ævar Arnfjörð Bjarmason
2010-08-14 21:32                   ` Daniel Johnson
2010-08-14 21:37                     ` Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1281567440-6329-1-git-send-email-ComputerDruid@gmail.com \
    --to=computerdruid@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=rctay89@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).