git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/4] sparse-checkout: create 'add' subcommand

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 11, 2020, 17:05 UTC
Message-ID
<xmqqk14tvytp.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<663c40a6909ffac6650a3ee6883b3299f6b2bd90.1581433344.git.gitgitgadget@gmail.com>
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 12 quoted lines
> +	switch (m) {
> +	case ADD:
> +		if (core_sparse_checkout_cone)
> +			add_patterns_cone_mode(argc, argv, &pl);
> +		else
> +			add_patterns_literal(argc, argv, &pl);
> +		break;
> +
> +	case REPLACE:
> +		add_patterns_from_input(&pl, argc, argv);
> +		break;
> +	}

Is it just me or do readers find it irritating to see the order of the arguments seem a bit random? Those who like Pseudo-OO-in-C probably would want to consistently see &pl as the first parameter, which lets them pretend various flavours of add_patterns_*() are all "methods" to the pattern list object.

Show 10 quoted lines
> +static void add_patterns_literal(int argc, const char **argv,
> +				 struct pattern_list *pl)
> +{
> +	char *sparse_filename = get_sparse_checkout_filename();
> +	if (add_patterns_from_file_to_list(sparse_filename, "", 0,
> +					   pl, NULL))
> +		die(_("unable to load existing sparse-checkout patterns"));
> +	free(sparse_filename);
> +	add_patterns_from_input(pl, argc, argv);
> +}

It may make it easier to read the caller if this helper were replaced with one that does not add anything but just read from the existing file, i.e.

		if (core_sparse_checkout_cone)
			add_patterns_cone_mode(argc, argv, &pl);
		else {
			read_existing_patterns(&pl);
			add_patterns_from_input(&pl, argc, argv);
		}
Previous: Derrick Stolee via GitGitGadgetNext: Derrick Stolee via GitGitGadget
Message 4 of 9 in “Sparse-checkout: Add subcommand and Windows paths”
  1. 0/4 Sparse-checkout: Add subcommand and Windows pathsDerrick Stolee via GitGitGadget, Feb 11, 2020
  2. 2/4 sparse-checkout: extract pattern update from 'set' subcommandDerrick Stolee via GitGitGadget, Feb 11, 2020
  3. 3/4 sparse-checkout: create 'add' subcommandDerrick Stolee via GitGitGadget, Feb 11, 2020
  4. Junio C HamanoFeb 11, 2020
  5. 1/4 sparse-checkout: extract add_patterns_from_input()Derrick Stolee via GitGitGadget, Feb 11, 2020
  6. Junio C HamanoFeb 11, 2020
  7. 4/4 sparse-checkout: work with Windows pathsDerrick Stolee via GitGitGadget, Feb 11, 2020
  8. Junio C HamanoFeb 11, 2020
  9. Jeff KingFeb 11, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.