In an effort to ensure new code is reasonably covered by the test suite,
we now have contrib/coverage-diff.sh to combine the gcov output from
'make coverage-test ; make coverage-report' with the output from 'git
diff A B' to discover _new_lines of code that are not covered. This
report ignores lines including "BUG(".
This report takes the output of these results after running on four
branches:
pu: a5dda2204a27a14f65171e29307400194b522051
jch: 280dd2581eb7191db037cf1243dd64fd200455ba
next: 0250525e6984e0e5e803c7e2e3417279b036f1c9
master: c670b1f876521c9f7cd40184bf7ed05aad843433
master@{1}: c4df23f7927d8d00e666a3c8d1b3375f1dc8a3c1
Uncovered in pu not in jch
--------------------------
(Note: t4041-diff-submodule-option.sh failed with extra test options, so
some lines that
would be covered by that test run were not covered.)
builtin/blame.c
a5dda2204a builtin/blame.c 200)
repo_unuse_commit_buffer(the_repository, commit, message);
74e8221b52 builtin/blame.c 924) blame_date_width = sizeof("Thu Oct 19
16:00");
74e8221b52 builtin/blame.c 925) break;
builtin/describe.c
a5dda2204a builtin/describe.c 257) repo_parse_commit(the_repository, p);
builtin/fsck.c
b29759d89a builtin/fsck.c 613) fprintf(stderr, "Checking %s link\n",
head_ref_name);
b29759d89a builtin/fsck.c 618) return error("Invalid %s", head_ref_name);
builtin/grep.c
c22b820141 builtin/grep.c 442) grep_read_unlock();
builtin/pack-objects.c
a5dda2204a builtin/pack-objects.c 2852) if
(!repo_has_object_file(the_repository, &obj->oid) &&
is_promisor_object(&obj->oid))
builtin/rebase--interactive.c
6424061be4 builtin/rebase--interactive.c 23) return
error_errno(_("could not read '%s'."), todo_file);
6424061be4 builtin/rebase--interactive.c 28) return
error_errno(_("could not write '%s'"), todo_file);
7ccfac40bc builtin/rebase--interactive.c 43) return
error_errno(_("could not read '%s'."), todo_file);
7ccfac40bc builtin/rebase--interactive.c 46)
todo_list_release(&todo_list);
7ccfac40bc builtin/rebase--interactive.c 47) return error(_("unusable
todo list: '%s'"), todo_file);
9787d17d40 builtin/rebase--interactive.c 294) ret =
rearrange_squash_in_todo_file();
builtin/reflog.c
c9ef0d95eb builtin/reflog.c 581) all_worktrees = 0;
c9ef0d95eb builtin/reflog.c 617) continue;
date.c
74e8221b52 113) die("Timestamp too large for this system: %"PRItime, time);
74e8221b52 216) if (tm->tm_mon == human_tm->tm_mon) {
74e8221b52 217) if (tm->tm_mday > human_tm->tm_mday) {
74e8221b52 219) } else if (tm->tm_mday == human_tm->tm_mday) {
74e8221b52 220) hide.date = hide.wday = 1;
74e8221b52 221) } else if (tm->tm_mday + 5 > human_tm->tm_mday) {
74e8221b52 223) hide.date = 1;
74e8221b52 231) gettimeofday(&now, NULL);
74e8221b52 232) show_date_relative(time, tz, &now, buf);
74e8221b52 233) return;
74e8221b52 246) hide.seconds = 1;
74e8221b52 247) hide.tz |= !hide.date;
74e8221b52 248) hide.wday = hide.time = !hide.year;
74e8221b52 262) strbuf_rtrim(buf);
74e8221b52 287) gettimeofday(&now, NULL);
74e8221b52 290) human_tz = local_time_tzoffset(now.tv_sec, &human_tm);
74e8221b52 886) static int auto_date_style(void)
74e8221b52 888) return (isatty(1) || pager_in_use()) ? DATE_HUMAN :
DATE_NORMAL;
74e8221b52 909) return DATE_HUMAN;
74e8221b52 911) return auto_date_style();
fsck.c
a5dda2204a 858) repo_unuse_commit_buffer(the_repository, commit, buffer);
a5dda2204a 878) repo_read_object_file(the_repository,
a5dda2204a 879) &tag->object.oid, &type, &size);
http-push.c
a5dda2204a 1635) if (!repo_has_object_file(the_repository, &head_oid))
a5dda2204a 1642) if (!repo_has_object_file(the_repository,
&remote_ref->old_oid))
merge-recursive.c
4cdc48e412 1585) return -1;
4cdc48e412 1588) return -1;
4cdc48e412 1594) return -1;
4cdc48e412 1596) if (update_file(o, 1, b_oid, b_mode, collide_path))
4cdc48e412 1597) return -1;
4cdc48e412 1664) return -1;
4cdc48e412 1667) return -1;
4cdc48e412 1670) return -1;
b58ae691c0 1703) return -1;
387361a6a7 1738) return -1;
387361a6a7 1786) return -1;
387361a6a7 1795) new_path = unique_path(o, a->path, ci->branch1);
387361a6a7 1796) output(o, 1, _("Refusing to lose untracked file"
387361a6a7 1802) return -1;
387361a6a7 1805) return -1;
387361a6a7 1815) return -1;
387361a6a7 1831) return -1;
387361a6a7 1834) return -1;
midx.c
1dcd9f2043 184) return;
negotiator/default.c
a5dda2204a 71) if (repo_parse_commit(the_repository, commit))
packfile.c
dc7d664335 350) close_midx(o->multi_pack_index);
dc7d664335 351) o->multi_pack_index = NULL;
rebase-interactive.c
b74a37a5a7 26) warning(_("unrecognized setting %s for option "
6424061be4 107) return error_errno(_("could not write '%s''"), todo_file);
6424061be4 110) return error(_("could not copy '%s' to '%s'."), todo_file,
b74a37a5a7 174) goto leave_check;
refs.c
3a3b9d8cde 657) return 0;
refs/files-backend.c
revision.c
a5dda2204a 726) if (repo_parse_commit(the_repository, p) < 0)
sequencer.c
a5dda2204a 1597) repo_unuse_commit_buffer(the_repository, head_commit,
a5dda2204a 3821) repo_unuse_commit_buffer(the_repository,
b5d6062402 4486) strbuf_insert(buf, todo_list->items[insert].offset_in_buf +
b5d6062402 4498) int sequencer_add_exec_commands(const char *commands)
06d8136126 4505) return error_errno(_("could not read '%s'."), todo_file);
b5d6062402 4507) if (todo_list_parse_insn_buffer(todo_list.buf.buf,
&todo_list)) {
b5d6062402 4512) todo_list_add_exec_commands(&todo_list, commands);
b5d6062402 4513) res = write_message(todo_list.buf.buf,
todo_list.buf.len, todo_file, 0);
0cce4a2756 4514) todo_list_release(&todo_list);
b5d6062402 4516) return res;
b74a37a5a7 4576) goto out;
b74a37a5a7 4581) goto out;
b8dac44d10 4721) todo_list_release(&new_todo);
009173ed7b 4726) todo_list_release(&new_todo);
009173ed7b 4727) return error_errno(_("could not write '%s'"), todo_file);
9787d17d40 4921) int rearrange_squash_in_todo_file(void)
9787d17d40 4923) const char *todo_file = rebase_path_todo();
9787d17d40 4924) struct todo_list todo_list = TODO_LIST_INIT;
9787d17d40 4925) int res = 0;
9787d17d40 4927) if (strbuf_read_file_or_whine(&todo_list.buf,
todo_file) < 0)
9787d17d40 4928) return -1;
9787d17d40 4929) if (todo_list_parse_insn_buffer(todo_list.buf.buf,
&todo_list) < 0) {
9787d17d40 4930) todo_list_release(&todo_list);
9787d17d40 4931) return -1;
9787d17d40 4934) res = todo_list_rearrange_squash(&todo_list);
9787d17d40 4935) if (!res)
9787d17d40 4936) res = rewrite_file(todo_file, todo_list.buf.buf,
todo_list.buf.len);
9787d17d40 4938) todo_list_release(&todo_list);
setup.c
58b284a2e9 413) return config_error_nonbool(var);
sha1-array.c
7fdf90d541 91) oidcpy(&oids[dst], &oids[src]);
submodule-config.c
bcbc780d14 740) return CONFIG_INVALID_KEY;
45f5ef3d77 755) warning(_("Could not update .gitmodules entry %s"), key);
submodule.c
b303ef65e7 524) the_repository->submodule_prefix :
060675d4fc 1378) strbuf_release(&gitdir);
183be9660a 1501) struct get_next_submodule_task *task = task_cb;
183be9660a 1505) get_next_submodule_task_release(task);
183be9660a 1532) return 0;
183be9660a 1536) goto out;
183be9660a 1551) return 0;
tree.c
a5dda2204a 108) if (repo_parse_commit(the_repository, commit))
worktree.c
3a3b9d8cde 495) return -1;
3a3b9d8cde 508) return -1;
3a3b9d8cde 517) return -1;
ab3e1f78ae 537) break;
wrapper.c
5efde212fc 70) die("Out of memory, malloc failed (tried to allocate %"
PRIuMAX " bytes)",
5efde212fc 73) error("Out of memory, malloc failed (tried to allocate
%" PRIuMAX " bytes)",
Commits introducing uncovered code:
Alban Gruin 009173ed7: sequencer: change complete_action() to use
the refactored functions
Alban Gruin 06d813612: sequencer: fix a call to error() in
transform_todo_file()
Alban Gruin 6424061be: rebase-interactive: rewrite edit_todo_list()
to handle the initial edit
Alban Gruin 7ccfac40b: rebase--interactive: move
transform_todo_file() to rebase--interactive.c
Alban Gruin 9787d17d4: sequencer: refactor rearrange_squash() to
work on a todo_list
Alban Gruin b5d606240: sequencer: refactor
sequencer_add_exec_commands() to work on a todo_list
Alban Gruin b74a37a5a: sequencer: refactor check_todo_list() to
work on a todo_list
Alban Gruin b8dac44d1: sequencer: refactor skip_unnecessary_picks()
to work on a todo_list
Antonio Ospite 45f5ef3d7: submodule: factor out a
config_set_in_gitmodules_file_gently function
Antonio Ospite bcbc780d1: submodule: add a
print_config_from_gitmodules() helper
Antonio Ospite c22b82014: submodule: support reading .gitmodules
when it's not in the working tree
Derrick Stolee 1dcd9f204: midx: close multi-pack-index on repack
Derrick Stolee dc7d66433: packfile: close multi-pack-index in
close_all_packs
Elijah Newren 387361a6a: merge-recursive: improve
rename/rename(1to2)/add[/add] handling
Elijah Newren 4cdc48e41: merge-recursive: new function for better
colliding conflict resolutions
Elijah Newren b58ae691c: merge-recursive: fix rename/add conflict
handling
Junio C Hamano a5dda2204: treewide: apply cocci patch
Liam Beguin 0cce4a275: rebase -i -x: add exec commands via the
rebase--helper
Linus Torvalds 74e8221b5: Add 'human' date format
Martin Koegler 5efde212f: zlib.c: use size_t for size
Nguyễn Thái Ngọc Duy 3a3b9d8cd: refs: new ref types to make
per-worktree refs visible to all worktrees
Nguyễn Thái Ngọc Duy 58b284a2e: worktree: add per-worktree config files
Nguyễn Thái Ngọc Duy ab3e1f78a: revision.c: better error reporting
on ref from different worktrees
Nguyễn Thái Ngọc Duy b29759d89: fsck: check HEAD and reflog from
other worktrees
Nguyễn Thái Ngọc Duy c9ef0d95e: reflog expire: cover reflog from
all worktrees
Stefan Beller 060675d4f: submodule: migrate get_next_submodule to
use repository structs
Stefan Beller 183be9660: fetch: try fetching submodules if needed
objects were not fetched
Stefan Beller 7fdf90d54: sha1-array: provide oid_array_filter
Stefan Beller b303ef65e: submodule: use submodule repos for object
lookup
Uncovered in jch not in next
----------------------------
builtin/branch.c
0ecb1fc726 builtin/branch.c 452) die(_("could not resolve HEAD"));
0ecb1fc726 builtin/branch.c 458) die(_("HEAD (%s) points outside of
refs/heads/"), refname);
builtin/fetch.c
c806111692 builtin/fetch.c 373) continue; /* can this happen??? */
builtin/stash.c
3d5ec65ce8 builtin/stash--helper.c 126) error(_("'%s' is not a
stash-like commit"), revision);
3d5ec65ce8 builtin/stash--helper.c 127) free_stash_info(info);
3d5ec65ce8 builtin/stash--helper.c 128) exit(128);
3d5ec65ce8 builtin/stash--helper.c 161) free_stash_info(info);
3d5ec65ce8 builtin/stash--helper.c 162) fprintf_ln(stderr, _("No stash
entries found."));
3d5ec65ce8 builtin/stash--helper.c 163) return -1;
3d5ec65ce8 builtin/stash--helper.c 198) free_stash_info(info);
7005771171 builtin/stash--helper.c 225) return error(_("git stash clear
with parameters is "
3d5ec65ce8 builtin/stash--helper.c 241) return -1;
3d5ec65ce8 builtin/stash--helper.c 249) return -1;
3d5ec65ce8 builtin/stash--helper.c 262) return -1;
3d5ec65ce8 builtin/stash--helper.c 265) return error(_("unable to write
new index file"));
3d5ec65ce8 builtin/stash--helper.c 377) remove_path(stash_index_path.buf);
3d5ec65ce8 builtin/stash--helper.c 378) return -1;
3d5ec65ce8 builtin/stash--helper.c 405) return -1;
3d5ec65ce8 builtin/stash--helper.c 408) return error(_("cannot apply a
stash in the middle of a merge"));
3d5ec65ce8 builtin/stash--helper.c 418) strbuf_release(&out);
3d5ec65ce8 builtin/stash--helper.c 419) return error(_("Could not
generate diff %s^!."),
3d5ec65ce8 builtin/stash--helper.c 426) return error(_("Conflicts in
index."
3d5ec65ce8 builtin/stash--helper.c 432) return error(_("Could not save
index tree"));
3d5ec65ce8 builtin/stash--helper.c 439) return error(_("could not
restore untracked files from stash"));
3d5ec65ce8 builtin/stash--helper.c 470) return -1;
3d5ec65ce8 builtin/stash--helper.c 475) strbuf_release(&out);
3d5ec65ce8 builtin/stash--helper.c 480) strbuf_release(&out);
3d5ec65ce8 builtin/stash--helper.c 481) return -1;
7005771171 builtin/stash--helper.c 557) return error(_("%s: Could not
drop stash entry"),
5bf62a19c0 builtin/stash--helper.c 632) printf_ln(_("The stash entry is
kept in case "
104eb50d14 builtin/stash--helper.c 766) free_stash_info(&info);
193c3e3516 builtin/stash.c 767)
usage_with_options(git_stash_show_usage, options);
813904a0ce builtin/stash--helper.c 783) stash_msg = "Created via \"git
stash store\".";
813904a0ce builtin/stash--helper.c 789) if (!quiet) {
813904a0ce builtin/stash--helper.c 790) fprintf_ln(stderr, _("Cannot
update %s with %s"),
813904a0ce builtin/stash--helper.c 793) return -1;
813904a0ce builtin/stash--helper.c 817) if (!quiet)
813904a0ce builtin/stash--helper.c 818) fprintf_ln(stderr, _("\"git
stash store\" requires one "
813904a0ce builtin/stash--helper.c 820) return -1;
9f630e7480 builtin/stash--helper.c 902) return -1;
9f630e7480 builtin/stash--helper.c 962) ret = -1;
9f630e7480 builtin/stash--helper.c 963) goto done;
9f630e7480 builtin/stash--helper.c 968) ret = -1;
9f630e7480 builtin/stash--helper.c 969) goto done;
9f630e7480 builtin/stash--helper.c 974) ret = -1;
9f630e7480 builtin/stash--helper.c 975) goto done;
9f630e7480 builtin/stash--helper.c 1001) ret = -1;
9f630e7480 builtin/stash--helper.c 1002) goto done;
9f630e7480 builtin/stash--helper.c 1013) ret = -1;
9f630e7480 builtin/stash--helper.c 1014) goto done;
9f630e7480 builtin/stash--helper.c 1020) ret = -1;
9f630e7480 builtin/stash--helper.c 1021) goto done;
9f630e7480 builtin/stash--helper.c 1028) ret = -1;
9f630e7480 builtin/stash--helper.c 1029) goto done;
9f630e7480 builtin/stash--helper.c 1054) ret = -1;
9f630e7480 builtin/stash--helper.c 1055) goto done;
9f630e7480 builtin/stash--helper.c 1067) ret = -1;
9f630e7480 builtin/stash--helper.c 1068) goto done;
9f630e7480 builtin/stash--helper.c 1074) ret = -1;
9f630e7480 builtin/stash--helper.c 1075) goto done;
9f630e7480 builtin/stash--helper.c 1086) ret = -1;
9f630e7480 builtin/stash--helper.c 1087) goto done;
9f630e7480 builtin/stash--helper.c 1092) ret = -1;
9f630e7480 builtin/stash--helper.c 1093) goto done;
c2cc69f192 builtin/stash--helper.c 1128) fprintf_ln(stderr, _("You do
not have "
9f630e7480 builtin/stash--helper.c 1137) ret = 1;
9f630e7480 builtin/stash--helper.c 1138) goto done;
c2cc69f192 builtin/stash--helper.c 1154) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1155) fprintf_ln(stderr, _("Cannot
save the current "
9f630e7480 builtin/stash--helper.c 1157) ret = -1;
9f630e7480 builtin/stash--helper.c 1158) goto done;
c2cc69f192 builtin/stash--helper.c 1163) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1164) fprintf_ln(stderr, _("Cannot save "
9f630e7480 builtin/stash--helper.c 1166) ret = -1;
9f630e7480 builtin/stash--helper.c 1167) goto done;
c2cc69f192 builtin/stash--helper.c 1174) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1175) fprintf_ln(stderr, _("Cannot
save the current "
9f630e7480 builtin/stash--helper.c 1177) goto done;
c2cc69f192 builtin/stash--helper.c 1183) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1184) fprintf_ln(stderr, _("Cannot
save the current "
9f630e7480 builtin/stash--helper.c 1186) ret = -1;
9f630e7480 builtin/stash--helper.c 1187) goto done;
c2cc69f192 builtin/stash--helper.c 1213) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1214) fprintf_ln(stderr, _("Cannot
record "
9f630e7480 builtin/stash--helper.c 1216) ret = -1;
9f630e7480 builtin/stash--helper.c 1217) goto done;
1a0f0409a7 builtin/stash--helper.c 1289) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1290) goto done;
1a0f0409a7 builtin/stash--helper.c 1300) ret = -1;
c2cc69f192 builtin/stash--helper.c 1301) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1302) fprintf_ln(stderr, _("Cannot
initialize stash"));
1a0f0409a7 builtin/stash--helper.c 1303) goto done;
1a0f0409a7 builtin/stash--helper.c 1313) ret = -1;
c2cc69f192 builtin/stash--helper.c 1314) if (!quiet)
c2cc69f192 builtin/stash--helper.c 1315) fprintf_ln(stderr, _("Cannot
save the current status"));
1a0f0409a7 builtin/stash--helper.c 1316) goto done;
1a0f0409a7 builtin/stash--helper.c 1333) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1352) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1353) goto done;
1a0f0409a7 builtin/stash--helper.c 1362) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1363) goto done;
1a0f0409a7 builtin/stash--helper.c 1371) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1380) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1391) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1392) goto done;
1a0f0409a7 builtin/stash--helper.c 1401) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1402) goto done;
1a0f0409a7 builtin/stash--helper.c 1410) ret = -1;
1a0f0409a7 builtin/stash--helper.c 1436) ret = -1;
193c3e3516 builtin/stash.c 1568)
usage_msg_opt(xstrfmt(_("unknown subcommand: %s"), argv[0]),
193c3e3516 builtin/stash.c 1596) continue;
builtin/submodule--helper.c
e0a862fdaf 1648) url = sub->url;
hex.c
b3a41547ce 93) char *sha1_to_hex_r(char *buffer, const unsigned char *sha1)
b3a41547ce 95) return hash_to_hex_algop_r(buffer, sha1,
&hash_algos[GIT_HASH_SHA1]);
b3a41547ce 116) char *hash_to_hex(const unsigned char *hash)
b3a41547ce 118) return hash_to_hex_algop(hash, the_hash_algo);
revision.c
a63d88e595 2932) return;
a63d88e595 2935) return;
a63d88e595 2941) c->object.flags |= UNINTERESTING;
a63d88e595 2944) return;
a63d88e595 2947) mark_parents_uninteresting(c);
a63d88e595 2970) return;
a63d88e595 2973) return;
a63d88e595 2978) return;
a63d88e595 3042) continue;
f33f8de6af 3090) if (!revs->ignore_missing_links)
f33f8de6af 3091) die("Failed to traverse parents of commit %s",
a63d88e595 3092) oid_to_hex(&commit->object.oid));
a63d88e595 3100) continue;
sequencer.c
08b6ba5cc0 683) np = strchrnul(buf, '\n');
08b6ba5cc0 684) return error(_("unable to parse '%.*s'"),
08b6ba5cc0 695) return error(_("unable to dequote value of '%s'"),
08b6ba5cc0 737) goto finish;
08b6ba5cc0 742) name_i = error(_("'GIT_AUTHOR_NAME' already given"));
08b6ba5cc0 747) email_i = error(_("'GIT_AUTHOR_EMAIL' already given"));
08b6ba5cc0 752) date_i = error(_("'GIT_AUTHOR_DATE' already given"));
08b6ba5cc0 756) err = error(_("unknown variable '%s'"),
08b6ba5cc0 761) error(_("missing 'GIT_AUTHOR_NAME'"));
08b6ba5cc0 763) error(_("missing 'GIT_AUTHOR_EMAIL'"));
08b6ba5cc0 765) error(_("missing 'GIT_AUTHOR_DATE'"));
sha1-file.c
2f90b9d9b4 sha1-file.c 172) int hash_algo_by_name(const char *name)
2f90b9d9b4 sha1-file.c 175) if (!name)
2f90b9d9b4 sha1-file.c 176) return GIT_HASH_UNKNOWN;
2f90b9d9b4 sha1-file.c 177) for (i = 1; i < GIT_HASH_NALGOS; i++)
2f90b9d9b4 sha1-file.c 178) if (!strcmp(name, hash_algos[i].name))
2f90b9d9b4 sha1-file.c 179) return i;
2f90b9d9b4 sha1-file.c 180) return GIT_HASH_UNKNOWN;
2f90b9d9b4 sha1-file.c 183) int hash_algo_by_id(uint32_t format_id)
2f90b9d9b4 sha1-file.c 186) for (i = 1; i < GIT_HASH_NALGOS; i++)
2f90b9d9b4 sha1-file.c 187) if (format_id == hash_algos[i].format_id)
2f90b9d9b4 sha1-file.c 188) return i;
2f90b9d9b4 sha1-file.c 189) return GIT_HASH_UNKNOWN;
upload-pack.c
1d1243fe63 1403) deepen(INFINITE_DEPTH, data->deepen_relative,
&data->shallows,
Commits introducing uncovered code:
brian m. carlson 2f90b9d9b: sha1-file: provide functions to look up
hash algorithms
brian m. carlson b3a41547c: hex: introduce functions to print
arbitrary hashes
Daniels Umanovskis 0ecb1fc72: branch: introduce --show-current
display option
Derrick Stolee a63d88e59: revision.c: generation-based topo-order
algorithm
Derrick Stolee f33f8de6a: revision.c: begin refactoring
--topo-order logic
Joel Teichroeb 3d5ec65ce: stash: convert apply to builtin
Joel Teichroeb 5bf62a19c: stash: convert pop to builtin
Joel Teichroeb 700577117: stash: convert drop and clear to builtin
Jonathan Tan 1d1243fe6: upload-pack: make want_obj not global
Junio C Hamano c80611169: fetch: replace string-list used as a
look-up table with a hashmap
Paul-Sebastian Ungureanu 104eb50d1: stash: convert show to builtin
Paul-Sebastian Ungureanu 193c3e351: stash: convert
`stash--helper.c` into `stash.c`
Paul-Sebastian Ungureanu 1a0f0409a: stash: convert push to builtin
Paul-Sebastian Ungureanu 813904a0c: stash: convert store to builtin
Paul-Sebastian Ungureanu 9f630e748: stash: convert create to builtin
Paul-Sebastian Ungureanu c2cc69f19: stash: make push -q quiet
Phillip Wood 08b6ba5cc: add read_author_script() to libgit
Stefan Beller e0a862fda: submodule helper: convert relative URL to
absolute URL if needed
Uncovered in next not in master
-------------------------------
apply.c
eccb5a5f3d 4071) return get_oid_hex(p->old_oid_prefix, oid);
builtin/archive.c
e001fd3a50 builtin/archive.c 78) die(_("git archive: expected ACK/NAK,
got a flush packet"));
e001fd3a50 builtin/archive.c 80) if (starts_with(reader.line, "NACK "))
e001fd3a50 builtin/archive.c 81) die(_("git archive: NACK %s"),
reader.line + 5);
e001fd3a50 builtin/archive.c 82) if (starts_with(reader.line, "ERR "))
e001fd3a50 builtin/archive.c 83) die(_("remote error: %s"), reader.line
+ 4);
e001fd3a50 builtin/archive.c 84) die(_("git archive: protocol error"));
e001fd3a50 builtin/archive.c 89) die(_("git archive: expected a flush"));
fb19d32f05 builtin/archive.c 99) if (version != discover_version(&reader))
fb19d32f05 builtin/archive.c 100) die(_("git archive: received different
protocol versions in subsequent requests"));
builtin/rebase--interactive.c
53bbcfbde7 builtin/rebase--interactive2.c 24) return error(_("no HEAD?"));
53bbcfbde7 builtin/rebase--interactive2.c 51) return
error_errno(_("could not create temporary %s"), path_state_dir());
53bbcfbde7 builtin/rebase--interactive2.c 57) return
error_errno(_("could not mark as interactive"));
53bbcfbde7 builtin/rebase--interactive2.c 77) return -1;
53bbcfbde7 builtin/rebase--interactive2.c 81) return -1;
53bbcfbde7 builtin/rebase--interactive2.c 87) free(revisions);
53bbcfbde7 builtin/rebase--interactive2.c 88) free(shortrevisions);
53bbcfbde7 builtin/rebase--interactive2.c 90) return -1;
53bbcfbde7 builtin/rebase--interactive2.c 98) free(revisions);
53bbcfbde7 builtin/rebase--interactive2.c 99) free(shortrevisions);
53bbcfbde7 builtin/rebase--interactive2.c 101) return
error_errno(_("could not open %s"), rebase_path_todo());
53bbcfbde7 builtin/rebase--interactive2.c 106)
argv_array_push(&make_script_args, restrict_revision);
53bbcfbde7 builtin/rebase--interactive2.c 114) error(_("could not
generate todo list"));
53bbcfbde7 builtin/rebase--interactive2.c 206)
usage_with_options(builtin_rebase_interactive_usage, options);
53bbcfbde7 builtin/rebase--interactive2.c 220)
warning(_("--[no-]rebase-cousins has no effect without "
0af129b2ed builtin/rebase--interactive2.c 226) die(_("a base commit must
be provided with --upstream or --onto"));
34b47315d9 builtin/rebase--interactive.c 261) ret = rearrange_squash();
34b47315d9 builtin/rebase--interactive.c 262) break;
34b47315d9 builtin/rebase--interactive.c 264) ret =
sequencer_add_exec_commands(cmd);
34b47315d9 builtin/rebase--interactive.c 265) break;
builtin/rebase.c
55071ea248 61) strbuf_trim(&out);
55071ea248 62) ret = !strcmp("true", out.buf);
55071ea248 63) strbuf_release(&out);
002ee2fe68 115) die(_("%s requires an interactive rebase"), option);
f95736288a 148) return error_errno(_("could not read '%s'"), path);
f95736288a 162) return -1;
f95736288a 167) return error(_("could not get 'onto': '%s'"), buf.buf);
f95736288a 178) return -1;
f95736288a 179) } else if (read_one(state_dir_path("head", opts), &buf))
f95736288a 180) return -1;
f95736288a 182) return error(_("invalid orig-head: '%s'"), buf.buf);
f95736288a 186) return -1;
f95736288a 188) opts->flags &= ~REBASE_NO_QUIET;
73d51ed0a5 196) opts->signoff = 1;
73d51ed0a5 197) opts->flags |= REBASE_FORCE;
ead98c111b 204) return -1;
12026a412c 219) return -1;
ba1905a5fe 227) return -1;
ba1905a5fe 235) return -1;
6defce2b02 255) return error(_("Could not read '%s'"), path);
6defce2b02 271) res = error(_("Cannot store %s"), autostash.buf);
6defce2b02 275) return res;
bc24382c2b 373) argv_array_pushf(&child.args,
bc24382c2b 375) oid_to_hex(&opts->restrict_revision->object.oid));
ac7f467fef 507) struct strbuf dir = STRBUF_INIT;
6defce2b02 509) apply_autostash(opts);
ac7f467fef 510) strbuf_addstr(&dir, opts->state_dir);
ac7f467fef 511) remove_dir_recursively(&dir, 0);
ac7f467fef 512) strbuf_release(&dir);
ac7f467fef 513) die("Nothing to do");
ac7f467fef 543) return -1;
ac7f467fef 547) rollback_lock_file(&lock);
ac7f467fef 548) return error(_("could not determine HEAD revision"));
ac7f467fef 565) rollback_lock_file(&lock);
ac7f467fef 566) return error(_("could not read index"));
ac7f467fef 570) error(_("failed to find tree of %s"), oid_to_hex(oid));
ac7f467fef 571) rollback_lock_file(&lock);
ac7f467fef 572) free((void *)desc.buffer);
ac7f467fef 573) return -1;
ac7f467fef 586) ret = error(_("could not write index"));
ac7f467fef 590) return ret;
ac7f467fef 606) } else if (old_orig)
ac7f467fef 607) delete_ref(NULL, "ORIG_HEAD", old_orig, 0);
bff014dac7 635) opts->flags &= !REBASE_DIFFSTAT;
9a48a615b4 669) return 1;
9a48a615b4 685) return 0;
55071ea248 893) const char *path = mkpath("%s/git-legacy-rebase",
55071ea248 896) if (sane_execvp(path, (char **)argv) < 0)
55071ea248 897) die_errno(_("could not exec %s"), path);
0eabf4b95c 915) die(_("It looks like 'git am' is in progress. Cannot
rebase."));
f28d40d3a9 952) usage_with_options(builtin_rebase_usage,
f95736288a 972) die(_("Cannot read HEAD"));
f95736288a 976) die(_("could not read index"));
f95736288a 990) exit(1);
122420c295 1002) die(_("could not discard worktree changes"));
122420c295 1004) exit(1);
5e5d96197c 1015) exit(1);
5e5d96197c 1018) die(_("could not move back to %s"),
5a61494539 1028) die(_("could not remove '%s'"), options.state_dir);
c54dacb50e 1047) const char *last_slash = strrchr(options.state_dir, '/');
c54dacb50e 1048) const char *state_dir_base =
c54dacb50e 1049) last_slash ? last_slash + 1 : options.state_dir;
c54dacb50e 1050) const char *cmd_live_rebase =
c54dacb50e 1052) strbuf_reset(&buf);
c54dacb50e 1053) strbuf_addf(&buf, "rm -fr \"%s\"", options.state_dir);
c54dacb50e 1054) die(_("It seems that there is already a %s directory,
and\n"
53f9e5be94 1078) strbuf_addstr(&options.git_am_opt, " --ignore-date");
53f9e5be94 1079) options.flags |= REBASE_FORCE;
7998dbe1ec 1091) strbuf_addf(&options.git_am_opt, " -C%d", opt_c);
3c3588c7d3 1123) else if (strcmp("no-rebase-cousins", rebase_merges))
3c3588c7d3 1124) die(_("Unknown mode: %s"), rebase_merges);
ba1905a5fe 1146) die(_("--strategy requires --merge or --interactive"));
cda614e489 1164) strbuf_addstr(&options.git_format_patch_opt, "
--progress");
ac7f467fef 1173) options.state_dir = apply_dir();
ac7f467fef 1174) break;
ac7f467fef 1251) die(_("invalid upstream '%s'"), options.upstream_name);
9dba809a69 1257) die(_("Could not create new root commit"));
e65123a71d 1307) die(_("fatal: no such branch/commit '%s'"),
ac7f467fef 1315) die(_("No such ref: %s"), "HEAD");
ac7f467fef 1327) die(_("Could not resolve HEAD to a revision"));
e0333e5c63 1340) die(_("could not read index"));
6defce2b02 1367) die(_("Cannot autostash"));
6defce2b02 1370) die(_("Unexpected stash response: '%s'"),
6defce2b02 1376) die(_("Could not create directory for '%s'"),
6defce2b02 1382) die(_("could not reset --hard"));
e65123a71d 1426) ret = !!error(_("could not parse '%s'"),
e65123a71d 1428) goto cleanup;
e65123a71d 1437) ret = !!error(_("could not switch to "
1ed9c14ff2 1447) resolve_ref_unsafe("HEAD", 0, NULL, &flag))
1ed9c14ff2 1448) puts(_("HEAD is up to date."));
9a48a615b4 1457) resolve_ref_unsafe("HEAD", 0, NULL, &flag))
9a48a615b4 1458) puts(_("HEAD is up to date, rebase forced."));
builtin/repack.c
2f0c9e9a9b 239) die("repack: Expecting full hex object ID lines only
from pack-objects.");
2f0c9e9a9b 411) die("repack: Expecting full hex object ID lines only
from pack-objects.");
builtin/rev-list.c
7c0fe330d5 builtin/rev-list.c 227) die("unexpected missing %s object '%s'",
7c0fe330d5 builtin/rev-list.c 228) type_name(obj->type),
oid_to_hex(&obj->oid));
builtin/upload-archive.c
e001fd3a50 builtin/upload-archive.c 113) if (version == protocol_v0 ||
version == protocol_v1)
e001fd3a50 builtin/upload-archive.c 114) packet_write_fmt(1, "NACK
unable to spawn subprocess\n");
e001fd3a50 builtin/upload-archive.c 115) else if (version == protocol_v2)
e001fd3a50 builtin/upload-archive.c 116) error_clnt("unable to spawn
subprocess\n");
gpg-interface.c
4de9394dcb 155) break;
http-backend.c
fb19d32f05 646) argv[1] = ".";
fb19d32f05 647) argv[2] = NULL;
http.c
21084e84a4 316) free(http_ssl_backend);
21084e84a4 317) http_ssl_backend = xstrdup_or_null(value);
21084e84a4 318) return 0;
93aef7c79b 322) http_schannel_check_revoke = git_config_bool(var, value);
93aef7c79b 323) return 0;
b67d40adbb 327) http_schannel_use_ssl_cainfo = git_config_bool(var, value);
b67d40adbb 328) return 0;
93aef7c79b 833) !http_schannel_check_revoke) {
93aef7c79b 835) curl_easy_setopt(result, CURLOPT_SSL_OPTIONS,
CURLSSLOPT_NO_REVOKE);
b67d40adbb 883) !http_schannel_use_ssl_cainfo) {
b67d40adbb 884) curl_easy_setopt(result, CURLOPT_CAINFO, NULL);
list-objects-filter-options.c
bc5975d24f 55) if (errbuf) {
bc5975d24f 56) strbuf_addstr(
bc5975d24f 60) return 1;
cc0b05a4cc 86) if (errbuf)
list-objects-filter.c
list-objects.c
f447a499db 200) ctx->show_object(obj, base->buf, ctx->show_data);
pretty.c
4de9394dcb 1264) if (c->signature_check.primary_key_fingerprint)
4de9394dcb 1265) strbuf_addstr(sb,
c->signature_check.primary_key_fingerprint);
4de9394dcb 1266) break;
rebase-interactive.c
64a43cbd5d 62) return error_errno(_("could not read '%s'."), todo_file);
64a43cbd5d 66) strbuf_release(&buf);
64a43cbd5d 67) return -1;
a9f5476fbc 75) return error_errno(_("could not read '%s'."), todo_file);
a9f5476fbc 79) strbuf_release(&buf);
a9f5476fbc 80) return -1;
64a43cbd5d 86) return -1;
ref-filter.c
f0062d3b74 1035) v->s = xstrdup("");
f0062d3b74 1298) free((char *)to_free);
f0062d3b74 1299) return xstrdup("");
f0062d3b74 1336) free((char *)to_free);
f0062d3b74 1337) return xstrdup("");
f0062d3b74 1387) *s = xstrdup("=");
f0062d3b74 1389) *s = xstrdup("<");
f0062d3b74 1514) ref->symref = xstrdup("");
f0062d3b74 1583) v->s = xstrdup("");
sequencer.c
65850686cf 2278) return;
65850686cf 2375) write_file(rebase_path_quiet(), "%s\n", quiet);
2c58483a59 3373) return error(_("could not checkout %s"), commit);
4df66c40b0 3387) return error(_("%s: not a valid OID"), orig_head);
71f82465b1 3407) fprintf(stderr, _("Stopped at HEAD\n"));
b97e187364 4771) return -1;
b97e187364 4774) return -1;
b97e187364 4780) return error_errno(_("could not read '%s'."), todo_file);
b97e187364 4783) todo_list_release(&todo_list);
b97e187364 4784) return error(_("unusable todo list: '%s'"), todo_file);
b97e187364 4803) todo_list_release(&todo_list);
b97e187364 4804) return -1;
b97e187364 4808) return error(_("could not copy '%s' to '%s'."), todo_file,
b97e187364 4812) return error(_("could not transform the todo list"));
b97e187364 4841) return error(_("could not transform the todo list"));
b97e187364 4844) return error(_("could not skip unnecessary pick
commands"));
b97e187364 4850) return -1;
strbuf.c
f95736288a 127) --sb->len;
transport-helper.c
fb19d32f05 643) if (!data->connect && !data->stateless_connect)
Commits introducing uncovered code:
Alban Gruin 0af129b2e: rebase--interactive2: rewrite the submodes
of interactive rebase in C
Alban Gruin 2c58483a5: rebase -i: rewrite setup_reflog_action() in C
Alban Gruin 34b47315d: rebase -i: move rebase--helper modes to
rebase--interactive
Alban Gruin 4df66c40b: rebase -i: rewrite checkout_onto() in C
Alban Gruin 53bbcfbde: rebase -i: implement the main part of
interactive rebase as a builtin
Alban Gruin 64a43cbd5: rebase -i: rewrite the edit-todo
functionality in C
Alban Gruin 65850686c: rebase -i: rewrite write_basic_state() in C
Alban Gruin a9f5476fb: sequencer: refactor append_todo_help() to
write its message to a buffer
Alban Gruin b97e18736: rebase -i: rewrite complete_action() in C
Brendan Forster 93aef7c79: http: add support for disabling SSL
revocation checks in cURL
brian m. carlson 2f0c9e9a9: builtin/repack: replace hard-coded
constants
brian m. carlson eccb5a5f3: apply: rename new_sha1_prefix and
old_sha1_prefix
Johannes Schindelin 21084e84a: http: add support for selecting SSL
backends at runtime
Johannes Schindelin 71f82465b: rebase -i: introduce the 'break' command
Johannes Schindelin b67d40adb: http: when using Secure Channel,
ignore sslCAInfo by default
Johannes Schindelin bc24382c2: builtin rebase: prepare for builtin
rebase -i
Josh Steadmon e001fd3a5: archive: implement protocol v2 archive command
Josh Steadmon fb19d32f0: archive: allow archive over HTTP(S) with
proto v2
Matthew DeVore 7c0fe330d: rev-list: handle missing tree objects
properly
Matthew DeVore bc5975d24: list-objects-filter: implement filter tree:0
Matthew DeVore cc0b05a4c: list-objects-filter-options: do not
over-strbuf_init
Matthew DeVore f447a499d: list-objects: store common func args in
struct
Michał Górny 4de9394dc: gpg-interface.c: obtain primary key
fingerprint as well
Olga Telezhnaya f0062d3b7: ref-filter: free item->value and
item->value->s
Pratik Karki 002ee2fe6: builtin rebase: support `keep-empty` option
Pratik Karki 0eabf4b95: builtin rebase: stop if `git am` is in progress
Pratik Karki 12026a412: builtin rebase: support `--gpg-sign` option
Pratik Karki 122420c29: builtin rebase: support --skip
Pratik Karki 1ed9c14ff: builtin rebase: support --force-rebase
Pratik Karki 3c3588c7d: builtin rebase: support
--rebase-merges[=[no-]rebase-cousins]
Pratik Karki 53f9e5be9: builtin rebase: support `ignore-date` option
Pratik Karki 55071ea24: rebase: start implementing it as a builtin
Pratik Karki 5a6149453: builtin rebase: support --quit
Pratik Karki 5e5d96197: builtin rebase: support --abort
Pratik Karki 6defce2b0: builtin rebase: support `--autostash` option
Pratik Karki 73d51ed0a: builtin rebase: support --signoff
Pratik Karki 7998dbe1e: builtin rebase: support `-C` and
`--whitespace=<type>`
Pratik Karki 9a48a615b: builtin rebase: try to fast forward when
possible
Pratik Karki 9dba809a6: builtin rebase: support --root
Pratik Karki ac7f467fe: builtin/rebase: support running "git rebase
<upstream>"
Pratik Karki ba1905a5f: builtin rebase: add support for custom
merge strategies
Pratik Karki bff014dac: builtin rebase: support the `verbose` and
`diffstat` options
Pratik Karki c54dacb50: builtin rebase: start a new rebase only if
none is in progress
Pratik Karki cda614e48: builtin rebase: show progress when
connected to a terminal
Pratik Karki e0333e5c6: builtin rebase: require a clean worktree
Pratik Karki e65123a71: builtin rebase: support `git rebase
<upstream> <switch-to>`
Pratik Karki ead98c111: builtin rebase: support --rerere-autoupdate
Pratik Karki f28d40d3a: builtin rebase: support --onto
Pratik Karki f95736288: builtin rebase: support --continue
Uncovered in mater not in master@{1}
------------------------------------
builtin/help.c
e6e76baaf4 builtin/help.c 429) if (!exclude_guides || alias[0] == '!') {
e6e76baaf4 builtin/help.c 430) printf_ln(_("'%s' is aliased to '%s'"),
cmd, alias);
e6e76baaf4 builtin/help.c 431) free(alias);
e6e76baaf4 builtin/help.c 432) exit(0);
e6e76baaf4 builtin/help.c 441) fprintf_ln(stderr, _("'%s' is aliased to
'%s'"), cmd, alias);
e6e76baaf4 builtin/help.c 442) count = split_cmdline(alias, &argv);
e6e76baaf4 builtin/help.c 443) if (count < 0)
e6e76baaf4 builtin/help.c 444) die(_("bad alias.%s string: %s"), cmd,
e6e76baaf4 builtin/help.c 446) free(argv);
e6e76baaf4 builtin/help.c 448) return alias;
git.c
a9a60b94cc 322) fprintf_ln(stderr, _("'%s' is aliased to '%s'"),
ident.c
501afcb8b0 172) strbuf_addstr(&git_default_email, email);
501afcb8b0 173) free((char *)email);
packfile.c
1127a98cce 117) return error("index file %s is too small", path);
1127a98cce 119) return error("empty data");
split-index.c
e3d837989e 335) ce->ce_flags |= CE_UPDATE_IN_BASE;
Commits introducing uncovered code:
Johannes Schindelin 501afcb8b: mingw: use domain information for
default email
Josh Steadmon 1127a98cc: fuzz: add fuzz testing for packfile indices.
Rasmus Villemoes a9a60b94c: git.c: handle_alias: prepend alias info
when first argument is -h
Rasmus Villemoes e6e76baaf: help: redirect to aliased commands for
"git cmd --help"
SZEDER Gábor e3d837989: split-index: don't compare cached data of
entries already marked for split index