Re: [PATCH] Teach the --all option to 'git fetch'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Björn Gustavsson <bgustavsson@xxxxxxxxx> writes:

> 'git remote' is meant for managing remotes and 'git fetch' is meant
> for actually fetching data from remote repositories. Therefore, it is
> not logical that you must use 'git remote update' to fetch from
> several repositories at once. (Junio called 'git remote update'
> a "half-baked UI experiment that failed" in topic 130891 in Gmane.)

Please drop the "because I said so" part, as I made myself clear in the
message I was speaking as mere one-of-participants to the project, not as
the maintainer.

> +static int get_one_remote_for_fetch(struct remote *remote, void *priv)
> +{
> +	struct string_list *list = priv;
> +	string_list_append(remote->name, list);
> +	return 0;
> +}
> +
> +static int fetch_all(int argc)
> +{
> +...
> +	for (i = 0; i < list.nr; i++) {
> +		const char *name = list.items[i].string;
> +		argv[argc] = name;
> +		if (verbosity >= 0)
> +			printf("Fetching %s\n", name);
> +		if (run_command_v_opt(argv, RUN_GIT_CMD)) {
> +			error("Could not fetch %s", name);
> +			result = 1;
> +		}
> +	}
> +...
> +}
> +
> ...
> +int cmd_fetch(int argc, const char **argv, const char *prefix)
> +{
> +	int i;
> +
> +	/* Record the command line for the reflog */
> +	strbuf_addstr(&default_rla, "fetch");
> +	for (i = 1; i < argc; i++)
> +		strbuf_addf(&default_rla, " %s", argv[i]);
> +
> +	argc = parse_options(argc, argv, prefix,
> +			     builtin_fetch_options, builtin_fetch_usage, 0);
> +
> +	if (all) {
> +		return fetch_all(argc);
> +	} else {
> +		return fetch_one(argc, argv);
> +	}
> +}

Very nice.  I like the simplicity of this.

Hopefully after the parse_options() we can inspect the "repo" argument to
see if it names remote groups and transplant the support for that from
"remote update" codepath into this, right?
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]