MCPcopy Create free account
hub / github.com/git/git / send_one_item

Function send_one_item

parallel-checkout.c:410–448  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

408}
409
410static void send_one_item(int fd, struct parallel_checkout_item *pc_item)
411{
412 size_t len_data;
413 char *data, *variant;
414 struct pc_item_fixed_portion *fixed_portion;
415 const char *working_tree_encoding = pc_item->ca.working_tree_encoding;
416 size_t name_len = pc_item->ce->ce_namelen;
417 size_t working_tree_encoding_len = working_tree_encoding ?
418 strlen(working_tree_encoding) : 0;
419
420 /*
421 * Any changes in the calculation of the message size must also be made
422 * in is_eligible_for_parallel_checkout().
423 */
424 len_data = sizeof(struct pc_item_fixed_portion) + name_len +
425 working_tree_encoding_len;
426
427 data = xmalloc(len_data);
428
429 fixed_portion = (struct pc_item_fixed_portion *)data;
430 fixed_portion->id = pc_item->id;
431 fixed_portion->ce_mode = pc_item->ce->ce_mode;
432 fixed_portion->crlf_action = pc_item->ca.crlf_action;
433 fixed_portion->ident = pc_item->ca.ident;
434 fixed_portion->name_len = name_len;
435 fixed_portion->working_tree_encoding_len = working_tree_encoding_len;
436 oidcpy(&fixed_portion->oid, &pc_item->ce->oid);
437
438 variant = data + sizeof(*fixed_portion);
439 if (working_tree_encoding_len) {
440 memcpy(variant, working_tree_encoding, working_tree_encoding_len);
441 variant += working_tree_encoding_len;
442 }
443 memcpy(variant, pc_item->ce->name, name_len);
444
445 packet_write(fd, data, len_data);
446
447 free(data);
448}
449
450static void send_batch(int fd, size_t start, size_t nr)
451{

Callers 1

send_batchFunction · 0.85

Calls 3

oidcpyFunction · 0.85
packet_writeFunction · 0.85
xmallocFunction · 0.70

Tested by

no test coverage detected