pu 6185f37155d4d7761f8ecee61a3e30c3f82361c1
jch 13ab3aebd5a7b54884ad3d7261ab1a1ffcd27dd8
next 18eeb5a2650ef4d662f5c9bb888cac8694753ba5
master 4c86140027f4a0d2caaa3ab4bd8bfc5ce3c11c8a
master@{1} ff66981f4593aec0f3b3eeace0eacb7dbe44fd8c

Uncovered code in 'pu' not in 'jch'

pu 6185f37155d4d7761f8ecee61a3e30c3f82361c1
jch 13ab3aebd5a7b54884ad3d7261ab1a1ffcd27dd8

builtin/fetch-pack.c

bf01639c 249 warning(_("Lockfile created but not reported: %s"),
bf01639c 250 pack_lockfiles.items[i].string);

builtin/pack-objects.c

820a5361 995 BUG("configured exclusion wasn't configured");
820a5361 2931 die(_("value of uploadpack.blobpackfileuri must be "
820a5361 2934 die(_("object already configured in another "

builtin/rebase.c

1406adc0 1897 die(_("cannot combine '--rebase-merges' with "

builtin/receive-pack.c

fabec2c5 433 the_hash_algo->init_fn(&ctx);
fabec2c5 434 the_hash_algo->update_fn(&ctx, key_in, key_len);
fabec2c5 435 the_hash_algo->final_fn(key, &ctx);

builtin/replace.c

28ba1830 275 if (strbuf_read(&result, cmd.out, the_hash_algo->hexsz + 1) < 0) {

builtin/rev-parse.c

7e0d029f 735 abbrev = hexsz;

builtin/submodule--helper.c

8d4d86b0 427 printf("%06o %s U\t", ce->ce_mode, oid_to_hex(&null_oid));

fetch-pack.c

820a5361 1397 die("expected '<hash> <uri>', got: %s\n", reader->line);
820a5361 1402 die("expected DELIM");
820a5361 1530 die("fetch-pack: unable to spawn http-fetch");
820a5361 1534 die("fetch-pack: expected keep then TAB at start of http-fetch output");
820a5361 1539 die("fetch-pack: expected hash then LF at end of http-fetch output");
820a5361 1546 die("fetch-pack: unable to finish http-fetch");
820a5361 1550 die("fetch-pack: pack downloaded from %s does not match expected hash %.*s",
820a5361 1551 uri, (int) the_hash_algo->hexsz,
820a5361 1552 packfile_uris.items[i].string);

http-fetch.c

472fbef8 75 die("couldn't create http pack request");
472fbef8 82 die("Unable to get pack file %s\n%s", preq->url,
472fbef8 86 die("Unable to start request");
472fbef8 101 walker_targets_free(commits, commit_id, write_ref);
472fbef8 104 fprintf(stderr,

http.c

390b015a 2305 target ? hash_to_hex(target->hash) : base_url,

packfile.c

d6f3fabd 1457 return;

protocol.c

6da1f1a9 37 die(_("Unrecognized protocol version"));
6da1f1a9 39 die(_("Unrecognized protocol_version"));
6da1f1a9 74 BUG("late attempt to register an allowed protocol version");

read-cache.c

ee70c128 1743 if (advice_unknown_index_extension) {
ee70c128 1744 warning(_("ignoring optional %.4s index extension"), ext);
ee70c128 1745 advise(_("This is likely due to the file having been written by a newer\n"

remote-curl.c

6da1f1a9 345 return 0;

sequencer.c

7c5b2e1d 832 free(kv.items[name_i].util);
7c5b2e1d 836 free(kv.items[email_i].util);
7c5b2e1d 840 free(kv.items[date_i].util);
ccafcb32 884 static char *read_author_date_or_null(void)
ccafcb32 888 if (read_author_script(rebase_path_author_script(),
ccafcb32 890 return NULL;
ccafcb32 891 return date;
7258d3d1 902 error(_("malformed ident line"));
7258d3d1 903 return NULL;
7258d3d1 912 static void push_dates(struct child_process *child)
7258d3d1 914 time_t now = time(NULL);
7258d3d1 915 struct strbuf date = STRBUF_INIT;
7258d3d1 917 strbuf_addf(&date, "@%"PRIuMAX, (uintmax_t)now);
7258d3d1 918 argv_array_pushf(&child->env_array, "GIT_AUTHOR_DATE=%s", date.buf);
7258d3d1 919 argv_array_pushf(&child->env_array, "GIT_COMMITTER_DATE=%s", date.buf);
7258d3d1 920 strbuf_release(&date);
7258d3d1 921 }
ccafcb32 983 int res = -1;
ccafcb32 984 struct strbuf datebuf = STRBUF_INIT;
ccafcb32 985 char *date = read_author_date_or_null();
ccafcb32 987 if (!date)
ccafcb32 988 return -1;
ccafcb32 990 strbuf_addf(&datebuf, "@%s", date);
ccafcb32 991 res = setenv("GIT_COMMITTER_DATE", datebuf.buf, 1);
ccafcb32 993 strbuf_release(&datebuf);
ccafcb32 994 free(date);
ccafcb32 996 if (res)
ccafcb32 997 return -1;
7258d3d1 1016 push_dates(&cmd);
ccafcb32 1428 return error(_("malformed ident line"));
ccafcb32 1430 return error(_("corrupted author without date information"));
7258d3d1 1488 res = -1;
7258d3d1 1489 goto out;
7258d3d1 3605 push_dates(&cmd);

sha1-file.c

d6f3fabd 1571 return;
d6f3fabd 1580 return;

upload-pack.c

a8d662e3 130 return readsz;
820a5361 149 BUG("packfile_uris requires sideband-all");
a8d662e3 354 send_client_data(1, output_state.buffer, output_state.used);
820a5361 1387 string_list_clear(&data->uri_protocols, 0);

Commits introducing uncovered code:

brian m. carlson fabec2c5 builtin/receive-pack: switch to use the_hash_algo
brian m. carlson 28ba1830 builtin/replace: make hash size independent
brian m. carlson 7e0d029f builtin/rev-parse: switch to use the_hash_algo
brian m. carlson 8d4d86b0 cache: remove null_sha1
Jonathan Nieder ee70c128 index: offer advice for unknown index extensions
Jonathan Tan 820a5361 upload-pack: send part of packfile response as uri
Jonathan Tan a8d662e3 upload-pack: refactor reading of pack-objects out
Jonathan Tan bf01639c fetch-pack: support more than one pack lockfile
Jonathan Tan 472fbef8 http-fetch: support fetching packfiles by URL
Josh Steadmon 6da1f1a9 protocol: advertise multiple supported versions
Junio C Hamano 390b015a Merge branch 'jt/fetch-cdn-offload' into pu
Matheus Tavares d6f3fabd object-store: add lock to read_object_file_extended()
Rohit Ashiwal 1406adc0 rebase -i: add --ignore-whitespace flag
Rohit Ashiwal 7c5b2e1d sequencer: allow callers of read_author_script() to ignore fields
Rohit Ashiwal ccafcb32 rebase -i: support --committer-date-is-author-date
Rohit Ashiwal 7258d3d1 rebase -i: support --ignore-date

Uncovered code in 'jch' not in 'next'

jch 13ab3aebd5a7b54884ad3d7261ab1a1ffcd27dd8
next 18eeb5a2650ef4d662f5c9bb888cac8694753ba5

builtin/am.c

14151aad 1696 die(_("unable to write index file"));

builtin/pack-objects.c

7c59828b 1136 return 1;
7c59828b 2694 (reuse_packfile_bitmap &&
7c59828b 2695 bitmap_walk_contains(bitmap_git, reuse_packfile_bitmap, oid));
d35b73c5 2847 allow_pack_reuse = git_config_bool(k, v);
d35b73c5 2848 return 0;

builtin/stash.c

0ac924d8 1135 ret = -1;
0ac924d8 1136 goto done;

commit-graph.c

fbab552a 483 die("dying as requested by the '%s' variable on commit-graph load!",

dir.c

89a1f4aa 374 return MATCHED_RECURSIVELY_LEADING_PATHSPEC;

name-hash.c

5a0c3ea1 98 hashmap_remove(&istate->dir_hash, &dir->ent, NULL);

pack-bitmap.c

7c59828b 791 return; /* broken packfile, punt */
7c59828b 808 return;
7c59828b 811 return;
7c59828b 823 return;
7c59828b 861 i = bitmap_git->pack->num_objects / BITS_IN_EWORD;
934b7d0a 903 return 0;

read-cache.c

14151aad 1489 return -1;

sequencer.c

a47ba3c7 3917 res = error_errno(_("could not stat '%s'"),
a47ba3c7 3923 res = -1; /* message was printed */

sha1-name.c

59fa5f5a 1172 return MISSING_OBJECT;
59fa5f5a 1178 return MISSING_OBJECT;

t/helper/test-hashmap.c

92b660d9 106 hashmap_entry_init(&entries[i]->ent, hashes[i]);
e1c7b970 107 hashmap_add(&map, &entries[i]->ent);
92b660d9 119 hashmap_entry_init(&entries[i]->ent, hashes[i]);
e1c7b970 120 hashmap_add(&map, &entries[i]->ent);

t/helper/test-lazy-init-name-hash.c

7a558228 46 printf("dir %08x %7d %s\n", dir->ent._hash, dir->nr, dir->name);
7a558228 52 printf("name %08x %s\n", ce->ent._hash, ce->name);

t/helper/test-progress.c

2bb74b53 48 die("need a title for the progress output");
2bb74b53 59 die("invalid input: '%s'\n", line.buf);
2bb74b53 67 die("invalid input: '%s'\n", line.buf);
2bb74b53 70 die("invalid input: '%s'\n", line.buf);

Commits introducing uncovered code:

Elijah Newren 89a1f4aa dir: if our pathspec might match files under a dir, recurse into it
Eric Wong 5a0c3ea1 hashmap_remove takes "const struct hashmap_entry *"
Eric Wong 92b660d9 hashmap_entry_init takes "struct hashmap_entry *"
Eric Wong e1c7b970 hashmap_add takes "struct hashmap_entry *"
Eric Wong 7a558228 hashmap_entry: detect improper initialization
Jeff King 7c59828b pack-objects: improve partial packfile reuse
Jeff King d35b73c5 pack-objects: introduce pack.allowPackReuse
Jeff King fbab552a commit-graph: bump DIE_ON_LOAD check to actual load-time
Jeff King 934b7d0a pack-bitmap: introduce bitmap_walk_contains()
Phillip Wood a47ba3c7 rebase -i: check for updated todo after squash and reword
René Scharfe 59fa5f5a sha1-name: check for overflow of N in "foo^N" and "foo~N"
SZEDER Gábor 2bb74b53 Test the progress display
Thomas Gummerer 14151aad factor out refresh_and_write_cache function
Thomas Gummerer 0ac924d8 stash: make sure to write refreshed cache

Uncovered code in 'next' not in 'master'

next 18eeb5a2650ef4d662f5c9bb888cac8694753ba5
master 4c86140027f4a0d2caaa3ab4bd8bfc5ce3c11c8a

builtin/am.c

0dfed92d 1276 die(_("missing author line in commit %s"),
0dfed92d 1277 oid_to_hex(&commit->object.oid));

builtin/checkout.c

65c01c64 766 strbuf_add_unique_abbrev(&old_commit_shortname,
65c01c64 767 &old_branch_info->commit->object.oid,
65c01c64 769 o.ancestor = old_commit_shortname.buf;

builtin/merge-recursive.c

9822175d 68 die_resolve_conflict("merge");

builtin/push.c

8e4c8af0 609 die(_("bad repository '%s'"), repo);
8e4c8af0 625 die(_("--all and --tags are incompatible"));
8e4c8af0 627 die(_("--all can't be combined with refspecs"));
8e4c8af0 631 die(_("--mirror and --tags are incompatible"));
8e4c8af0 636 die(_("--all and --mirror are incompatible"));

builtin/rebase.c

2b318aa6 1273 goto done;
c0efb4c1 1289 goto done;

cache-tree.c

724dd767 619 cache_tree_free(&index_state->cache_tree);
724dd767 620 cache_tree_valid = 0;
724dd767 633 return WRITE_TREE_PREFIX_ERROR;
724dd767 653 fprintf(stderr, "BUG: There are unmerged index entries:\n");
724dd767 654 for (i = 0; i < index_state->cache_nr; i++) {
724dd767 655 const struct cache_entry *ce = index_state->cache[i];
724dd767 656 if (ce_stage(ce))
724dd767 657 fprintf(stderr, "BUG: %d %.*s\n", ce_stage(ce),
724dd767 658 (int)ce_namelen(ce), ce->name);
724dd767 660 BUG("unmerged index entries when writing inmemory index");

connect.c

ebb8d2c9 921 path = host - 2; /* include the leading "//" */

merge-recursive.c

f836bf39 950 ret = err(opt, _("cannot read object %s '%s'"),
f836bf39 952 goto free_buf;
98a1d3d8 3677 return -1;
ff1bfa2c 3741 oid_to_hex(merge_bases[i]));

pack-bitmap.c

dad3f060 712 object = parse_object_or_die(get_tagged_oid(tag), NULL);

pack-objects.c

3a37876b 185 BUG("duplicate object inserted into hash");

repo-settings.c

50f26bd0 57 UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 1);

setup.c

e2683d51 952 !is_dir_sep(dir->buf[min_offset - 1])) {
e2683d51 953 strbuf_addch(dir, '/');
e2683d51 954 min_offset++;

trace2/tr2_dst.c

1fd881d4 218 warning("trace2: unknown value for '%s': '%s'",

trace2/tr2_tgt_normal.c

e3443055 189 strbuf_addf(&buf_payload, "alias %s -> ", alias);
e3443055 190 sq_append_quote_argv_pretty(&buf_payload, argv);
e3443055 201 strbuf_addf(&buf_payload, "child_start[%d]", cmd->trace2_child_id);
e3443055 204 strbuf_addstr(&buf_payload, " cd ");
e3443055 206 strbuf_addstr(&buf_payload, ";");
e3443055 214 strbuf_addch(&buf_payload, ' ');
e3443055 216 strbuf_addstr(&buf_payload, "git ");
e3443055 217 sq_append_quote_argv_pretty(&buf_payload, cmd->argv);
e3443055 242 if (exe) {
e3443055 244 strbuf_addch(&buf_payload, ' ');
e3443055 246 sq_append_quote_argv_pretty(&buf_payload, argv);

trace2/tr2_tgt_perf.c

371df1be 88 fl_end_col = buf->len + TR2FMT_PERF_FL_WIDTH;
371df1be 90 if (file && *file) {
371df1be 91 struct strbuf buf_fl = STRBUF_INIT;
371df1be 93 strbuf_addf(&buf_fl, "%s:%d", file, line);
371df1be 95 if (buf_fl.len <= TR2FMT_PERF_FL_WIDTH)
371df1be 96 strbuf_addbuf(buf, &buf_fl);
371df1be 98 size_t avail = TR2FMT_PERF_FL_WIDTH - 3;
371df1be 99 strbuf_addstr(buf, "...");
371df1be 100 strbuf_add(buf,
371df1be 101 &buf_fl.buf[buf_fl.len - avail],
371df1be 105 strbuf_release(&buf_fl);
371df1be 108 while (buf->len < fl_end_col)
371df1be 111 strbuf_addstr(buf, " | ");
742ed633 302 strbuf_addf(&buf_payload, "alias:%s argv:[", alias);
742ed633 303 sq_append_quote_argv_pretty(&buf_payload, argv);
742ed633 304 strbuf_addch(&buf_payload, ']');
742ed633 335 strbuf_addstr(&buf_payload, "git");
742ed633 336 if (cmd->argv[0])
742ed633 337 strbuf_addch(&buf_payload, ' ');
742ed633 391 strbuf_addstr(&buf_payload, "argv:[");
742ed633 392 if (exe) {
742ed633 393 strbuf_addstr(&buf_payload, exe);
742ed633 394 if (argv[0])
742ed633 395 strbuf_addch(&buf_payload, ' ');
742ed633 397 sq_append_quote_argv_pretty(&buf_payload, argv);
742ed633 398 strbuf_addch(&buf_payload, ']');
da4589ce 459 strbuf_addf(&buf_payload, "label:%s", label);
da4589ce 460 if (fmt && *fmt) {
da4589ce 461 strbuf_addch(&buf_payload, ' ');
da4589ce 462 maybe_append_string_va(&buf_payload, fmt, ap);
da4589ce 479 strbuf_addf(&buf_payload, "label:%s", label);
da4589ce 480 if (fmt && *fmt) {
da4589ce 481 strbuf_addch(&buf_payload, ' ' );
da4589ce 482 maybe_append_string_va(&buf_payload, fmt, ap);

Commits introducing uncovered code:

Denton Liu 2b318aa6 rebase: refactor can_fast_forward into goto tower
Denton Liu c0efb4c1 rebase: fast-forward --onto in more cases
Derrick Stolee 50f26bd0 fetch: add fetch.writeCommitGraph config setting
Elijah Newren 98a1d3d8 merge-recursive: exit early if index != head
Elijah Newren 65c01c64 checkout: provide better conflict hunk description with detached HEAD
Elijah Newren 9822175d Ensure index matches head before invoking merge machinery, round N
Elijah Newren 724dd767 cache-tree: share code between functions writing an index as a tree
Elijah Newren f836bf39 merge-recursive: future-proof update_file_flags() against memory leaks
Elijah Newren ff1bfa2c merge-recursive: use common name for ancestors/common/base_list
Jeff Hostetler 371df1be trace2: cleanup column alignment in perf target format
Jeff Hostetler e3443055 trace2: cleanup whitespace in normal format
Jeff Hostetler da4589ce trace2: trim whitespace in region messages in perf target format
Jeff Hostetler 742ed633 trace2: cleanup whitespace in perf format
Jeff King 3a37876b pack-objects: drop packlist index_pos optimization
Jeff King 0dfed92d git-am: handle missing "author" when parsing commit
Johannes Schindelin e2683d51 Fix .git/ discovery at the root of UNC shares
René Scharfe 1fd881d4 trace2: use warning() directly in tr2_dst_malformed_warning()
René Scharfe dad3f060 tag: factor out get_tagged_oid()
Thomas Gummerer 8e4c8af0 push: disallow --all and refspecs when remote..mirror is set
Torsten Bögershausen ebb8d2c9 mingw: support UNC in git clone file://server/share/repo

Uncovered code in 'master' not in 'master@{1}'

master 4c86140027f4a0d2caaa3ab4bd8bfc5ce3c11c8a
master@{1} ff66981f4593aec0f3b3eeace0eacb7dbe44fd8c

archive-tar.c

71d41ff6 161 BUG("pax extended header length miscalculated as %"PRIuMAX

builtin/cat-file.c

b14ed5ad 529 warning("This repository uses promisor remotes. Some objects may not be loaded.");

builtin/fetch.c

24bc1a12 1406 warning(_("not setting upstream for a remote remote-tracking branch"));

builtin/rev-list.c

cf9ceb5a 476 die(

fetch-pack.c

aaf633c2 911 else if (args->depth > 0 || is_repository_shallow(r))

list-objects-filter-options.c

f56f7642 44 BUG("filter_options already populated");
f56f7642 236 die(_("multiple filter-specs cannot be combined"));
cf9ceb5a 286 BUG("no filter_spec available for this filter");
e987df5f 321 return;

list-objects-filter.c

e987df5f 585 BUG("expected oidset to be cleared already");

list-objects.c

9430147c 210 ctx->show_object(obj, base->buf, ctx->show_data);

path.c

ce17feb1 1234 return -1;
ce17feb1 1238 return -1;
ce17feb1 1247 return -1;

promisor-remote.c

db27dca5 25 die(_("Remote with no URL"));
48de3158 61 warning(_("promisor remote name cannot begin with '/': %s"),
48de3158 63 return NULL;
faf2abf4 93 previous->next = r->next;
4ca9474e 108 return git_config_string(&core_partial_clone_filter_default,
fa3d1b63 139 return 0;
9e27beaa 202 static int remove_fetched_oids(struct repository *repo,
9e27beaa 206 int i, remaining_nr = 0;
9e27beaa 207 int *remaining = xcalloc(oid_nr, sizeof(*remaining));
9e27beaa 208 struct object_id *old_oids = *oids;
9e27beaa 211 for (i = 0; i < oid_nr; i++)
9e27beaa 212 if (oid_object_info_extended(repo, &old_oids[i], NULL,
9e27beaa 214 remaining[i] = 1;
9e27beaa 215 remaining_nr++;
9e27beaa 218 if (remaining_nr) {
9e27beaa 219 int j = 0;
9e27beaa 220 new_oids = xcalloc(remaining_nr, sizeof(*new_oids));
9e27beaa 221 for (i = 0; i < oid_nr; i++)
9e27beaa 222 if (remaining[i])
9e27beaa 223 oidcpy(&new_oids[j++], &old_oids[i]);
9e27beaa 224 *oids = new_oids;
9e27beaa 225 if (to_free)
9e27beaa 226 free(old_oids);
9e27beaa 229 free(remaining);
9e27beaa 231 return remaining_nr;
9e27beaa 248 if (remaining_nr == 1)
9e27beaa 249 continue;
9e27beaa 250 remaining_nr = remove_fetched_oids(repo, &remaining_oids,
9e27beaa 252 if (remaining_nr) {
9e27beaa 253 to_free = 1;
9e27beaa 254 continue;
9e27beaa 262 free(remaining_oids);

ref-filter.c

8b3f33ef 1042 return xstrdup("");

repo-settings.c

aaf633c2 43 r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_DEFAULT;
aaf633c2 53 UPDATE_DEFAULT_BOOL(r->settings.pack_use_sparse, 1);
aaf633c2 54 UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING);

sequencer.c

e145d993 3368 (!opts->strategy || !strcmp(opts->strategy, "recursive")) ?

tree-walk.c

5aa02f98 194 BUG("too small buffer passed to make_traverse_path");
5aa02f98 199 BUG("traverse_info pathlen does not match strings");
5aa02f98 208 BUG("traverse_info ran out of list items");

unpack-trees.c

90553847 1145 if (*info->prev->name)
90553847 1148 printf("%s", info->name);

upload-pack.c

cf9ceb5a 148 sq_quote_buf(&buf, spec);

wrapper.c

9827d4c1 31 die("Out of memory, strdup failed");
9827d4c1 45 if (!gentle)
9827d4c1 46 die("Out of memory, malloc failed (tried to allocate %lu bytes)",
9827d4c1 49 error("Out of memory, malloc failed (tried to allocate %lu bytes)",
9827d4c1 51 return NULL;
9827d4c1 117 die("Out of memory, realloc failed");
9827d4c1 133 die("Out of memory, calloc failed");

Commits introducing uncovered code:

brian m. carlson ce17feb1 path: add a function to check for path suffix
Christian Couder db27dca5 Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}
Christian Couder b14ed5ad Use promisor_remote_get_direct() and has_promisor_remote()
Christian Couder 9e27beaa promisor-remote: implement promisor_remote_get_direct()
Christian Couder fa3d1b63 promisor-remote: parse remote.*.partialclonefilter
Christian Couder 4ca9474e Move core_partial_clone_filter_default to promisor-remote.c
Christian Couder faf2abf4 promisor-remote: use repository_format_partial_clone
Christian Couder 48de3158 Add initial support for many promisor remotes
Corentin BOMPARD 24bc1a12 pull, fetch: add --set-upstream option
Derrick Stolee aaf633c2 repo-settings: create feature.experimental setting
Jeff King 5aa02f98 tree-walk: harden make_traverse_path() length computations
Jeff King 9827d4c1 packfile: drop release_pack_memory()
Jeff King 90553847 tree-walk: drop oid from traverse_info
Johannes Schindelin e145d993 rebase -r: support merge strategies other than `recursive`
Matthew DeVore 9430147c list-objects-filter: encapsulate filter components
Matthew DeVore e987df5f list-objects-filter: implement composite filters
Matthew DeVore f56f7642 list-objects-filter-options: move error check up
Matthew DeVore cf9ceb5a list-objects-filter-options: make filter_spec a string_list
Mischa POSLAWSKY 8b3f33ef ref-filter: initialize empty name or email fields
René Scharfe 71d41ff6 archive-tar: turn length miscalculation warning into BUG