Re: [PATCH v2 04/11] sparse-checkout: 'set' subcommand
From: Derrick Stolee <hidden>
Date: 2019-10-07 18:26:17
On 10/5/2019 8:30 PM, Elijah Newren wrote:
On Sat, Oct 5, 2019 at 3:44 PM Elijah Newren [off-list ref] wrote:quoted
On Thu, Sep 19, 2019 at 3:07 PM Derrick Stolee via GitGitGadget [off-list ref] wrote:quoted
+static int write_patterns_and_update(struct pattern_list *pl) +{ + char *sparse_filename; + FILE *fp; + + sparse_filename = get_sparse_checkout_filename(); + fp = fopen(sparse_filename, "w"); + write_patterns_to_file(fp, pl); + fclose(fp); + free(sparse_filename); + + clear_pattern_list(pl);It seems slightly odd that pl is passed in but cleared in this function rather than in the caller that created pl. Should this be moved to the caller, or, alternatively, a comment added to explain this side-effect for future callers of the function? The rest of the patch looked good to me.Actually, thought of something else. What if the user calls 'git sparse-checkout set ...' without first calling 'git sparse-checkout init'? Should that report an error to the user, a suggestion to follow it up with 'sparse-checkout init', or should it just call sc_set_config() behind the scenes and allow bypassing the init subcommand?
Maybe a warning would suffice. I still think the workflow of the following is most correct, and not difficult to recommend: * "git sparse-checkout init [--cone]" -OR- "git clone --sparse" * git sparse-checkout set [stuff] * git sparse-checkout disable Thanks, -Stolee