{"thread":{"id":"54358","subject":"Git Test Coverage Report (v2.29.0-rc0)","startedAt":"2020-10-06T20:38:35Z","lastAt":"2020-10-06T20:49:49Z","messageCount":2,"participants":["Derrick Stolee"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"407004","messageId":"5199d2cf-debc-e6d6-e72d-2fad2b22dd58@gmail.com","threadId":"54358","inReplyTo":null,"subject":"Git Test Coverage Report (v2.29.0-rc0)","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-10-06T20:38:28Z","receivedAt":"2020-10-06T20:38:35Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"Here is the test coverage report for v2.29.0-rc0. I haven't sent a test-coverage report\nin a while due to some issues with the 'seen' branch timing out, and then I got out of\nthe habit.\n\nHere is the uncovered code introduced in v2.29.0-rc0 that was edited since v2.28.0.\n\nThanks,\n-Stolee\n\n[1] https://derrickstolee.github.io/git-test-coverage/reports/v2.29.0-rc0-commits.txt\n[2] https://derrickstolee.github.io/git-test-coverage/reports/v2.29.0-rc0.txt\n[3] https://derrickstolee.github.io/git-test-coverage/reports/v2.29.0-rc0.htm\n\n---\n\nUncovered code in 'v2.29.0-rc0' not in 'v2.28.0'\n--------------------------------------------------------\n\nCommits introducing uncovered code:\nAaron Lipman\tbe5fe200 cmd_bisect__helper: defer parsing no-checkout flag\nbuiltin/bisect--helper.c\nbe5fe200 906) res = bisect_next_all(the_repository, prefix);\n\nÆvar Arnfjörð Bjarmason\t6a83d902 coccinelle: make use of the \"type\" FREE_AND_NULL() rule\nbuiltin/fast-import.c\n6a83d902 995) FREE_AND_NULL(delta);\n\nBrandon Williams\tdebca9d2 object: rename function 'typename' to 'type_name'\nbuiltin/fast-import.c\ndebca9d2 2500) type_name(oe->type), command_buf.buf);\n\nbrian m. carlson\td7e6b6a8 fast-import: convert internal structs to struct object_id\nbuiltin/fast-import.c\nd7e6b6a8 892) fprintf(pack_edges, \" %s\",\nd7e6b6a8 893) oid_to_hex(&t->oid));\nd7e6b6a8 2639) oidcpy(&n->oid, &s->oid);\n\nbrian m. carlson\tddddf8d7 fast-import: permit reading multiple marks files\nbuiltin/fast-import.c\nddddf8d7 1145) insert_mark(marks, mark, e);\n\nbrian m. carlson\t912c13d5 fast-import: convert to struct object_id\nbuiltin/fast-import.c\n912c13d5 2471) oidcpy(&commit_oid, &s->oid);\n912c13d5 2646) } else if (!get_oid(from, &n->oid)) {\n912c13d5 2811) oidcpy(&oid, &s->oid);\n912c13d5 2939) strbuf_addf(&line, \"%s missing\\n\", oid_to_hex(oid));\n912c13d5 3045)     get_oid_hex(buf + strlen(\"object \"), oid))\n\nbrian m. carlson\t1bdca816 fast-import: add options for rewriting submodules\nbuiltin/fast-import.c\n1bdca816 2193) return -1;\n1bdca816 3068) return;\n1bdca816 3328) die_errno(\"cannot read '%s'\", f);\n\nbrian m. carlson\tcd85b447 remote-curl: make --force-with-lease work with non-ASCII ref names\nremote-curl.c\ncd85b447 130) return -1;\n\nbrian m. carlson\te6a492b7 pack: convert struct pack_idx_entry to struct object_id\nbuiltin/fast-import.c\ne6a492b7 3103) oidcpy(&oid, &e->idx.oid);\n\nbrian m. carlson\t28d055bd fast-import: make hash-size independent\nbuiltin/fast-import.c\n28d055bd 986) && (pack_size + PACK_SIZE_THRESHOLD + s.total_out) > max_packsize)\n28d055bd 1083) && (pack_size + PACK_SIZE_THRESHOLD + len) > max_packsize)\n28d055bd 2652) if (!buf || size < the_hash_algo->hexsz + 6)\n28d055bd 3044) if (size < hexsz + strlen(\"object \") ||\n\nClemens Buchacher\t98c2924c credentials: unable to connect to cache daemon\nbuiltin/credential-cache.c\n98c2924c 79) die_errno(\"unable to connect to cache daemon\");\n\nDavid Barr\t8dc6a373 fast-import: add 'ls' command\nbuiltin/fast-import.c\n8dc6a373 3033) buf = gfi_unpack_entry(oe, &size);\n8dc6a373 3047) break;\n8dc6a373 3101) if (!e)\n\nDavid Barr\t85c62395 fast-import: let importers retrieve blobs\nbuiltin/fast-import.c\n85c62395 2917) die_errno(\"Write to frontend failed\");\n85c62395 2938) strbuf_reset(&line);\n85c62395 2940) cat_blob_write(line.buf, line.len);\n85c62395 2941) strbuf_release(&line);\n85c62395 2942) free(buf);\n85c62395 2943) return;\n\nDerrick Stolee\t663b2b1b maintenance: add commit-graph task\nbuiltin/gc.c\n663b2b1b 813) return 1;\n\nDerrick Stolee\t3103e984 maintenance: initialize task array\nbuiltin/gc.c\n3103e984 933) result = 1;\n\nDerrick Stolee\td7514f6e maintenance: take a lock on the objects directory\nbuiltin/gc.c\nd7514f6e 904) if (!opts->auto_flag && !opts->quiet)\nd7514f6e 907) free(lock_path);\nd7514f6e 908) return 0;\n\nDerrick Stolee\t4ddc79b2 maintenance: add auto condition for commit-graph task\nbuiltin/gc.c\n4ddc79b2 722) static int dfs_on_ref(const char *refname,\n4ddc79b2 726) struct cg_auto_data *data = (struct cg_auto_data *)cb_data;\n4ddc79b2 727) int result = 0;\n4ddc79b2 729) struct commit_list *stack = NULL;\n4ddc79b2 732) if (!peel_ref(refname, &peeled))\n4ddc79b2 733) oid = &peeled;\n4ddc79b2 734) if (oid_object_info(the_repository, oid, NULL) != OBJ_COMMIT)\n4ddc79b2 735) return 0;\n4ddc79b2 737) commit = lookup_commit(the_repository, oid);\n4ddc79b2 738) if (!commit)\n4ddc79b2 739) return 0;\n4ddc79b2 740) if (parse_commit(commit))\n4ddc79b2 741) return 0;\n4ddc79b2 743) commit_list_append(commit, &stack);\n4ddc79b2 745) while (!result && stack) {\n4ddc79b2 748) commit = pop_commit(&stack);\n4ddc79b2 750) for (parent = commit->parents; parent; parent = parent->next) {\n4ddc79b2 751) if (parse_commit(parent->item) ||\n4ddc79b2 752)     commit_graph_position(parent->item) != COMMIT_NOT_FROM_GRAPH ||\n4ddc79b2 753)     parent->item->object.flags & SEEN)\n4ddc79b2 754) continue;\n4ddc79b2 756) parent->item->object.flags |= SEEN;\n4ddc79b2 757) data->num_not_in_graph++;\n4ddc79b2 759) if (data->num_not_in_graph >= data->limit) {\n4ddc79b2 760) result = 1;\n4ddc79b2 761) break;\n4ddc79b2 764) commit_list_append(parent->item, &stack);\n4ddc79b2 768) free_commit_list(stack);\n4ddc79b2 769) return result;\n4ddc79b2 772) static int should_write_commit_graph(void)\n4ddc79b2 777) data.num_not_in_graph = 0;\n4ddc79b2 778) data.limit = 100;\n4ddc79b2 779) git_config_get_int(\"maintenance.commit-graph.auto\",\n4ddc79b2 782) if (!data.limit)\n4ddc79b2 783) return 0;\n4ddc79b2 784) if (data.limit < 0)\n4ddc79b2 785) return 1;\n4ddc79b2 787) result = for_each_ref(dfs_on_ref, &data);\n4ddc79b2 789) clear_commit_marks_all(SEEN);\n4ddc79b2 791) return result;\n\nDmitry Ivankov\t4b4963c0 fast-import: check committer name more strictly\nbuiltin/fast-import.c\n4b4963c0 1975) if (strcmp(\"now\", ltgt))\n\nDmitry Potapov\t8db751a8 fast-import: tag may point to any object type\nbuiltin/fast-import.c\n8db751a8 2812) type = OBJ_COMMIT;\n\nElijah Newren\t3164e6bd fast-import: fix handling of deleted tags\nbuiltin/fast-import.c\n3164e6bd 2904) first_tag = t->next_tag;\n\nElijah Newren\t44c7e1a7 mem-pool: use more standard initialization and finalization\nread-cache.c\n44c7e1a7 2076) istate->ce_mem_pool = xmalloc(sizeof(*istate->ce_mem_pool));\n44c7e1a7 2077) mem_pool_init(istate->ce_mem_pool, 0);\n44c7e1a7 2106) mem_pool_init(p->ce_mem_pool,\n44c7e1a7 2109) mem_pool_init(p->ce_mem_pool,\n\nElijah Newren\tb8f50e5b fast-import: add support for new 'alias' command\nbuiltin/fast-import.c\nb8f50e5b 2623) return 0;\n\nElijah Newren\ta762c8c1 mem-pool: add convenience functions for strdup and strndup\nmem-pool.c\na762c8c1 108) char *mem_pool_strndup(struct mem_pool *pool, const char *str, size_t len)\na762c8c1 110) char *p = memchr(str, '\\0', len);\na762c8c1 111) size_t actual_len = (p ? p - str : len);\na762c8c1 112) char *ret = mem_pool_alloc(pool, actual_len+1);\na762c8c1 114) ret[actual_len] = '\\0';\na762c8c1 115) return memcpy(ret, str, actual_len);\n\nElijah Newren\tf87bf284 mem-pool: use consistent pool variable name\nmem-pool.c\nf87bf284 118) int mem_pool_contains(struct mem_pool *pool, void *mem)\nf87bf284 123) for (p = pool->mp_block; p; p = p->next_block)\n\nElijah Newren\t253fb5f8 fast-import: Improve robustness when D->F changes provided in wrong order\nbuiltin/fast-import.c\n253fb5f8 1513) return 1;\n\nElijah Newren\t7ffde293 fast-import: only allow cat-blob requests where it makes sense\nbuiltin/fast-import.c\n7ffde293 2329) parse_cat_blob(v);\n\nEmily Shaffer\t1411914a bugreport: add uname info\nbuiltin/bugreport.c\n1411914a 21) strbuf_addf(sys_info, _(\"uname() failed with error '%s' (%d)\\n\"),\n1411914a 23)     errno);\n\nEric Sunshine\tb214ab5a worktree: teach \"repair\" to fix outgoing links to worktrees\nworktree.c\nb214ab5a 663) fn = repair_noop;\n\nEric Sunshine\t59d876cc init: make --separate-git-dir work from within linked worktree\nbuiltin/init-db.c\n59d876cc 664) die_errno(_(\"cannot chdir to %s\"), mainwt.buf);\n\nEric Sunshine\t07a7f8de format-patch: use 'origin' as start of current-series-range when known\nbuiltin/log.c\n07a7f8de 1689) else if (prev_is_range)\n\nEric Wong\td9545c7f fast-import: implement unpack limit\nbuiltin/fast-import.c\nd9545c7f 827) die_errno(\"Failed seeking to start of '%s'\", p->pack_name);\nd9545c7f 3465) unpack_limit = limit;\n\nHan-Wen Nienhuys\t4441f427 refs: add GIT_TRACE_REFS debugging mechanism\nrefs/debug.c\n4441f427 22) res = xmalloc(sizeof(struct debug_ref_store));\n4441f427 23) be_copy = xmalloc(sizeof(*be_copy));\n4441f427 24) *be_copy = refs_be_debug;\n4441f427 26) be_copy->name = store->be->name;\n4441f427 27) trace_printf_key(&trace_refs, \"ref_store for %s\\n\", gitdir);\n4441f427 28) res->refs = store;\n4441f427 29) base_ref_store_init((struct ref_store *)res, be_copy);\n4441f427 30) return (struct ref_store *)res;\n4441f427 33) static int debug_init_db(struct ref_store *refs, struct strbuf *err)\n4441f427 35) struct debug_ref_store *drefs = (struct debug_ref_store *)refs;\n4441f427 36) int res = drefs->refs->be->init_db(drefs->refs, err);\n4441f427 37) trace_printf_key(&trace_refs, \"init_db: %d\\n\", res);\n4441f427 38) return res;\n4441f427 41) static int debug_transaction_prepare(struct ref_store *refs,\n4441f427 45) struct debug_ref_store *drefs = (struct debug_ref_store *)refs;\n4441f427 47) transaction->ref_store = drefs->refs;\n4441f427 48) res = drefs->refs->be->transaction_prepare(drefs->refs, transaction,\n4441f427 50) trace_printf_key(&trace_refs, \"transaction_prepare: %d\\n\", res);\n4441f427 51) return res;\n4441f427 54) static void print_update(int i, const char *refname,\n4441f427 59) char o[GIT_MAX_HEXSZ + 1] = \"null\";\n4441f427 60) char n[GIT_MAX_HEXSZ + 1] = \"null\";\n4441f427 61) if (old_oid)\n4441f427 62) oid_to_hex_r(o, old_oid);\n4441f427 63) if (new_oid)\n4441f427 64) oid_to_hex_r(n, new_oid);\n4441f427 66) type &= 0xf; /* see refs.h REF_* */\n4441f427 67) flags &= REF_HAVE_NEW | REF_HAVE_OLD | REF_NO_DEREF |\n4441f427 69) trace_printf_key(&trace_refs, \"%d: %s %s -> %s (F=0x%x, T=0x%x) \\\"%s\\\"\\n\", i, refname,\n4441f427 71) }\n4441f427 73) static void print_transaction(struct ref_transaction *transaction)\n4441f427 76) trace_printf_key(&trace_refs, \"transaction {\\n\");\n4441f427 77) for (i = 0; i < transaction->nr; i++) {\n4441f427 78) struct ref_update *u = transaction->updates[i];\n4441f427 79) print_update(i, u->refname, &u->old_oid, &u->new_oid, u->flags,\n4441f427 80)      u->type, u->msg);\n4441f427 82) trace_printf_key(&trace_refs, \"}\\n\");\n4441f427 83) }\n4441f427 85) static int debug_transaction_finish(struct ref_store *refs,\n4441f427 89) struct debug_ref_store *drefs = (struct debug_ref_store *)refs;\n4441f427 91) transaction->ref_store = drefs->refs;\n4441f427 92) res = drefs->refs->be->transaction_finish(drefs->refs, transaction,\n4441f427 94) print_transaction(transaction);\n4441f427 95) trace_printf_key(&trace_refs, \"finish: %d\\n\", res);\n4441f427 96) return res;\n4441f427 99) static int debug_transaction_abort(struct ref_store *refs,\n4441f427 103) struct debug_ref_store *drefs = (struct debug_ref_store *)refs;\n4441f427 105) transaction->ref_store = drefs->refs;\n4441f427 106) res = drefs->refs->be->transaction_abort(drefs->refs, transaction, err);\n4441f427 107) return res;\n4441f427 110) static int debug_initial_transaction_commit(struct ref_store *refs,\n4441f427 114) struct debug_ref_store *drefs = (struct debug_ref_store *)refs;\n4441f427 116) transaction->ref_store = drefs->refs;\n4441f427 117) res = drefs->refs->be->initial_transaction_commit(drefs->refs,\n4441f427 119) return res;\n4441f427 122) static int debug_pack_refs(struct ref_store *ref_store, unsigned int flags)\n4441f427 124) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 125) int res = drefs->refs->be->pack_refs(drefs->refs, flags);\n4441f427 126) trace_printf_key(&trace_refs, \"pack_refs: %d\\n\", res);\n4441f427 127) return res;\n4441f427 130) static int debug_create_symref(struct ref_store *ref_store,\n4441f427 134) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 135) int res = drefs->refs->be->create_symref(drefs->refs, ref_name, target,\n4441f427 137) trace_printf_key(&trace_refs, \"create_symref: %s -> %s \\\"%s\\\": %d\\n\", ref_name,\n4441f427 139) return res;\n4441f427 142) static int debug_delete_refs(struct ref_store *ref_store, const char *msg,\n4441f427 145) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 146) int res =\n4441f427 147) drefs->refs->be->delete_refs(drefs->refs, msg, refnames, flags);\n4441f427 149) trace_printf_key(&trace_refs, \"delete_refs {\\n\");\n4441f427 150) for (i = 0; i < refnames->nr; i++)\n4441f427 151) trace_printf_key(&trace_refs, \"%s\\n\", refnames->items[i].string);\n4441f427 152) trace_printf_key(&trace_refs, \"}: %d\\n\", res);\n4441f427 153) return res;\n4441f427 156) static int debug_rename_ref(struct ref_store *ref_store, const char *oldref,\n4441f427 159) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 160) int res = drefs->refs->be->rename_ref(drefs->refs, oldref, newref,\n4441f427 162) trace_printf_key(&trace_refs, \"rename_ref: %s -> %s \\\"%s\\\": %d\\n\", oldref, newref,\n4441f427 164) return res;\n4441f427 167) static int debug_copy_ref(struct ref_store *ref_store, const char *oldref,\n4441f427 170) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 171) int res =\n4441f427 172) drefs->refs->be->copy_ref(drefs->refs, oldref, newref, logmsg);\n4441f427 173) trace_printf_key(&trace_refs, \"copy_ref: %s -> %s \\\"%s\\\": %d\\n\", oldref, newref,\n4441f427 175) return res;\n4441f427 183) static int debug_ref_iterator_advance(struct ref_iterator *ref_iterator)\n4441f427 185) struct debug_ref_iterator *diter =\n4441f427 187) int res = diter->iter->vtable->advance(diter->iter);\n4441f427 188) if (res)\n4441f427 189) trace_printf_key(&trace_refs, \"iterator_advance: (%d)\\n\", res);\n4441f427 191) trace_printf_key(&trace_refs, \"iterator_advance: %s (0)\\n\",\n4441f427 194) diter->base.ordered = diter->iter->ordered;\n4441f427 195) diter->base.refname = diter->iter->refname;\n4441f427 196) diter->base.oid = diter->iter->oid;\n4441f427 197) diter->base.flags = diter->iter->flags;\n4441f427 198) return res;\n4441f427 201) static int debug_ref_iterator_peel(struct ref_iterator *ref_iterator,\n4441f427 204) struct debug_ref_iterator *diter =\n4441f427 206) int res = diter->iter->vtable->peel(diter->iter, peeled);\n4441f427 207) trace_printf_key(&trace_refs, \"iterator_peel: %s: %d\\n\", diter->iter->refname, res);\n4441f427 208) return res;\n4441f427 211) static int debug_ref_iterator_abort(struct ref_iterator *ref_iterator)\n4441f427 213) struct debug_ref_iterator *diter =\n4441f427 215) int res = diter->iter->vtable->abort(diter->iter);\n4441f427 216) trace_printf_key(&trace_refs, \"iterator_abort: %d\\n\", res);\n4441f427 217) return res;\n4441f427 226) debug_ref_iterator_begin(struct ref_store *ref_store, const char *prefix,\n4441f427 229) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 230) struct ref_iterator *res =\n4441f427 231) drefs->refs->be->iterator_begin(drefs->refs, prefix, flags);\n4441f427 232) struct debug_ref_iterator *diter = xcalloc(1, sizeof(*diter));\n4441f427 233) base_ref_iterator_init(&diter->base, &debug_ref_iterator_vtable, 1);\n4441f427 234) diter->iter = res;\n4441f427 235) trace_printf_key(&trace_refs, \"ref_iterator_begin: %s (0x%x)\\n\", prefix, flags);\n4441f427 236) return &diter->base;\n4441f427 239) static int debug_read_raw_ref(struct ref_store *ref_store, const char *refname,\n4441f427 243) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 244) int res = 0;\n4441f427 246) oidcpy(oid, &null_oid);\n4441f427 247) res = drefs->refs->be->read_raw_ref(drefs->refs, refname, oid, referent,\n4441f427 250) if (res == 0) {\n4441f427 251) trace_printf_key(&trace_refs, \"read_raw_ref: %s: %s (=> %s) type %x: %d\\n\",\n4441f427 254) trace_printf_key(&trace_refs, \"read_raw_ref: %s: %d\\n\", refname, res);\n4441f427 256) return res;\n4441f427 260) debug_reflog_iterator_begin(struct ref_store *ref_store)\n4441f427 262) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 263) struct ref_iterator *res =\n4441f427 264) drefs->refs->be->reflog_iterator_begin(drefs->refs);\n4441f427 265) trace_printf_key(&trace_refs, \"for_each_reflog_iterator_begin\\n\");\n4441f427 266) return res;\n4441f427 275) static int debug_print_reflog_ent(struct object_id *old_oid,\n4441f427 280) struct debug_reflog *dbg = (struct debug_reflog *)cb_data;\n4441f427 282) char o[GIT_MAX_HEXSZ + 1] = \"null\";\n4441f427 283) char n[GIT_MAX_HEXSZ + 1] = \"null\";\n4441f427 284) if (old_oid)\n4441f427 285) oid_to_hex_r(o, old_oid);\n4441f427 286) if (new_oid)\n4441f427 287) oid_to_hex_r(n, new_oid);\n4441f427 289) ret = dbg->fn(old_oid, new_oid, committer, timestamp, tz, msg,\n4441f427 291) trace_printf_key(&trace_refs, \"reflog_ent %s (ret %d): %s -> %s, %s %ld \\\"%s\\\"\\n\",\n4441f427 293) return ret;\n4441f427 296) static int debug_for_each_reflog_ent(struct ref_store *ref_store,\n4441f427 300) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 301) struct debug_reflog dbg = {\n4441f427 307) int res = drefs->refs->be->for_each_reflog_ent(\n4441f427 309) trace_printf_key(&trace_refs, \"for_each_reflog: %s: %d\\n\", refname, res);\n4441f427 310) return res;\n4441f427 313) static int debug_for_each_reflog_ent_reverse(struct ref_store *ref_store,\n4441f427 318) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 319) struct debug_reflog dbg = {\n4441f427 324) int res = drefs->refs->be->for_each_reflog_ent_reverse(\n4441f427 326) trace_printf_key(&trace_refs, \"for_each_reflog_reverse: %s: %d\\n\", refname, res);\n4441f427 327) return res;\n4441f427 330) static int debug_reflog_exists(struct ref_store *ref_store, const char *refname)\n4441f427 332) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 333) int res = drefs->refs->be->reflog_exists(drefs->refs, refname);\n4441f427 334) trace_printf_key(&trace_refs, \"reflog_exists: %s: %d\\n\", refname, res);\n4441f427 335) return res;\n4441f427 338) static int debug_create_reflog(struct ref_store *ref_store, const char *refname,\n4441f427 341) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 342) int res = drefs->refs->be->create_reflog(drefs->refs, refname,\n4441f427 344) trace_printf_key(&trace_refs, \"create_reflog: %s: %d\\n\", refname, res);\n4441f427 345) return res;\n4441f427 348) static int debug_delete_reflog(struct ref_store *ref_store, const char *refname)\n4441f427 350) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 351) int res = drefs->refs->be->delete_reflog(drefs->refs, refname);\n4441f427 352) trace_printf_key(&trace_refs, \"delete_reflog: %s: %d\\n\", refname, res);\n4441f427 353) return res;\n4441f427 356) static int debug_reflog_expire(struct ref_store *ref_store, const char *refname,\n4441f427 363) struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;\n4441f427 364) int res = drefs->refs->be->reflog_expire(drefs->refs, refname, oid,\n4441f427 368) trace_printf_key(&trace_refs, \"reflog_expire: %s: %d\\n\", refname, res);\n4441f427 369) return res;\n\nHariom Verma\tb82445dc ref-filter: support different email formats\nref-filter.c\nb82445dc 398) return strbuf_addf_ret(err, -1, _(\"unrecognized email option: %s\"), arg);\nb82445dc 1087) eoemail = strchr(email, '>');\n\nHariom Verma\te7601eb5 ref-filter: modify error messages in `grab_objectname()`\nref-filter.c\ne7601eb5 384) return strbuf_addf_ret(err, -1, _(\"unrecognized argument '%s' in %%(%s)\"), arg, atom->name);\n\nHariom Verma\t2c22e102 ref-filter: 'contents:trailers' show error if `:` is missing\nref-filter.c\n2c22e102 356) return -1;\n\nHariom Verma\t905f0a4e ref-filter: add `sanitize` option for 'subject' atom\nref-filter.c\n905f0a4e 309) return strbuf_addf_ret(err, -1, _(\"unrecognized %%(subject) argument: %s\"), arg);\n\nHariom Verma\t47d4676a pretty: refactor `format_sanitized_subject()`\npretty.c\n47d4676a 857) i++;\n\nHariom Verma\t26bc0aaf ref-filter: add `short` modifier to 'parent' atom\nref-filter.c\n26bc0aaf 1023) struct object_id *oid = &parents->item->object.oid;\n26bc0aaf 1026) strbuf_addstr(&s, do_grab_oid(\"parent\", oid, &used_atom[i]));\n\nJacob Keller\t7efba5fa format-patch: teach format.useAutoBase \"whenAble\" option\nbuiltin/log.c\n7efba5fa 1505) if (die_on_failure)\n7efba5fa 1524) if (die_on_failure)\n7efba5fa 1529) return NULL;\n7efba5fa 1547) if (die_on_failure) {\n7efba5fa 1550) free(rev);\n7efba5fa 1551) return NULL;\n7efba5fa 1567) free(rev);\n7efba5fa 1568) return NULL;\n7efba5fa 1577) free(rev);\n7efba5fa 1578) return NULL;\n\nJacob Keller\tc0192df6 refspec: add support for negative refspecs\nrefspec.c\nc0192df6 45) return 0;\nc0192df6 87) return 0; /* negative refspecs must not be empty */\nc0192df6 93) return 0;\n\nremote.c\nc0192df6 812) return -1;\n\nJeff King\tf5e3c0b9 credential-cache: close stderr in daemon process\nbuiltin/credential-cache--daemon.c\nf5e3c0b9 216) die_errno(\"unable to point stderr to /dev/null\");\n\nJeff King\td8410a81 fast-import: replace custom hash with hashmap.c\nbuiltin/fast-import.c\nd8410a81 60) e2 = container_of(entry_or_key, const struct object_entry, ent);\nd8410a81 61) return oidcmp(&e1->idx.oid, &e2->idx.oid);\n\nJeff King\tc33ddc2e date: use strbufs in date-formatting functions\nbuiltin/fast-import.c\nc33ddc2e 1977) datestamp(&ident);\n\nJeff King\t22f9b7f3 strvec: convert builtin/ callers away from argv_array name\nbuiltin/am.c\n22f9b7f3 1697) strvec_push(&cp.args, am_path(state, \"patch\"));\n\nbuiltin/bisect--helper.c\n22f9b7f3 228) strvec_clear(&argv);\n\nbuiltin/bundle.c\n22f9b7f3 89) strvec_push(&pack_opts, \"--progress\");\n22f9b7f3 91) strvec_push(&pack_opts, \"--all-progress\");\n22f9b7f3 93) strvec_push(&pack_opts, \"--all-progress-implied\");\n\nbuiltin/clone.c\n22f9b7f3 832) strvec_push(&args, \"--progress\");\n\nbuiltin/describe.c\n22f9b7f3 604) strvec_push(&args, \"--always\");\n\nbuiltin/fetch.c\n22f9b7f3 1562) strvec_push(argv, \"-v\");\n\nbuiltin/gc.c\n22f9b7f3 580) strvec_push(&repack, \"-f\");\n22f9b7f3 582) strvec_pushf(&repack, \"--depth=%d\", aggressive_depth);\n22f9b7f3 584) strvec_pushf(&repack, \"--window=%d\", aggressive_window);\n\nbuiltin/pull.c\n22f9b7f3 534) strvec_push(&args, opt_progress);\n22f9b7f3 540) strvec_push(&args, opt_append);\n22f9b7f3 542) strvec_push(&args, opt_upload_pack);\n22f9b7f3 547) strvec_push(&args, opt_prune);\n22f9b7f3 557) strvec_push(&args, \"--recurse-submodules=on-demand\");\n22f9b7f3 563) strvec_push(&args, max_children);\n22f9b7f3 567) strvec_push(&args, opt_keep);\n22f9b7f3 571) strvec_push(&args, opt_unshallow);\n22f9b7f3 573) strvec_push(&args, opt_update_shallow);\n22f9b7f3 575) strvec_push(&args, opt_refmap);\n22f9b7f3 577) strvec_push(&args, opt_ipv4);\n22f9b7f3 579) strvec_push(&args, opt_ipv6);\n22f9b7f3 581) strvec_push(&args, \"--show-forced-updates\");\n22f9b7f3 583) strvec_push(&args, \"--no-show-forced-updates\");\n22f9b7f3 672) strvec_push(&args, opt_progress);\n22f9b7f3 676) strvec_push(&args, opt_diffstat);\n22f9b7f3 682) strvec_push(&args, opt_squash);\n22f9b7f3 684) strvec_push(&args, opt_commit);\n22f9b7f3 686) strvec_push(&args, opt_edit);\n22f9b7f3 688) strvec_pushf(&args, \"--cleanup=%s\", cleanup_arg);\n22f9b7f3 696) strvec_push(&args, opt_gpg_sign);\n22f9b7f3 877) strvec_push(&args, \"--rebase-merges\");\n22f9b7f3 883) strvec_push(&args, opt_diffstat);\n22f9b7f3 887) strvec_push(&args, opt_gpg_sign);\n22f9b7f3 889) strvec_push(&args, \"--no-autostash\");\n\nbuiltin/rebase.c\n22f9b7f3 826) strvec_push(&am.args, opts->gpg_sign_opt);\n22f9b7f3 861) strvec_clear(&am.args);\n22f9b7f3 872) strvec_split(&format_patch.args,\n22f9b7f3 883) strvec_clear(&am.args);\n22f9b7f3 905) strvec_clear(&am.args);\n22f9b7f3 914) strvec_push(&am.args, \"--rerere-autoupdate\");\n22f9b7f3 916) strvec_push(&am.args, \"--no-rerere-autoupdate\");\n22f9b7f3 918) strvec_push(&am.args, opts->gpg_sign_opt);\n\nbuiltin/receive-pack.c\n22f9b7f3 782) strvec_pushf(&proc->env_array,\n22f9b7f3 826) strvec_pushf(&proc.env_array, \"GIT_PUSH_OPTION_COUNT\");\n22f9b7f3 2202) strvec_push(&child.args, \"--show-resolving-progress\");\n\nbuiltin/remote.c\n22f9b7f3 1467) strvec_push(&fetch_argv, \"-v\");\n\nbuiltin/repack.c\n22f9b7f3 162) strvec_pushf(&cmd->args, \"--window=%s\", args->window);\n22f9b7f3 164) strvec_pushf(&cmd->args, \"--window-memory=%s\", args->window_memory);\n22f9b7f3 166) strvec_pushf(&cmd->args, \"--depth=%s\", args->depth);\n22f9b7f3 168) strvec_pushf(&cmd->args, \"--threads=%s\", args->threads);\n22f9b7f3 170) strvec_pushf(&cmd->args, \"--max-pack-size=%s\", args->max_pack_size);\n22f9b7f3 174) strvec_pushf(&cmd->args, \"--no-reuse-object\");\n\nbuiltin/replace.c\n22f9b7f3 234) strvec_push(&cmd.args, type_name(type));\n\nbuiltin/submodule--helper.c\n22f9b7f3 859) strvec_push(&cpr.args, \"--quiet\");\n22f9b7f3 1454) strvec_push(&cpr.args, \"--quiet\");\n22f9b7f3 2147) strvec_push(&child->args, \"--progress\");\n22f9b7f3 2151) strvec_pushl(&child->args, \"--prefix\", suc->prefix, NULL);\n\nbuiltin/worktree.c\n22f9b7f3 626) strvec_push(&cp.args, \"--quiet\");\n\nJeff King\t47beb37b shortlog: match commit trailers with --group\nbuiltin/shortlog.c\n47beb37b 243) return;\n\nJeff King\tfe4a0a28 argv-array: add pop function\nstrvec.c\nfe4a0a28 63) return;\n\nJeff King\tf17b0b99 shortlog: de-duplicate trailer values\nbuiltin/shortlog.c\nf17b0b99 194) b = container_of(entry_or_key, const struct strset_item, ent);\nf17b0b99 195) return strcmp(a->value, b->value);\n\nJeff King\t63d24fa0 shortlog: allow multiple groups to be specified\nbuiltin/shortlog.c\n63d24fa0 303)     !strset_check_and_add(&dups, ident.buf))\n\nJeff King\t01968302 fast-import: delay creating leading directories for export-marks\nbuiltin/fast-import.c\n01968302 1692) failure |= error_errno(\"unable to create leading directories of %s\",\n01968302 1694) return;\n\nJeff King\tec91ffca verify_repository_format(): complain about new extensions in v0 repo\nsetup.c\nec91ffca 472) return config_error_nonbool(var);\nec91ffca 517) return -1;\nec91ffca 526) return -1;\n\nJeff King\tfcd12db6 prefer git_pathdup to git_path in some possibly-dangerous cases\nbuiltin/fast-import.c\nfcd12db6 321) free(loc);\n\nJeff King\td70a9eb6 strvec: rename struct fields\ndaemon.c\nd70a9eb6 495) strvec_pushv(&cld.env_array, env->v);\n\nrun-command.c\nd70a9eb6 852) execve(argv.v[0], (char *const *) argv.v,\n\nt/helper/test-run-command.c\nd70a9eb6 251) arg_offset = args.nr;\nd70a9eb6 278) cp.argv = args.v;\nd70a9eb6 284) const char *arg = args.v[j + arg_offset];\nd70a9eb6 301) (int)j, args.v[j + arg_offset]);\n\nJeff King\t8d2aa8df assert PARSE_OPT_NONEG in parse-options callbacks\nparse-options-cb.c\n8d2aa8df 108) BUG_ON_OPT_NEG(unset);\n\nJeff King\tb992657e argv-array: add detach function\nstrvec.c\nb992657e 103) return xcalloc(1, sizeof(const char *));\n\nJeff King\t3c078b9c fast-import: clean up pack_data pointer in end_packfile\nbuiltin/fast-import.c\n3c078b9c 844) return;\n\nJeff King\tef8d7ac4 strvec: convert more callers away from argv_array name\ncolumn.c\nef8d7ac4 372) strvec_pushf(argv, \"--width=%d\", opts->width);\nef8d7ac4 374) strvec_pushf(argv, \"--indent=%s\", opts->indent);\n\ncompat/terminal.c\nef8d7ac4 276) strvec_pushl(&cp.args, \"infocmp\", \"-L\", \"-1\", NULL);\n\nconnect.c\nef8d7ac4 1236) strvec_push(args, \"-6\");\n\ndaemon.c\nef8d7ac4 490) static int upload_archive(const struct strvec *env)\nef8d7ac4 493) strvec_push(&cld.args, \"upload-archive\");\nef8d7ac4 803) strvec_clear(&env);\nef8d7ac4 924) strvec_pushf(&cld.env_array, \"REMOTE_ADDR=[%s]\", buf);\nef8d7ac4 925) strvec_pushf(&cld.env_array, \"REMOTE_PORT=%d\",\n\nexec-cmd.c\nef8d7ac4 342) strvec_clear(&nargv);\n\nimap-send.c\nef8d7ac4 979) strvec_push(&tunnel.args, srvc->tunnel);\n\nJeff King\t957876f1 combine-diff: handle --find-object in multitree code path\ncombine-diff.c\n957876f1 1464) return 0;\n957876f1 1482) free(p);\n\nJeff King\te2770979 credentials: add \"cache\" helper\nbuiltin/credential-cache--daemon.c\ne2770979 89) return 0;\ne2770979 113) return -1;\ne2770979 169) return 0;\ne2770979 174) if (errno != EINTR)\ne2770979 175) die_errno(\"poll failed\");\ne2770979 176) return 1;\ne2770979 186) return 1;\ne2770979 191) close(client);\ne2770979 192) return 1;\ne2770979 210) die_errno(\"unable to bind to '%s'\", socket_path);\ne2770979 222) close(fd);\ne2770979 223) }\ne2770979 299) return 0;\n\nbuiltin/credential-cache.c\ne2770979 23) die_errno(\"unable to write to cache daemon\");\ne2770979 34) die_errno(\"read error from cache daemon\");\ne2770979 56) die_errno(\"unable to start cache daemon\");\ne2770979 59) die_errno(\"unable to read result code from cache daemon\");\ne2770979 74) die_errno(\"unable to relay credential\");\n\nJeff King\t6479ea4a xrealloc: do not reuse pointer freed by zero-length realloc()\nwrapper.c\n6479ea4a 121) free(ptr);\n6479ea4a 122) return xmalloc(0);\n\nJeff King\tf0939a0e trailer: add interface for iterating over commit trailers\ntrailer.c\nf0939a0e 1204) continue; /* not a real trailer */\n\nJeff King\tae021d87 use skip_prefix to avoid magic numbers\nbuiltin/fast-import.c\nae021d87 3337) if (!git_parse_ulong(option, &v))\n\nJeff King\t8ec6c8d7 credential-cache: report more daemon connection errors\nbuiltin/credential-cache.c\n8ec6c8d7 83) die_errno(\"unable to connect to cache daemon\");\n\nJeff King\t71e1b4b6 credentials: add \"store\" helper\nbuiltin/credential-store.c\n71e1b4b6 22) die_errno(\"unable to open %s\", fn);\n71e1b4b6 62) die_errno(\"unable to get credential storage lock\");\n\nJeff King\tc972bf4c strvec: convert remaining callers away from argv_array name\nmidx.c\nc972bf4c 1441) strvec_push(&cmd.args, \"--delta-islands\");\n\npager.c\nc972bf4c 71) static void setup_pager_env(struct strvec *env)\nc972bf4c 91) strvec_push(env, argv[i]);\nc972bf4c 100) strvec_push(&pager_process->args, pager);\nc972bf4c 129) strvec_push(&pager_process.env_array, \"GIT_PAGER_IN_USE\");\n\nremote-curl.c\nc972bf4c 1157) strvec_pushl(&args, \"-v\", \"-v\", NULL);\nc972bf4c 1163) strvec_push(&args, \"--update-shallow\");\nc972bf4c 1169) strvec_pushf(&args, \"--shallow-since=%s\", options.deepen_since);\nc972bf4c 1171) strvec_pushf(&args, \"--shallow-exclude=%s\",\nc972bf4c 1174) strvec_push(&args, \"--deepen-relative\");\nc972bf4c 1176) strvec_push(&args, \"--from-promisor\");\nc972bf4c 1178) strvec_pushf(&args, \"--filter=%s\", options.filter);\nc972bf4c 1274) strvec_push(&child.args, \"--dry-run\");\nc972bf4c 1302) strvec_push(&args, \"--dry-run\");\nc972bf4c 1306) strvec_push(&args, \"--signed=if-asked\");\nc972bf4c 1310) strvec_push(&args, \"--quiet\");\n\nsequencer.c\nc972bf4c 3680) strvec_push(&cmd.args, opts->gpg_sign);\n\nsubmodule.c\nc972bf4c 690) strvec_pushf(&cp.args, \"--src-prefix=%s%s/\",\nc972bf4c 692) strvec_pushf(&cp.args, \"--dst-prefix=%s%s/\",\nc972bf4c 1790) strvec_push(&cp.args, \"-uno\");\nc972bf4c 1795) strvec_push(&cp.args, \"--ignored\");\n\nt/helper/test-run-command.c\nc972bf4c 75) strvec_pushl(&cp->args, \"sh\", test, NULL);\nc972bf4c 77) strvec_push(&cp->args, \"--quiet\");\nc972bf4c 79) strvec_push(&cp->args, \"-i\");\nc972bf4c 81) strvec_push(&cp->args, \"-v\");\nc972bf4c 83) strvec_push(&cp->args, \"-V\");\nc972bf4c 85) strvec_push(&cp->args, \"-x\");\nc972bf4c 87) strvec_push(&cp->args, \"--write-junit-xml\");\nc972bf4c 223) struct strvec args = STRVEC_INIT;\nc972bf4c 244) strvec_clear(&args);\nc972bf4c 246) strvec_pushl(&args, \"sh\", \"-c\",\nc972bf4c 249) strvec_pushl(&args, \"test-tool\", \"run-command\",\nc972bf4c 257) strvec_push(&args, argv[j]);\nc972bf4c 271) strvec_push(&args, buf);\nc972bf4c 304) strvec_clear(&args);\nc972bf4c 314) strvec_clear(&args);\nc972bf4c 341) strvec_pushl(&cp.args,\n\ntmp-objdir.c\nc972bf4c 102) strvec_pushf(env, \"%s=%s%c%s\", key, old, PATH_SEP, val);\n\ntransport-helper.c\nc972bf4c 448) strvec_pushf(&fastimport->args, \"--cat-blob-fd=%d\", cat_blob_fd);\n\nupload-pack.c\nc972bf4c 309) strvec_pushf(&pack_objects.args, \"--filter=%s\", buf.buf);\n\nJeff King\tfbff95b6 index-pack: adjust default threading cap\nbuiltin/index-pack.c\nfbff95b6 1855) else if (nr_threads < 6)\nfbff95b6 1856) nr_threads = 3; /* historic cap */\nfbff95b6 1857) else if (nr_threads < 40)\nfbff95b6 1858) nr_threads /= 2;\nfbff95b6 1860) nr_threads = 20; /* hard cap */\n\nJeff King\te885a84f drop unused argc parameters\nt/helper/test-submodule-nested-repo-config.c\ne885a84f 4) static void die_usage(const char **argv, const char *msg)\ne885a84f 17) die_usage(argv, \"Wrong number of arguments.\");\ne885a84f 23) die_usage(argv, \"Submodule not found.\");\n\nJeff King\tf6d8942b strvec: fix indentation in renamed calls\nbuiltin/rebase.c\nf6d8942b 873)      opts->git_format_patch_opt.buf);\n\ndaemon.c\nf6d8942b 926)      ntohs(sin6_addr->sin6_port));\n\nremote-curl.c\nf6d8942b 1172)      options.deepen_not.items[i].string);\n\nJiang Xin\t63518a57 New capability \"report-status-v2\" for git-push\nsend-pack.c\n63518a57 183) if (!once++)\n63518a57 185) ret = -1;\n63518a57 186) continue;\n63518a57 223) ret = -1;\n63518a57 224) break;\n63518a57 241)     hint->status != REF_STATUS_OK &&\n63518a57 242)     hint->status != REF_STATUS_REMOTE_REJECT) {\n63518a57 440) else if (server_supports(\"report-status\"))\n\ntransport-helper.c\n63518a57 839) state->hint = find_ref_by_name(remote_refs, refname);\n63518a57 895) continue;\n63518a57 900) for (report = ref->report; report; report = report->next) {\n63518a57 901) private = apply_refspecs(&data->rs,\n63518a57 902)  report->ref_name\n63518a57 905) if (!private)\n63518a57 906) continue;\n63518a57 907) update_ref(\"update by helper\", private,\n63518a57 908)    report->new_oid\n63518a57 912) free(private);\n\nJiang Xin\t31e8595a receive-pack: new config receive.procReceiveRefs\nbuiltin/receive-pack.c\n31e8595a 246) return config_error_nonbool(var);\n31e8595a 394) return 0;\n31e8595a 1911) continue;\n\nJiang Xin\t15d3af5e receive-pack: add new proc-receive hook\nbuiltin/receive-pack.c\n15d3af5e 1124) return code;\n15d3af5e 1132) if (use_sideband)\n15d3af5e 1133) finish_async(&muxer);\n15d3af5e 1134) return code;\n\nt/helper/test-proc-receive.c\n15d3af5e 136) usage_msg_opt(\"Too many arguments.\", proc_receive_usage, options);\n\nJim Meyering\t5a7b1b57 fast-import: Don't use a maybe-clobbered errno value\nbuiltin/fast-import.c\n5a7b1b57 1705) int saved_errno = errno;\n\nJohan Herland\ta8dd2e7d fast-import: Add support for importing commit notes\nbuiltin/fast-import.c\na8dd2e7d 2504) if (type < 0)\na8dd2e7d 2506) if (type != OBJ_BLOB)\n\nJohannes Schindelin\t40db58b8 fast-import: Fix compile warnings\nbuiltin/fast-import.c\n40db58b8 1892) (unsigned long)(length - n));\n\nJohannes Schindelin\tc5aa6db6 argv_array: offer to split a string by whitespace\nstrvec.c\nc5aa6db6 72) to_split++;\n\nJon Griffiths\ta6e5e286 credential-cache--daemon: refactor check_socket_directory\nbuiltin/credential-cache--daemon.c\na6e5e286 247) die_errno(\"unable to create directories for '%s'\", dir);\na6e5e286 249) die_errno(\"unable to mkdir '%s'\", dir);\n\nJonathan Nieder\tdc01f59d fast-import: treat SIGUSR1 as a request to access objects early\nbuiltin/fast-import.c\ndc01f59d 430) static void checkpoint_signal(int signo)\ndc01f59d 432) checkpoint_requested = 1;\ndc01f59d 433) }\n\nJonathan Nieder\t5edde510 fast-import: filemodify after M 040000 <tree> \"\" crashes\nbuiltin/fast-import.c\n5edde510 1495) load_tree(root);\n\nJonathan Nieder\tc27e559d fast-import: leakfix for 'ls' of dirty trees\nbuiltin/fast-import.c\nc27e559d 3182) release_tree_content_recursive(leaf.tree);\n\nJonathan Tan\tf08cbf60 index-pack: make quantum of work smaller\nbuiltin/index-pack.c\nf08cbf60 424) list_for_each_prev(pos, &done_head) {\nf08cbf60 425) struct base_data *b = list_entry(pos, struct base_data, list);\nf08cbf60 426) if (b->retain_data || b == retain)\nf08cbf60 427) continue;\nf08cbf60 428) if (b->data) {\nf08cbf60 429) free_base_data(b);\nf08cbf60 430) if (base_cache_used <= base_cache_limit)\nf08cbf60 431) return;\nf08cbf60 435) list_for_each_prev(pos, &work_head) {\nf08cbf60 436) struct base_data *b = list_entry(pos, struct base_data, list);\nf08cbf60 437) if (b->retain_data || b == retain)\nf08cbf60 438) continue;\nf08cbf60 439) if (b->data) {\nf08cbf60 440) free_base_data(b);\nf08cbf60 441) if (base_cache_used <= base_cache_limit)\nf08cbf60 442) return;\nf08cbf60 925) base_cache_used += c->size;\nf08cbf60 941) base_cache_used += c->size;\n\nJonathan Tan\tee47243d pack-objects: no fetch when allow-{any,promisor}\nbuiltin/pack-objects.c\nee47243d 3065) if (!has_object(the_repository, &obj->oid, 0) && is_promisor_object(&obj->oid))\n\nJonathan Tan\tf24c30e0 wt-status: tolerate dangling marks\nbuiltin/show-branch.c\nf24c30e0 744) if (!dwim_ref(*av, strlen(*av), &oid, &ref, 0))\n\nJonathan Tan\t1d8d9cb6 sha1-file: introduce no-lazy-fetch has_object()\nsha1-file.c\n1d8d9cb6 2000) return 0;\n\nJonathan Tan\t7ca3c0ac promisor-remote: lazy-fetch objects in subprocess\npromisor-remote.c\n7ca3c0ac 35) die_errno(_(\"promisor-remote: could not write to fetch subprocess\"));\n7ca3c0ac 37) die_errno(_(\"promisor-remote: could not write to fetch subprocess\"));\n7ca3c0ac 41) die_errno(_(\"promisor-remote: could not close stdin to fetch subprocess\"));\n\nJonathan Tan\tcbe566a0 negotiator/noop: add noop fetch negotiator\nnegotiator/noop.c\ncbe566a0 6) static void known_common(struct fetch_negotiator *n, struct commit *c)\ncbe566a0 9) }\ncbe566a0 21) static int ack(struct fetch_negotiator *n, struct commit *c)\n\nJonathan Tan\t5c3b801d fetch-pack: do not lazy-fetch during ref iteration\nfetch-pack.c\n5c3b801d 126) return NULL;\n\nJonathan Tan\te5b94213 fetch: avoid reading submodule config until needed\nsubmodule-config.c\ne5b94213 780) if (config->max_children)\ne5b94213 781) *(config->max_children) =\ne5b94213 782) parse_submodule_fetchjobs(var, value);\ne5b94213 785) if (config->recurse_submodules)\ne5b94213 786) *(config->recurse_submodules) =\ne5b94213 787) parse_fetch_recurse_submodules_arg(var, value);\n\nJunio C Hamano\t6c526148 csum-file: introduce sha1file_checkpoint\nbuiltin/fast-import.c\n6c526148 1157) truncate_pack(&checkpoint);\n\nJunio C Hamano\te0ad9574 Merge branch 'bc/sha-256-part-3'\nbuiltin/verify-pack.c\ne0ad9574 22) strvec_push(argv, \"--verify-stat-only\");\n\nsetup.c\ne0ad9574 497) return config_error_nonbool(var);\n\nJunio C Hamano\t6854689e Merge branch 'ar/fetch-ipversion-in-all'\nbuiltin/fetch.c\n6854689e 1568) strvec_push(argv, \"--ipv4\");\n6854689e 1570) strvec_push(argv, \"--ipv6\");\n\nJunio C Hamano\tebcfb379 write_idx_file: introduce a struct to hold idx customization options\nbuiltin/fast-import.c\nebcfb379 3455) if (pack_idx_opts.version > 2)\n\nJunio C Hamano\t9ed104e5 ident: say whose identity is missing when giving user.name hint\nident.c\n9ed104e5 359) break;\n9ed104e5 401) ident_env_hint(whose_ident);\n9ed104e5 418) ident_env_hint(whose_ident);\n9ed104e5 424) ident_env_hint(whose_ident);\n\nJunio C Hamano\t55bb5c91 zlib: wrap deflate side of the API\nbuiltin/fast-import.c\n55bb5c91 997) git_deflate_init(&s, pack_compression_level);\n55bb5c91 1002) while (git_deflate(&s, Z_FINISH) == Z_OK)\n55bb5c91 1004) git_deflate_end(&s);\n\nJunio C Hamano\t76ea93cc fast-import.c: Fix big-file-threshold parsing bug\nbuiltin/fast-import.c\n76ea93cc 3350) return 0;\n\nJunio C Hamano\t88910c99 quote_path: give flags parameter to quote_path()\nbuiltin/clean.c\n88910c99 217) quote_path(path->buf, prefix, &quoted, 0);\n88910c99 241) quote_path(path->buf, prefix, &quoted, 0);\n88910c99 1057) qname = quote_path(item->string, NULL, &buf, 0);\n\nJunio C Hamano\t225a6f10 zlib: wrap deflateBound() too\nbuiltin/fast-import.c\n225a6f10 1000) s.avail_out = git_deflate_bound(&s, s.avail_in);\n\nJunio C Hamano\t6e6029a8 fmt-merge-msg: allow merge destination to be omitted again\nfmt-merge-msg.c\n6e6029a8 29) return config_error_nonbool(key);\n\nJunio C Hamano\t4d0cc224 fast-import: count --max-pack-size in bytes\nbuiltin/fast-import.c\n4d0cc224 3338) return 0;\n4d0cc224 3339) if (v < 8192) {\n4d0cc224 3341) v *= 1024 * 1024;\n4d0cc224 3342) } else if (v < 1024 * 1024) {\n4d0cc224 3344) v = 1024 * 1024;\n4d0cc224 3346) max_packsize = v;\n\nLin Sun\tdbd8c09b mergetool: allow auto-merge for meld to follow the vim-diff behavior\nbuiltin/config.c\ndbd8c09b 99) new_type = TYPE_BOOL_OR_STR;\ndbd8c09b 258) int v = git_parse_maybe_bool(value_);\ndbd8c09b 259) if (v < 0)\ndbd8c09b 260) strbuf_addstr(buf, value_);\ndbd8c09b 262) strbuf_addstr(buf, v ? \"true\" : \"false\");\ndbd8c09b 425) int v = git_parse_maybe_bool(value);\ndbd8c09b 426) if (v < 0)\ndbd8c09b 427) return xstrdup(value);\ndbd8c09b 429) return xstrdup(v ? \"true\" : \"false\");\n\nMartin Ågren\t8f7e3de0 wt-status: print to s->fp, not stdout\nwt-status.c\n8f7e3de0 1859) fprintf(s->fp, \" %s%c\", it->string, 0);\n\nMatheus Tavares\tbda959c4 packfile: fix memory leak in add_delta_base_cache()\npackfile.c\nbda959c4 1487) free(base);\n\nMichael Forney\tea3f7e59 revision: use repository from rev_info when parsing commits\nrevision.c\nea3f7e59 1058) if (repo_parse_commit(revs->repo, p) < 0)\n\nMichael Haggerty\t9e903316 credential-cache--daemon: use tempfile module\nbuiltin/credential-cache--daemon.c\n9e903316 297) delete_tempfile(&socket_file);\n\nMike Hommey\t0df32457 fast-import: do less work when given \"from\" matches current branch head\nbuiltin/fast-import.c\n0df32457 2600) release_tree_content_recursive(b->branch_tree.tree);\n0df32457 2601) b->branch_tree.tree = NULL;\n\nMiriam Rubio\t7b4de74b bisect--helper: introduce new `write_in_file()` function\nbuiltin/bisect--helper.c\n7b4de74b 97) return error_errno(_(\"cannot open file '%s' in mode '%s'\"), path, mode);\n7b4de74b 101) int saved_errno = errno;\n7b4de74b 102) fclose(fp);\n7b4de74b 103) errno = saved_errno;\n7b4de74b 104) return error_errno(_(\"could not write to file '%s'\"), path);\n\nNguyễn Thái Ngọc Duy\t26604f9f credential-cache--daemon.c: use warning_errno()\nbuiltin/credential-cache--daemon.c\n26604f9f 185) warning_errno(\"accept failed\");\n26604f9f 190) warning_errno(\"dup failed\");\n\nNguyễn Thái Ngọc Duy\td3b4705a sha1-file.c: remove the_repo from read_object_with_reference()\nbuiltin/fast-import.c\nd3b4705a 2648) char *buf = read_object_with_reference(the_repository,\nd3b4705a 2649)        &n->oid,\n\nNguyễn Thái Ngọc Duy\t6c223e49 fast-import.c: use error_errno()\nbuiltin/fast-import.c\n6c223e49 320) error_errno(\"can't write crash report %s\", loc);\n6c223e49 1698) failure |= error_errno(\"Unable to write marks file %s\",\n6c223e49 1714) failure |= error_errno(\"Unable to write file %s\",\n\nNicolas Pitre\t3fc366bd fast-import: start using struct pack_idx_entry\nbuiltin/fast-import.c\n3fc366bd 1155) e->idx.offset = 1; /* just not zero! */\n\nNoam Postavsky\t7f4d4746 credential-cache: new option to ignore sighup\nbuiltin/credential-cache--daemon.c\n7f4d4746 294) signal(SIGHUP, SIG_IGN);\n\nPaul Tan\tcb2c2796 git-credential-store: support multiple credential files\nbuiltin/credential-store.c\ncb2c2796 103) return;\ncb2c2796 131) return;\ncb2c2796 170) string_list_append(&fns, file);\n\nPhillip Wood\ta3894aad rebase -i: support --ignore-date\nsequencer.c\na3894aad 1448) goto out;\na3894aad 1453) goto out;\na3894aad 1479) goto out;\n\nPhillip Wood\t7573cec5 rebase -i: support --committer-date-is-author-date\nsequencer.c\n7573cec5 4498) return -1;\n7573cec5 5395) goto cleanup;\n\nPhillip Wood\tce910287 add -p: fix checking of user input\nadd-patch.c\nce910287 1508) if (permitted & ALLOW_GOTO_PREVIOUS_HUNK)\nce910287 1513) if (permitted & ALLOW_GOTO_NEXT_HUNK)\nce910287 1518) if (permitted & ALLOW_GOTO_PREVIOUS_UNDECIDED_HUNK)\nce910287 1523) if (permitted & ALLOW_GOTO_NEXT_UNDECIDED_HUNK)\n\nPhillip Wood\t75a009dc add -p: fix editing of intent-to-add paths\nadd-patch.c\n75a009dc 1398) undecided_previous = i;\n75a009dc 1399) break;\n75a009dc 1421) permitted |= ALLOW_GOTO_PREVIOUS_UNDECIDED_HUNK;\n75a009dc 1422) strbuf_addstr(&s->buf, \",k\");\n75a009dc 1484) if (file_diff->hunk_nr) {\n75a009dc 1485) for (; hunk_index < file_diff->hunk_nr; hunk_index++) {\n75a009dc 1486) hunk = file_diff->hunk + hunk_index;\n75a009dc 1487) if (hunk->use == UNDECIDED_HUNK)\n75a009dc 1488) hunk->use = USE_HUNK;\n75a009dc 1490) } else if (hunk->use == UNDECIDED_HUNK) {\n75a009dc 1491) hunk->use = USE_HUNK;\n75a009dc 1500) } else if (hunk->use == UNDECIDED_HUNK) {\n75a009dc 1501) hunk->use = SKIP_HUNK;\n\nPierre Habouzit\teec813cf fast-import was using dbuf's, replace them with strbuf's.\nbuiltin/fast-import.c\neec813cf 998) s.next_in = (void *)dat->buf;\neec813cf 999) s.avail_in = dat->len;\n\nPranit Bauva\t517ecb31 bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C\nbuiltin/bisect--helper.c\n517ecb31 529) return res;\n517ecb31 533) return error_errno(_(\"could not open '%s' for appending\"),\n517ecb31 537) return error_errno(_(\"failed to write to '%s'\"), git_path_bisect_log());\n517ecb31 586) return BISECT_FAILED;\n\nPranit Bauva\t09535f05 bisect--helper: reimplement `bisect_autostart` shell function in C\nbuiltin/bisect--helper.c\n09535f05 827) fprintf_ln(stderr, _(\"You need to start by \\\"git bisect \"\n09535f05 830) if (!isatty(STDIN_FILENO))\n09535f05 831) return -1;\n09535f05 838) yesno = git_prompt(_(\"Do you want me to do it for you \"\n09535f05 840) res = tolower(*yesno) == 'n' ?\n09535f05 841) -1 : bisect_start(terms, empty_strvec, 0);\n09535f05 843) return res;\n\nPrathamesh Chavan\te83e3333 submodule: port submodule subcommand 'summary' from shell to C\nbuiltin/submodule--helper.c\ne83e3333 1091) missing_dst = 1;\ne83e3333 1142) strbuf_addf(&errmsg_str, \"  Warn: %s doesn't contain commits %s and %s\\n\",\ne83e3333 1143)     displaypath, oid_to_hex(&p->oid_src),\ne83e3333 1144)     oid_to_hex(&p->oid_dst));\ne83e3333 1149)     oid_to_hex(&p->oid_dst));\ne83e3333 1271) return -1;\ne83e3333 1275) return -1;\ne83e3333 1319) return 0;\n\nRandall S. Becker\tf64b6a1f bugreport.c: replace strbuf_write_fd with write_in_full\nbuiltin/bugreport.c\nf64b6a1f 178) die_errno(_(\"unable to write to %s\"), report_path.buf);\n\nRené Scharfe\t24b75faf connected: use buffered I/O to talk to rev-list\nconnected.c\n24b75faf 143) if (errno != EPIPE && errno != EINVAL)\n24b75faf 144) error_errno(_(\"failed write to rev-list\"));\n24b75faf 145) err = -1;\n\nRené Scharfe\tbcd2c5ee read-cache: fix mem-pool allocation for multi-threaded index loading\nread-cache.c\nbcd2c5ee 2104) p->ce_mem_pool = xmalloc(sizeof(*istate->ce_mem_pool));\n\nRené Scharfe\t2947a793 archive: add --add-file\narchive.c\n2947a793 345) err = error_errno(_(\"could not read '%s'\"), path);\n2947a793 352) break;\n2947a793 513) string_list_clear_func(&args->extra_files,\n2947a793 515) return 0;\n2947a793 519) return -1;\n\nRené Scharfe\ta698d67b upload-pack: use buffered I/O to talk to rev-list\nupload-pack.c\na698d67b 661) if (cmd_in)\na698d67b 662) fclose(cmd_in);\n\nRonnie Sahlberg\t3f09ba75 fast-import.c: use a ref transaction when dumping tags\nbuiltin/fast-import.c\n3f09ba75 1662) goto cleanup;\n3f09ba75 1671) goto cleanup;\n\nRonnie Sahlberg\tde7e86f5 fast-import.c: change update_branch to use ref transactions\nbuiltin/fast-import.c\nde7e86f5 1630) ref_transaction_free(transaction);\nde7e86f5 1632) strbuf_release(&err);\nde7e86f5 1633) return -1;\n\nRyan Zoeller\ta0abe5e3 parse-options: add --git-completion-helper-all\nparse-options.c\na0abe5e3 736) return show_gitcomp(options, 1);\n\nSergey Organov\td01141de diff: get rid of redundant 'dense' argument\ndiff-lib.c\nd01141de 362) show_combined_diff(p, 2, revs);\n\nShawn O. Pearce\td9ee53ce Implemented automatic checkpoints within fast-import.\nbuiltin/fast-import.c\nd9ee53ce 990) e->pack_id = pack_id + 1;\nd9ee53ce 994) if (delta) {\n\nShawn O. Pearce\t820b9310 Dump all refs and marks during a checkpoint in fast-import.\nbuiltin/fast-import.c\n820b9310 991) cycle_packfile();\n\nShawn O. Pearce\t60b9004c Use atomic updates to the fast-import mark file\nbuiltin/fast-import.c\n60b9004c 1700) return;\n60b9004c 1706) rollback_lock_file(&mark_lock);\n60b9004c 1709) return;\n\nShawn O. Pearce\t5eef828b fast-import: Stream very large blobs directly to pack\nbuiltin/fast-import.c\n5eef828b 1063) die_errno(\"cannot truncate pack to skip duplicate\");\n5eef828b 1085) cycle_packfile();\n5eef828b 1153) e->type = OBJ_BLOB;\n5eef828b 1154) e->pack_id = MAX_PACK_ID;\n5eef828b 1156) duplicate_count_by_type[OBJ_BLOB]++;\n\nShawn O. Pearce\tb6f3481b Teach fast-import to recursively copy files/directories\nbuiltin/fast-import.c\nb6f3481b 720) return NULL;\nb6f3481b 727) b->tree = dup_tree_content(a->tree);\nb6f3481b 1576) return 0;\nb6f3481b 1582) return 0;\n\nShawn O. Pearce\tafde8dd9 Fixed segfault in fast-import after growing a tree.\nbuiltin/fast-import.c\nafde8dd9 1424) release_tree_content_recursive(e->tree);\n\nShawn O. Pearce\t5d6f3ef6 Corrected buffer overflow during automatic checkpoint in fast-import.\nbuiltin/fast-import.c\n5d6f3ef6 1001) s.next_out = out = xrealloc(out, s.avail_out);\n\nShawn O. Pearce\t63e0c8b3 Support RFC 2822 date parsing in fast-import.\nbuiltin/fast-import.c\n63e0c8b3 1920) return -1;\n63e0c8b3 1978) break;\n\nShawn O. Pearce\t463acbe1 Added tree and commit writing to fast-import.\nbuiltin/fast-import.c\n463acbe1 640) l->next_avail = f->next_avail;\n463acbe1 1227) return NULL;\n463acbe1 1456) return 0;\n463acbe1 2032) e = active_branches;\n463acbe1 2033) active_branches = e->active_next_branch;\n\nShawn O. Pearce\tbdf1c06d fast-import: Hide the pack boundary commits by default.\nbuiltin/fast-import.c\nbdf1c06d 891) if (t->pack_id == pack_id)\n\nShawn O. Pearce\t2f6dc35d fast-import: Fail if a non-existant commit is used for merge\nbuiltin/fast-import.c\n2f6dc35d 2654) free(buf);\n\nShawn O. Pearce\t8acb3297 Generate crash reports on die in fast-import\nbuiltin/fast-import.c\n8acb3297 305) fprintf(rpt, \"%u\", b->pack_id);\n8acb3297 322) return;\n\nShawn O. Pearce\t69e74e74 Correct packfile edge output in fast-import.\nbuiltin/fast-import.c\n69e74e74 2860) t->pack_id = MAX_PACK_ID;\n\nShawn O. Pearce\tbb23fdfa Teach fast-import to honor pack.compression and pack.depth\nbuiltin/fast-import.c\nbb23fdfa 3450) if (max_depth > MAX_DEPTH)\nbb23fdfa 3451) max_depth = MAX_DEPTH;\n\nStefan Beller\t0df8e965 cache.h: add repository argument to oid_object_info\nbuiltin/fast-import.c\n0df8e965 2502) enum object_type type = oid_object_info(the_repository, &oid,\n\nSverre Rabbelier\t9c8398f0 fast-import: add option command\nbuiltin/fast-import.c\n9c8398f0 3500) usage(fast_import_usage);\n\nSverre Rabbelier\t0f6927c2 fast-import: put option parsing code in separate functions\nbuiltin/fast-import.c\n0f6927c2 3284) if (max_depth > MAX_DEPTH)\n0f6927c2 3286) }\n0f6927c2 3309) fclose(pack_edges);\n0f6927c2 3361) show_stats = 1;\n\nSZEDER Gábor\t87d01c85 credential-store: don't pass strerror to die_errno()\nbuiltin/credential-store.c\n87d01c85 67) die_errno(\"unable to write credential store\");\n\nSZEDER Gábor\t17e6275f commit-graph: simplify chunk writes into loop\ncommit-graph.c\n17e6275f 1821) return -1;\n\nTanay Abhra\t536900e5 fast-import.c: replace `git_config()` with `git_config_get_*()` family\nbuiltin/fast-import.c\n536900e5 3454) pack_idx_opts.version = indexversion_value;\n536900e5 3456) git_die_config(\"pack.indexversion\",\n536900e5 3460) max_packsize = packsizelimit_value;\n\nTaylor Blau\t809e0327 builtin/commit-graph.c: introduce '--max-new-filters=<n>'\nbuiltin/commit-graph.c\n809e0327 175) *to = -1;\n\nTaylor Blau\tb9ea2147 list_objects_filter_options: introduce 'list_object_filter_config_name'\nlist-objects-filter-options.c\nb9ea2147 23) break;\nb9ea2147 36) break;\n\nTaylor Blau\t6dd3456a upload-pack.c: allow banning certain object filter(s)\nupload-pack.c\n6dd3456a 1078) die_if_using_banned_filter(data);\n\nTaylor Blau\t5b01a4e8 upload-pack.c: introduce 'uploadpackfilter.tree.maxDepth'\nupload-pack.c\n5b01a4e8 1259) strbuf_release(&buf);\n5b01a4e8 1260) return config_error_nonbool(var);\n\nTaylor Blau\t59f0d507 bloom: encode out-of-bounds filters as non-empty\nbloom.c\n59f0d507 294) init_truncated_large_filter(filter);\n\nTaylor Blau\tab14d067 commit-graph: pass a 'struct repository *' in more places\nfuzz-commit-graph.c\nab14d067 14) g = parse_commit_graph(the_repository, (void *)data, size);\n\nTaylor Blau\t98bb7961 commit-graph: rename 'split_commit_graph_opts'\ncommit-graph.c\n98bb7961 2218) ctx->oids.alloc = opts->max_commits;\n\nTaylor Blau\t312cff52 bloom: split 'get_bloom_filter()' in two\nbloom.c\n312cff52 296) if (computed)\n312cff52 297) *computed |= BLOOM_TRUNC_LARGE;\n\nThomas Rast\t0721c314 Use die_errno() instead of die() when checking syscalls\nbuiltin/fast-import.c\n0721c314 793) die_errno(\"cannot create keep file\");\n0721c314 796) die_errno(\"failed to write keep file\");\n\n\n"},{"id":"407007","messageId":"cfc8a8e9-f812-2cb1-f6d8-57ef585346d1@gmail.com","threadId":"54358","inReplyTo":"5199d2cf-debc-e6d6-e72d-2fad2b22dd58@gmail.com","subject":"Re: Git Test Coverage Report (v2.29.0-rc0)","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-10-06T20:49:45Z","receivedAt":"2020-10-06T20:49:49Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 10/6/2020 4:38 PM, Derrick Stolee wrote:\n> brian m. carlson\td7e6b6a8 fast-import: convert internal structs to struct object_id\n> brian m. carlson\t912c13d5 fast-import: convert to struct object_id\n> brian m. carlson\te6a492b7 pack: convert struct pack_idx_entry to struct object_id\n> brian m. carlson\t28d055bd fast-import: make hash-size independent\n\nThese are clear refactors that should not be considered against the\nauthor.\n\n> Derrick Stolee\t4ddc79b2 maintenance: add auto condition for commit-graph task\n\nHere, it seems I missed testing \"git maintenance run --auto --task=commit-graph\".\nI will send a patch to correct this sometime this week.\n\n> Han-Wen Nienhuys\t4441f427 refs: add GIT_TRACE_REFS debugging mechanism\n> refs/debug.c\n\nThis file seems rather non-trivial to not be covered. However, if GIT_TRACE_REFS\nis only intended for debugging, then perhaps none of this is in a critical code\npath that would affect normal users?\n\n> Jeff King\tc33ddc2e date: use strbufs in date-formatting functions> Jeff King\td70a9eb6 strvec: rename struct fields\n> Jeff King\tef8d7ac4 strvec: convert more callers away from argv_array name\n> Jeff King\tc972bf4c strvec: convert remaining callers away from argv_array name\n\nThis is another giant refactor.\n\n> Jonathan Tan\tf08cbf60 index-pack: make quantum of work smaller\n> builtin/index-pack.c\n> f08cbf60 424) list_for_each_prev(pos, &done_head) {\n> f08cbf60 425) struct base_data *b = list_entry(pos, struct base_data, list);\n> f08cbf60 426) if (b->retain_data || b == retain)\n> f08cbf60 427) continue;\n> f08cbf60 428) if (b->data) {\n> f08cbf60 429) free_base_data(b);\n> f08cbf60 430) if (base_cache_used <= base_cache_limit)\n> f08cbf60 431) return;\n> f08cbf60 435) list_for_each_prev(pos, &work_head) {\n> f08cbf60 436) struct base_data *b = list_entry(pos, struct base_data, list);\n> f08cbf60 437) if (b->retain_data || b == retain)\n> f08cbf60 438) continue;\n> f08cbf60 439) if (b->data) {\n> f08cbf60 440) free_base_data(b);\n> f08cbf60 441) if (base_cache_used <= base_cache_limit)\n> f08cbf60 442) return;\n> f08cbf60 925) base_cache_used += c->size;\n> f08cbf60 941) base_cache_used += c->size;\n\nThis seems to be sufficiently complicated to be worth a test.\nWhat do you think, Jonathan?\n \nThese are the items that caught my eye.\n\nThanks,\n-Stolee\n\n"}]}