Subject: Git Test Coverage Report (v2.26.0-rc0)

From: Derrick Stolee <[email-masked]>
Date: Fri, 6 Mar 2020 07:08:38 -0500

Here is the test coverage report for v2.26.0-rc0 versus v2.25.1.

Thanks,
-Stolee

[1] https://derrickstolee.github.io/git-test-coverage/reports/v2.26.0-rc0-commits.txt
[2] https://derrickstolee.github.io/git-test-coverage/reports/v2.26.0-rc0.txt
[3] https://derrickstolee.github.io/git-test-coverage/reports/v2.26.0-rc0.htm

---

target	fork/master
base	refs/tags/v2.25.1

Uncovered code in 'target' not in 'base'
--------------------------------------------------------

Commits introducing uncovered code:
Alban Gruin	5a5445d8 rebase-interactive: warn if commit is dropped with `rebase --edit-todo'
sequencer.c
5a5445d8 4261) unlink(rebase_path_dropped());

Alban Gruin	1da5874c sequencer: move check_todo_list_from_file() to rebase-interactive.c
rebase-interactive.c
1da5874c 234) goto out;
1da5874c 239) goto out;
1da5874c 246) fprintf(stderr, _(edit_todo_list_advice));

Benno Evers	30b1c7ad describe: don't abort too early when searching tags
builtin/describe.c
30b1c7ad 394) fprintf(stderr, _("finished search at %s\n"),
30b1c7ad 395) oid_to_hex(&c->object.oid));

Bert Wesarg	f2a2327a config: provide access to the current line number
config.c
f2a2327a 3346) return cf->linenr;

Bert Wesarg	88f8576e pull --rebase/remote rename: document and honor single-letter abbreviations rebase types
rebase.c
88f8576e 26) return REBASE_MERGES;

Bert Wesarg	1a83068c remote: clean-up by returning early to avoid one indentation
builtin/remote.c
1a83068c 287) return 0;

Elijah Newren	e98c4269 rebase (interactive-backend): fix handling of commits that become empty
sequencer.c
e98c4269 2523) opts->keep_redundant_commits = 1;

Elijah Newren	8a997ed1 rebase, sequencer: remove the broken GIT_QUIET handling
builtin/rebase.c
8a997ed1 695) write_file(state_dir_path("quiet", opts), "%s", "");

Elijah Newren	10cdb9f3 rebase: rename the two primary rebase backends
builtin/rebase.c
10cdb9f3 1664) if (is_merge(&options))

Elijah Newren	d48e5e21 rebase (interactive-backend): make --keep-empty the default
sequencer.c
d48e5e21 1529) return originally_empty;

Hans Jerry Illikainen	54887b46 gpg-interface: add minTrustLevel as a configuration option
builtin/pull.c
54887b46 353) return status;

gpg-interface.c
54887b46 143) return 1;
54887b46 207) free(trust);
54887b46 208) goto error;
54887b46 348) return config_error_nonbool(var);

pretty.c
54887b46 1355) strbuf_addstr(sb, "never");
54887b46 1356) break;
54887b46 1358) strbuf_addstr(sb, "marginal");
54887b46 1359) break;
54887b46 1361) strbuf_addstr(sb, "fully");
54887b46 1362) break;

Hariom Verma	4ef34648 receive.denyCurrentBranch: respect all worktrees
builtin/receive-pack.c
4ef34648 998) else if (git_work_tree_cfg)
4ef34648 999) work_tree = git_work_tree_cfg;
4ef34648 1001) work_tree = "..";
4ef34648 1008) git_dir = get_git_dir();

Jeff King	da806352 diff: move diff.wsErrorHighlight to "basic" config
diff.c
da806352 448) return -1;

Jeff King	4eb707eb rev-list: allow commit-only bitmap traversals
pack-bitmap.c
4eb707eb 626)     (obj->type == OBJ_TAG && !revs->tag_objects))
4eb707eb 627) continue;

Jeff King	4f3bd560 pack-bitmap: implement BLOB_NONE filtering
pack-bitmap.c
4f3bd560 732) continue;

Jeff King	bb514de3 pack-objects: improve partial packfile reuse
pack-bitmap.c
bb514de3 1033) return;
bb514de3 1036) return;
bb514de3 1048) return;
bb514de3 1086) i = bitmap_git->pack->num_objects / BITS_IN_EWORD;

Jeff King	6ac9760a packed_object_info(): use object_id internally for delta base
packfile.c
6ac9760a 1245) return -1;
6ac9760a 1249) return -1;
6ac9760a 1253) return -1;

Jeff King	e704fc79 pack-objects: introduce pack.allowPackReuse
builtin/pack-objects.c
e704fc79 2845) allow_pack_reuse = git_config_bool(k, v);
e704fc79 2846) return 0;

Jeff King	792f8119 rev-list: factor out bitmap-optimized routines
builtin/rev-list.c
792f8119 401) return -1;
792f8119 444) return -1;

Jeff King	b99b6bcc packed_object_info(): use object_id for returning delta base
sha1-file.c
b99b6bcc 1478) oidclr(oi->delta_base_oid);

Jeff King	3f83fd5e pack-objects: read delta base oid into object_id struct
builtin/pack-objects.c
3f83fd5e 1647) if (!in_same_island(&delta->idx.oid, base_oid))

Jeff King	2fecc48c packfile: drop nth_packed_object_sha1()
packfile.c
2fecc48c 1878) return -1;

Jeff King	92fb0db9 pack-objects: add checks for duplicate objects
builtin/pack-objects.c
92fb0db9 1134) return 1;
92fb0db9 2692) (reuse_packfile_bitmap &&
92fb0db9 2693)  bitmap_walk_contains(bitmap_git, reuse_packfile_bitmap, oid));

Jeff King	608d9c93 rev-list: allow bitmaps when counting objects
builtin/rev-list.c
608d9c93 410) return -1;

Johannes Schindelin	6610e462 built-in stash: use the built-in `git add -p` if so configured
builtin/stash.c
6610e462 1026) setenv(INDEX_ENVIRONMENT, old_index_env, 1);

Johannes Schindelin	180f48df built-in add -p: support interactive.diffFilter
add-patch.c
180f48df 557) else if (p != pend)
180f48df 559) goto mismatched_output;
180f48df 590) return -1;

Johannes Schindelin	d2a233cb built-in add -p: prepare for patch modes other than "stage"
add-patch.c
d2a233cb 1567)       _(s->mode->help_patch_text));

Johannes Schindelin	94ac3c31 terminal: make the code of disable_echo() reusable
compat/terminal.c
94ac3c31 38) static int disable_bits(tcflag_t bits)
94ac3c31 49) t.c_lflag &= ~bits;
94ac3c31 59) static int disable_echo(void)
94ac3c31 61) return disable_bits(ECHO);

Johannes Schindelin	12acdf57 built-in add -p: handle Escape sequences more efficiently
compat/terminal.c
12acdf57 255) static int sequence_entry_cmp(const void *hashmap_cmp_fn_data,
12acdf57 260) return strcmp(e1->sequence, keydata ? keydata : e2->sequence);
12acdf57 263) static int is_known_escape_sequence(const char *sequence)
12acdf57 268) if (!initialized) {
12acdf57 269) struct child_process cp = CHILD_PROCESS_INIT;
12acdf57 270) struct strbuf buf = STRBUF_INIT;
12acdf57 273) hashmap_init(&sequences, (hashmap_cmp_fn)sequence_entry_cmp,
12acdf57 276) argv_array_pushl(&cp.args, "infocmp", "-L", "-1", NULL);
12acdf57 277) if (pipe_command(&cp, NULL, 0, &buf, 0, NULL, 0))
12acdf57 278) strbuf_setlen(&buf, 0);
12acdf57 280) for (eol = p = buf.buf; *p; p = eol + 1) {
12acdf57 281) p = strchr(p, '=');
12acdf57 282) if (!p)
12acdf57 283) break;
12acdf57 284) p++;
12acdf57 285) eol = strchrnul(p, '\n');
12acdf57 287) if (starts_with(p, "\\E")) {
12acdf57 288) char *comma = memchr(p, ',', eol - p);
12acdf57 291) p[0] = '^';
12acdf57 292) p[1] = '[';
12acdf57 293) FLEX_ALLOC_MEM(e, sequence, p, comma - p);
12acdf57 294) hashmap_entry_init(&e->entry,
12acdf57 295)    strhash(e->sequence));
12acdf57 296) hashmap_add(&sequences, &e->entry);
12acdf57 298) if (!*eol)
12acdf57 299) break;
12acdf57 301) initialized = 1;
12acdf57 304) return !!hashmap_get_from_hash(&sequences, strhash(sequence), sequence);
12acdf57 345) while (!is_known_escape_sequence(buf->buf)) {

Johannes Schindelin	52628f94 built-in add -p: implement the "checkout" patch modes
add-patch.c
52628f94 1272) fwrite(diff->buf, diff->len, 1, stderr);

Johannes Schindelin	a5e46e6b terminal: add a new function to read a single keystroke
compat/terminal.c
a5e46e6b 64) static int enable_non_canonical(void)
a5e46e6b 66) return disable_bits(ICANON | ECHO);
a5e46e6b 307) int read_key_without_echo(struct strbuf *buf)
a5e46e6b 312) if (warning_displayed || enable_non_canonical() < 0) {
a5e46e6b 313) if (!warning_displayed) {
a5e46e6b 316) warning_displayed = 1;
a5e46e6b 319) return strbuf_getline(buf, stdin);
a5e46e6b 322) strbuf_reset(buf);
a5e46e6b 323) ch = getchar();
a5e46e6b 324) if (ch == EOF) {
a5e46e6b 325) restore_term();
a5e46e6b 326) return EOF;
a5e46e6b 328) strbuf_addch(buf, ch);
a5e46e6b 358) restore_term();
a5e46e6b 359) return 0;

Johannes Schindelin	e118f063 built-in add -p: handle Escape sequences in interactive.singlekey mode
compat/terminal.c
e118f063 330) if (ch == '\033' /* ESC */) {
e118f063 338) strbuf_splice(buf, buf->len - 1, 1, "^[", 2);
e118f063 346) struct pollfd pfd = { .fd = 0, .events = POLLIN };
e118f063 348) if (poll(&pfd, 1, 500) < 1)
e118f063 349) break;
e118f063 351) ch = getchar();
e118f063 352) if (ch == EOF)
e118f063 353) return 0;
e118f063 354) strbuf_addch(buf, ch);

Johannes Schindelin	04f816b1 built-in add -p: respect the `interactive.singlekey` config setting
add-patch.c
04f816b1 1156) int res = read_key_without_echo(&s->answer);
04f816b1 1157) printf("%s\n", res == EOF ? "" : s->answer.buf);
04f816b1 1158) return res;

Johannes Schindelin	90a6bb98 legacy stash -p: respect the add.interactive.usebuiltin setting
builtin/add.c
90a6bb98 453) parse_pathspec(&pathspec, 0,
90a6bb98 459) return run_add_interactive(NULL, "--patch=stash", &pathspec);

Jonathan Tan	50033772 connected: verify promisor-ness of partial clone
connected.c
50033772 70) continue;

Junio C Hamano	0106b1d4 Revert "gpg-interface: prefer check_signature() for GPG verification"
builtin/fmt-merge-msg.c
0106b1d4 506) if (!sig.len)
0106b1d4 507) strbuf_addstr(&sig, "gpg verification failed.\n");

gpg-interface.c
0106b1d4 434) return error_errno(_("could not create temporary file"));
0106b1d4 437) error_errno(_("failed writing detached signature to '%s'"),
0106b1d4 439) delete_tempfile(&temp);
0106b1d4 440) return -1;

log-tree.c
0106b1d4 462) strbuf_addstr(&gpg_output, "No signature\n");
0106b1d4 534) else if (verify_message.len <= gpg_message_offset)

Junio C Hamano	e8e71848 Merge branch 'jk/nth-packed-object-id'
pack-bitmap.c
e8e71848 799) nth_packed_object_id(&oid, pack, entry->nr);

Kevin Willford	8da2c576 fsmonitor: handle version 2 of the hooks that will use opaque token
fsmonitor.c
8da2c576 36) if (hook_version == HOOK_INTERFACE_VERSION1 ||
8da2c576 37)     hook_version == HOOK_INTERFACE_VERSION2)
8da2c576 38) return hook_version;
8da2c576 199) strbuf_addf(&last_update_token, "%"PRIu64"", last_update);

Kevin Willford	56c69100 fsmonitor: change last update timestamp on the index_state to opaque token
fsmonitor.c
56c69100 62) timestamp = get_be64(index);
56c69100 63) strbuf_addf(&last_update, "%"PRIu64"", timestamp);
56c69100 64) index += sizeof(uint64_t);

Matheus Tavares	31877c9a object-store: allow threaded access to object reading
packfile.c
31877c9a 1474) return;

sha1-file.c
31877c9a 1431) return;
31877c9a 1440) return;

Matheus Tavares	c8123e72 streaming: allow open_istream() to handle any repo
streaming.c
c8123e72 154) if (open_istream_incore(st, r, &oi, real, type)) {

Matthew Rogers	9a83d088 submodule-config: add subomdule config scope
config.c
9a83d088 3315) return "submodule";

Matthew Rogers	e37efa40 config: teach git_config_source to remember its scope
builtin/config.c
e37efa40 670) given_config_source.scope = CONFIG_SCOPE_SYSTEM;

Matthew Rogers	6dc905d9 config: split repo scope to local and worktree
config.c
6dc905d9 3311) return "worktree";

Matthew Rogers	a5cb4204 config: make scope_name non-static and rename it
config.c
a5cb4204 3305) return "system";
a5cb4204 3317) return "unknown";

Pranit Bauva	6c69f222 bisect: libify `bisect_next_all`
bisect.c
6c69f222 1024) return BISECT_FAILED;

Pranit Bauva	45b63708 bisect: libify `check_good_are_ancestors_of_bad` and its dependents
bisect.c
45b63708 920) warning_errno(_("could not create file '%s'"),

René Scharfe	2ce6d075 use strpbrk(3) to search for characters from a given set
builtin/show-branch.c
2ce6d075 539) if (strpbrk(av, "*?[")) {

René Scharfe	a91cc7fa strbuf: add and use strbuf_insertstr()
notes.c
a91cc7fa 1337) strbuf_insertstr(sb, 0, "refs/");

René Scharfe	2d539754 name-rev: release unused name strings
builtin/name-rev.c
2d539754 102) free(name->tip_name);

Tanushree Tumane	bfacfce7 bisect--helper: introduce new `decide_next()` function
builtin/bisect--helper.c
bfacfce7 320) return -1;
bfacfce7 321) return 0;

Tanushree Tumane	292731c4 bisect--helper: change `retval` to `res`
builtin/bisect--helper.c
292731c4 227) res = -1;
292731c4 233) res = error_errno(_("couldn't open the file '%s'"), git_path_bisect_log());
292731c4 410) res = -1;
292731c4 416) res = -1;
292731c4 582) res = -1;
292731c4 594) res = -1;
292731c4 606) res = -1;