@@ -293,6 +293,29 @@ static void mark_tips(struct fetch_negotiator *negotiator,
293
293
return ;
294
294
}
295
295
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
+
296
319
static int find_common (struct fetch_negotiator * negotiator ,
297
320
struct fetch_pack_args * args ,
298
321
int fd [2 ], struct object_id * result_oid ,
@@ -390,11 +413,7 @@ static int find_common(struct fetch_negotiator *negotiator,
390
413
packet_buf_write (& req_buf , "deepen-not %s" , s -> string );
391
414
}
392
415
}
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 );
398
417
packet_buf_flush (& req_buf );
399
418
state_len = req_buf .len ;
400
419
@@ -1331,15 +1350,8 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out,
1331
1350
die (_ ("Server does not support shallow requests" ));
1332
1351
1333
1352
/* 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 ));
1343
1355
1344
1356
if (server_supports_feature ("fetch" , "packfile-uris" , 0 )) {
1345
1357
int i ;
0 commit comments