Merge branch 'md/list-objects-filter-combo'
The list-objects-filter API (used to create a sparse/lazy clone) learned to take a combined filter specification. * md/list-objects-filter-combo: list-objects-filter-options: make parser void list-objects-filter-options: clean up use of ALLOC_GROW list-objects-filter-options: allow mult. --filter strbuf: give URL-encoding API a char predicate fn list-objects-filter-options: make filter_spec a string_list list-objects-filter-options: move error check up list-objects-filter: implement composite filters list-objects-filter-options: always supply *errbuf list-objects-filter: put omits set in filter struct list-objects-filter: encapsulate filter components
This commit is contained in:
20
fetch-pack.c
20
fetch-pack.c
@ -338,12 +338,9 @@ static int find_common(struct fetch_negotiator *negotiator,
|
||||
}
|
||||
}
|
||||
if (server_supports_filtering && args->filter_options.choice) {
|
||||
struct strbuf expanded_filter_spec = STRBUF_INIT;
|
||||
expand_list_objects_filter_spec(&args->filter_options,
|
||||
&expanded_filter_spec);
|
||||
packet_buf_write(&req_buf, "filter %s",
|
||||
expanded_filter_spec.buf);
|
||||
strbuf_release(&expanded_filter_spec);
|
||||
const char *spec =
|
||||
expand_list_objects_filter_spec(&args->filter_options);
|
||||
packet_buf_write(&req_buf, "filter %s", spec);
|
||||
}
|
||||
packet_buf_flush(&req_buf);
|
||||
state_len = req_buf.len;
|
||||
@ -1112,7 +1109,7 @@ static int add_haves(struct fetch_negotiator *negotiator,
|
||||
}
|
||||
|
||||
static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
|
||||
const struct fetch_pack_args *args,
|
||||
struct fetch_pack_args *args,
|
||||
const struct ref *wants, struct oidset *common,
|
||||
int *haves_to_send, int *in_vain,
|
||||
int sideband_all)
|
||||
@ -1153,13 +1150,10 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
|
||||
/* Add filter */
|
||||
if (server_supports_feature("fetch", "filter", 0) &&
|
||||
args->filter_options.choice) {
|
||||
struct strbuf expanded_filter_spec = STRBUF_INIT;
|
||||
const char *spec =
|
||||
expand_list_objects_filter_spec(&args->filter_options);
|
||||
print_verbose(args, _("Server supports filter"));
|
||||
expand_list_objects_filter_spec(&args->filter_options,
|
||||
&expanded_filter_spec);
|
||||
packet_buf_write(&req_buf, "filter %s",
|
||||
expanded_filter_spec.buf);
|
||||
strbuf_release(&expanded_filter_spec);
|
||||
packet_buf_write(&req_buf, "filter %s", spec);
|
||||
} else if (args->filter_options.choice) {
|
||||
warning("filtering not recognized by server, ignoring");
|
||||
}
|
||||
|
Reference in New Issue
Block a user