On Fri, Apr 15, 2016 at 3:19 PM, David Turner <dturner@xxxxxxxxxxxxxxxx> wrote: > Allow clients to pass a "refspec" parameter through to upload-pack; > upload-pack will only advertise refs which match that refspec. > > Signed-off-by: David Turner <dturner@xxxxxxxxxxxxxxxx> > --- > diff --git a/http-backend.c b/http-backend.c > @@ -465,6 +466,14 @@ static void get_info_refs(char *arg) > argv_array_push(&argv, "--stateless-rpc"); > argv_array_push(&argv, "--advertise-refs"); > > + refspec = get_parameter("refspec"); > + if (refspec) { > + struct strbuf interesting_refs = STRBUF_INIT; > + strbuf_addstr(&interesting_refs, "--interesting-refs="); > + strbuf_addstr(&interesting_refs, refspec); > + argv_array_push(&argv, interesting_refs.buf); > + strbuf_release(&interesting_refs); > + } if (refspec) argv_array_pushf(&interesting_refs, "--interesting-refs=%s", refspec); > argv_array_push(&argv, "."); > run_service(argv.argv, 0); > argv_array_clear(&argv); > @@ -841,6 +905,19 @@ int main(int argc, char **argv) > + if (starts_with(arg, "--interesting-refs=")) { > + struct string_list_item *item; > + > + string_list_split(&interesting_refspecs, arg + 19, > + ' ', -1); > + for_each_string_list_item(item, &interesting_refspecs) { > + if (check_refname_format(item->string, > + REFNAME_REFSPEC_PATTERN)) > + die("invalid refspec %s", item->string); > + item->util = make_refspec_data(item->string); > + } > + continue; > + } Is this leaking the string list? > if (!strcmp(arg, "--stateless-rpc")) { > stateless_rpc = 1; > continue; > -- > 2.4.2.767.g62658d5-twtrsrc -- 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