Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCHv2] fetch --all: pass --tags/--no-tags through to each remote

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:54:39

Dan Johnson [off-list ref] writes:
When fetch is invoked with --all, we need to pass the tag-following
preference to each individual fetch; without this, we will always
auto-follow tags, preventing us from fetching the remote tags into a
remote-specific namespace, for example.

Reported-by: Oswald Buddenhagen <redacted>
Signed-off-by: Dan Johnson <redacted>
---
On Sat, Sep 1, 2012 at 7:22 AM, Jeff King [off-list ref] wrote:
quoted
Hmm. We allocate argv in fetch_multiple like this:

 const char *argv[12] = { "fetch", "--append" };

and then add a bunch of options to it, along with the name of the
remote. By my count, the current code can hit exactly 12 (including the
terminating NULL) if all options are set. Your patch would make it
possible to overflow. Of course, I may be miscounting since it is
extremely error-prone to figure out the right number by tracing each
possible conditional.

Maybe we should switch it to a dynamic argv_array? Like this:

 [1/2]: argv-array: add pop function
 [2/2]: fetch: use argv_array instead of hand-building arrays
This version is re-rolled to be on top of jk/argv-array, avoiding the issue of
the fixed-size array entirely. If needed, we could of course use the old
version of this patch and bump the number, but I figure this is preferable.
Thanks.  Queued.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help