Subject: [PATCH] git fetch: Take '-n' to mean '--no-tags'

From: Andreas Ericsson <[email-masked]>
Date: Thu, 13 Mar 2008 08:13:15 +0100

From: Johannes Schindelin <[email-masked]>

Prior to commit 83201998730ac5f0b95ac832f3b727da26ab0129, we
understood '-n' as a short option to mean "don't fetch tags
from the remote". This patch reinstates behaviour similar,
but not identical to the pre commit 832019987 times.

Back then, -n always overrode --tags, so if both --tags and -n
was given on command-line, no tags were fetched regardless of
argument ordering. Now we use a "last entry wins" strategy,
so '-n --tags' means "fetch tags".
Since it's patently absurd to say both --tags and --no-tags
this shouldn't matter in practice.

Spotted-by: Artem Zolochevskiy <[email-masked]>
Reported-by: Dmitry V. Levin <[email-masked]>
Tested-by: Andreas Ericsson <[email-masked]>
Signed-off-by: Johannes Schindelin <[email-masked]>
---

Andreas Ericsson wrote:
> Johannes Schindelin wrote:
>>
>> Maybe like this (completely untested, that will be your task tomorrow):
>>
> 
> Looks like how I thought it should be. Test passed fine, both real and
> automated. Proper patch incoming in a minute.
> 

And here it is.

diff --git a/builtin-fetch.c b/builtin-fetch.c
index 55f611e..b2b9935 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -40,6 +40,8 @@ static struct option builtin_fetch_options[] = {
 		    "force overwrite of local branch"),
 	OPT_SET_INT('t', "tags", &tags,
 		    "fetch all tags and associated objects", TAGS_SET),
+	OPT_SET_INT('n', NULL, &tags,
+		    "do not fetch all tags (--no-tags)", TAGS_UNSET),
 	OPT_BOOLEAN('k', "keep", &keep, "keep downloaded pack"),
 	OPT_BOOLEAN('u', "update-head-ok", &update_head_ok,
 		    "allow updating of HEAD ref"),
-- 
1.5.4.4.532.ga6828.dirty

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231