Skip to content

Commit 8e6237d

Browse files
committed
Merge branch 'jt/fetch-pack-trace2-filter-spec' into next
"git fetch" client logs the partial clone filter used in the trace2 output. * jt/fetch-pack-trace2-filter-spec: fetch-pack: write effective filter to trace2
2 parents 7528e87 + 1007557 commit 8e6237d

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

fetch-pack.c

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,29 @@ static void mark_tips(struct fetch_negotiator *negotiator,
293293
return;
294294
}
295295

296+
static void send_filter(struct fetch_pack_args *args,
297+
struct strbuf *req_buf,
298+
int server_supports_filter)
299+
{
300+
if (args->filter_options.choice) {
301+
const char *spec =
302+
expand_list_objects_filter_spec(&args->filter_options);
303+
if (server_supports_filter) {
304+
print_verbose(args, _("Server supports filter"));
305+
packet_buf_write(req_buf, "filter %s", spec);
306+
trace2_data_string("fetch", the_repository,
307+
"filter/effective", spec);
308+
} else {
309+
warning("filtering not recognized by server, ignoring");
310+
trace2_data_string("fetch", the_repository,
311+
"filter/unsupported", spec);
312+
}
313+
} else {
314+
trace2_data_string("fetch", the_repository,
315+
"filter/none", "");
316+
}
317+
}
318+
296319
static int find_common(struct fetch_negotiator *negotiator,
297320
struct fetch_pack_args *args,
298321
int fd[2], struct object_id *result_oid,
@@ -390,11 +413,7 @@ static int find_common(struct fetch_negotiator *negotiator,
390413
packet_buf_write(&req_buf, "deepen-not %s", s->string);
391414
}
392415
}
393-
if (server_supports_filtering && args->filter_options.choice) {
394-
const char *spec =
395-
expand_list_objects_filter_spec(&args->filter_options);
396-
packet_buf_write(&req_buf, "filter %s", spec);
397-
}
416+
send_filter(args, &req_buf, server_supports_filtering);
398417
packet_buf_flush(&req_buf);
399418
state_len = req_buf.len;
400419

@@ -1331,15 +1350,8 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
13311350
die(_("Server does not support shallow requests"));
13321351

13331352
/* Add filter */
1334-
if (server_supports_feature("fetch", "filter", 0) &&
1335-
args->filter_options.choice) {
1336-
const char *spec =
1337-
expand_list_objects_filter_spec(&args->filter_options);
1338-
print_verbose(args, _("Server supports filter"));
1339-
packet_buf_write(&req_buf, "filter %s", spec);
1340-
} else if (args->filter_options.choice) {
1341-
warning("filtering not recognized by server, ignoring");
1342-
}
1353+
send_filter(args, &req_buf,
1354+
server_supports_feature("fetch", "filter", 0));
13431355

13441356
if (server_supports_feature("fetch", "packfile-uris", 0)) {
13451357
int i;

0 commit comments

Comments
 (0)