[PATCH] fetch --all: pass --tags/--no-tags through to each remote
From: Dan Johnson <hidden>
Date: 2016-06-15 22:54:37
Subsystem:
the rest · Maintainer:
Linus Torvalds
Reported-by: Oswald Buddenhagen <redacted> Signed-off-by: Dan Johnson <redacted> --- Junio C Hamano [off-list ref] writes:
Dan Johnson [off-list ref] writes:quoted
I believe that is bad interaction with "--all" (probably a bug). If I am remembering correctly, --no-tags is internally a per-remote setting, so I'm guessing it's not getting set on all remotes here. I'll look into this more a bit later tonight. Does fetch --no-tags work when you specify a remote?Thanks.
And here it is. Apparently we just don't pass those options through. I didn't look to see if there are any other options we should consider passing through; it's quite possible there are. I also have not written a test to ensure that this doesn't break in the future. I will hopefully have time for these things tomorrow. It's getting too late for me to be able to put sentences together, so hopefully this mail comes out readable ;) builtin/fetch.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index bb9a074..c6bcbdc 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c@@ -857,6 +857,10 @@ static void add_options_to_argv(int *argc, const char **argv) argv[(*argc)++] = "--recurse-submodules"; else if (recurse_submodules == RECURSE_SUBMODULES_ON_DEMAND) argv[(*argc)++] = "--recurse-submodules=on-demand"; + if (tags == TAGS_SET) + argv[(*argc)++] = "--tags"; + else if (tags == TAGS_UNSET) + argv[(*argc)++] = "--no-tags"; if (verbosity >= 2) argv[(*argc)++] = "-v"; if (verbosity >= 1)
--
1.7.11.1.59.gbc9e7dd.dirty