{"thread":{"id":"49746","subject":"Git Test Coverage Report (Friday, Nov 2)","startedAt":"2018-11-03T02:16:55Z","lastAt":"2018-11-04T09:18:02Z","messageCount":7,"participants":["Derrick Stolee","Junio C Hamano","Michał Górny","SZEDER Gábor"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"362329","messageId":"784741be-6045-12bb-75b9-0df6f4c612b7@gmail.com","threadId":"49746","inReplyTo":null,"subject":"Git Test Coverage Report (Friday, Nov 2)","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2018-11-03T02:16:48Z","receivedAt":"2018-11-03T02:16:55Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"Here is the coverage report for today. Some builds were timing out, so I \nremoved the tests with number 9000 or more from the build [1]. Hopefully \nthis is a temporary measure.\n\nThanks,\n\n-Stolee\n\n[1] \nhttps://dev.azure.com/git/git/_build/results?buildId=250&_a=summary&view=logs\n\n---\n\npu: 44234e885f450a57812806cefe0d4aa3f43f2800\njch: 35594a3ecc09908facb9790ba3817ad08d2af8e1\nnext: 96ac06677ac950c97d331f0ef4892125027eff39\nmaster: d582ea202b626dcc6c3b01e1e11a296d9badd730\nmaster@{1}: 4ede3d42dfb57f9a41ac96a1f216c62eb7566cc2\n\nUncovered code in 'pu' not in 'jch'\n--------------------------------------\n\nbuiltin/blame.c\n44234e885f builtin/blame.c    200) \nrepo_unuse_commit_buffer(the_repository, commit, message);\n74e8221b52 builtin/blame.c    924) blame_date_width = sizeof(\"Thu Oct 19 \n16:00\");\n74e8221b52 builtin/blame.c    925) break;\n\nbuiltin/describe.c\n44234e885f builtin/describe.c 257) repo_parse_commit(the_repository, p);\n\nbuiltin/fsck.c\n255a564e58 builtin/fsck.c 622) fprintf_ln(stderr, _(\"Checking %s link\"), \nhead_ref_name);\n255a564e58 builtin/fsck.c 627) return error(_(\"invalid %s\"), head_ref_name);\n\nbuiltin/grep.c\n76e9bdc437 builtin/grep.c  429) grep_read_unlock();\n\nbuiltin/pack-objects.c\n44234e885f builtin/pack-objects.c 2832) if \n(!repo_has_object_file(the_repository, &obj->oid) && \nis_promisor_object(&obj->oid))\n\nbuiltin/reflog.c\nc9ef0d95eb builtin/reflog.c 585) all_worktrees = 0;\nc9ef0d95eb builtin/reflog.c 621) continue;\n\ndate.c\n74e8221b52  113) die(\"Timestamp too large for this system: %\"PRItime, time);\n74e8221b52  216) if (tm->tm_mon == human_tm->tm_mon) {\n74e8221b52  217) if (tm->tm_mday > human_tm->tm_mday) {\n74e8221b52  219) } else if (tm->tm_mday == human_tm->tm_mday) {\n74e8221b52  220) hide.date = hide.wday = 1;\n74e8221b52  221) } else if (tm->tm_mday + 5 > human_tm->tm_mday) {\n74e8221b52  223) hide.date = 1;\n74e8221b52  231) gettimeofday(&now, NULL);\n74e8221b52  232) show_date_relative(time, tz, &now, buf);\n74e8221b52  233) return;\n74e8221b52  246) hide.seconds = 1;\n74e8221b52  247) hide.tz |= !hide.date;\n74e8221b52  248) hide.wday = hide.time = !hide.year;\n74e8221b52  262) strbuf_rtrim(buf);\n74e8221b52  287) gettimeofday(&now, NULL);\n74e8221b52  290) human_tz = local_time_tzoffset(now.tv_sec, &human_tm);\n74e8221b52  886) static int auto_date_style(void)\n74e8221b52  888) return (isatty(1) || pager_in_use()) ? DATE_HUMAN : \nDATE_NORMAL;\n74e8221b52  909) return DATE_HUMAN;\n74e8221b52  911) return auto_date_style();\n\nfast-import.c\n44234e885f 2935) buf = repo_read_object_file(the_repository, oid, &type, \n&size);\n44234e885f 3041) buf = repo_read_object_file(the_repository, oid, &unused,\n\nfsck.c\n44234e885f  858) repo_unuse_commit_buffer(the_repository, commit, buffer);\n44234e885f  878) repo_read_object_file(the_repository,\n44234e885f  879)       &tag->object.oid, &type, &size);\n\nhttp-push.c\n44234e885f 1635) if (!repo_has_object_file(the_repository, &head_oid))\n44234e885f 1642) if (!repo_has_object_file(the_repository, \n&remote_ref->old_oid))\n\nmerge-recursive.c\n4cdc48e412 1585) return -1;\n4cdc48e412 1588) return -1;\n4cdc48e412 1594) return -1;\n4cdc48e412 1596) if (update_file(o, 1, b_oid, b_mode, collide_path))\n4cdc48e412 1597) return -1;\n4cdc48e412 1664) return -1;\n4cdc48e412 1667) return -1;\n4cdc48e412 1670) return -1;\nb58ae691c0 1703) return -1;\n387361a6a7 1738) return -1;\n387361a6a7 1786) return -1;\n387361a6a7 1795) new_path = unique_path(o, a->path, ci->branch1);\n387361a6a7 1796) output(o, 1, _(\"Refusing to lose untracked file\"\n387361a6a7 1802) return -1;\n387361a6a7 1805) return -1;\n387361a6a7 1815) return -1;\n387361a6a7 1831) return -1;\n387361a6a7 1834) return -1;\n\nnegotiator/default.c\n44234e885f  71) if (repo_parse_commit(the_repository, commit))\n\nrefs.c\n3a3b9d8cde  657) return 0;\n\nrefs/files-backend.c\nremote.c\n879b6a9e6f 1140) return error(_(\"dst ref %s receives from more than one \nsrc.\"),\n\nrevision.c\n44234e885f  726) if (repo_parse_commit(the_repository, p) < 0)\n\nsequencer.c\n44234e885f 1624) repo_unuse_commit_buffer(the_repository, head_commit,\n44234e885f 3868) repo_unuse_commit_buffer(the_repository,\n\nsha1-array.c\nbba406749a 91) oidcpy(&oids[dst], &oids[src]);\n\nsubmodule-config.c\nbcbc780d14 740) return CONFIG_INVALID_KEY;\n45f5ef3d77 755) warning(_(\"Could not update .gitmodules entry %s\"), key);\n\nsubmodule.c\nb303ef65e7  524) the_repository->submodule_prefix :\ne2419f7e30 1378) strbuf_release(&gitdir);\n7454fe5cb6 1501) struct get_next_submodule_task *task = task_cb;\n7454fe5cb6 1505) get_next_submodule_task_release(task);\n7454fe5cb6 1532) return 0;\n7454fe5cb6 1536) goto out;\n7454fe5cb6 1551) return 0;\n\ntree.c\n44234e885f 108) if (repo_parse_commit(the_repository, commit))\n\nworktree.c\n3a3b9d8cde 495) return -1;\n3a3b9d8cde 508) return -1;\n3a3b9d8cde 517) return -1;\nab3e1f78ae 537) break;\n\nwrapper.c\n5efde212fc  70) die(\"Out of memory, malloc failed (tried to allocate %\" \nPRIuMAX \" bytes)\",\n5efde212fc  73) error(\"Out of memory, malloc failed (tried to allocate \n%\" PRIuMAX \" bytes)\",\n\nCommits introducing uncovered code:\nÆvar Arnfjörð Bjarmason      879b6a9e6: i18n: remote.c: mark error(...) \nmessages for translation\nAntonio Ospite      45f5ef3d7: submodule: factor out a \nconfig_set_in_gitmodules_file_gently function\nAntonio Ospite      76e9bdc43: submodule: support reading .gitmodules \nwhen it's not in the working tree\nAntonio Ospite      bcbc780d1: submodule: add a \nprint_config_from_gitmodules() helper\nElijah Newren      387361a6a: merge-recursive: improve \nrename/rename(1to2)/add[/add] handling\nElijah Newren      4cdc48e41: merge-recursive: new function for better \ncolliding conflict resolutions\nElijah Newren      b58ae691c: merge-recursive: fix rename/add conflict \nhandling\nJunio C Hamano      255a564e5: Merge branch \n'nd/per-worktree-ref-iteration' into pu\nJunio C Hamano      44234e885: treewide: apply cocci patch\nLinus Torvalds      74e8221b5: Add 'human' date format\nMartin Koegler      5efde212f: zlib.c: use size_t for size\nNguyễn Thái Ngọc Duy      3a3b9d8cd: refs: new ref types to make \nper-worktree refs visible to all worktrees\nNguyễn Thái Ngọc Duy      ab3e1f78a: revision.c: better error reporting \non ref from different worktrees\nNguyễn Thái Ngọc Duy      c9ef0d95e: reflog expire: cover reflog from \nall worktrees\nStefan Beller      7454fe5cb: fetch: try fetching submodules if needed \nobjects were not fetched\nStefan Beller      b303ef65e: submodule: use submodule repos for object \nlookup\nStefan Beller      bba406749: sha1-array: provide oid_array_filter\nStefan Beller      e2419f7e3: submodule: migrate get_next_submodule to \nuse repository structs\n\n\n\nUncovered code in 'jch' not in 'next'\n----------------------------------------\n\narchive.c\n48a40549d5 399) die(_(\"'%s' is not a valid object name\"), name);\n48a40549d5 412) die(_(\"%s is not a tree object\"), oid_to_hex(&oid));\n48a40549d5 422) die(_(\"current working directory is untracked\"));\n\nattr.c\n847aa0ff7a  369) fprintf(stderr, _(\"%s not allowed: %s:%d\\n\"),\n\nbuiltin/branch.c\n0ecb1fc726 builtin/branch.c 452) die(_(\"could not resolve HEAD\"));\n0ecb1fc726 builtin/branch.c 458) die(_(\"HEAD (%s) points outside of \nrefs/heads/\"), refname);\n\nbuiltin/cat-file.c\n98f425b453 builtin/cat-file.c  56) die(\"unable to stream %s to stdout\", \noid_to_hex(oid));\n\nbuiltin/fetch.c\nbuiltin/fsck.c\n09120ea781 builtin/fsck.c 154) objerror(parent, _(\"wrong object type in \nlink\"));\n09120ea781 builtin/fsck.c 265) printf_ln(_(\"unreachable %s %s\"), \nprintable_type(obj),\n09120ea781 builtin/fsck.c 293) error(_(\"could not create lost-found\"));\n09120ea781 builtin/fsck.c 300) die_errno(_(\"could not write '%s'\"), \nfilename);\n09120ea781 builtin/fsck.c 304) die_errno(_(\"could not finish '%s'\"),\n09120ea781 builtin/fsck.c 321) fprintf_ln(stderr, _(\"Checking %s\"), \ndescribe_object(obj));\n09120ea781 builtin/fsck.c 339) fprintf_ln(stderr, _(\"Checking \nconnectivity (%d objects)\"), max);\n09120ea781 builtin/fsck.c 358) fprintf_ln(stderr, _(\"Checking %s %s\"),\n09120ea781 builtin/fsck.c 371) printf_ln(_(\"root %s\"),\n09120ea781 builtin/fsck.c 407) return error(_(\"%s: object corrupt or \nmissing\"),\n09120ea781 builtin/fsck.c 446) fprintf_ln(stderr, _(\"Checking reflog \n%s->%s\"),\n09120ea781 builtin/fsck.c 545) error(_(\"%s: object could not be parsed: \n%s\"),\n09120ea781 builtin/fsck.c 580) fprintf_ln(stderr, _(\"Checking object \ndirectory\"));\n09120ea781 builtin/fsck.c 596) fprintf_ln(stderr, _(\"Checking HEAD link\"));\n09120ea781 builtin/fsck.c 601) return error(_(\"invalid HEAD\"));\n09120ea781 builtin/fsck.c 628) fprintf_ln(stderr, _(\"Checking cache tree\"));\n09120ea781 builtin/fsck.c 644) err |= objerror(obj, _(\"non-tree in \ncache-tree\"));\n\nbuiltin/grep.c\n389f2f2d79 builtin/grep.c 1034) die(_(\"invalid number of threads \nspecified (%d)\"), num_threads);\n\nbuiltin/merge.c\n35408df41e builtin/merge.c  131) return error(_(\"option `%s' requires a \nvalue\"), opt->long_name);\n\nbuiltin/reflog.c\nb9c4009cca builtin/reflog.c 563) usage(_(reflog_expire_usage));\nb9c4009cca builtin/reflog.c 605) status |= error(_(\"%s points \nnowhere!\"), argv[i]);\nb9c4009cca builtin/reflog.c 651) usage(_(reflog_delete_usage));\nb9c4009cca builtin/reflog.c 657) return error(_(\"nothing to delete?\"));\nb9c4009cca builtin/reflog.c 666) status |= error(_(\"not a reflog: %s\"), \nargv[i]);\nb9c4009cca builtin/reflog.c 671) status |= error(_(\"no reflog for \n'%s'\"), argv[i]);\nb9c4009cca builtin/reflog.c 706) usage(_(reflog_exists_usage));\nb9c4009cca builtin/reflog.c 714) usage(_(reflog_exists_usage));\nb9c4009cca builtin/reflog.c 717) die(_(\"invalid ref format: %s\"), \nargv[start]);\n\nbuiltin/repack.c\neb6c5a15dc 200) die(_(\"could not start pack-objects to repack promisor \nobjects\"));\n55b48d6630 239) die(_(\"repack: Expecting full hex object ID lines only \nfrom pack-objects.\"));\neb6c5a15dc 250) die_errno((\"unable to create '%s'\"), promisor_name);\n55b48d6630 411) die(_(\"repack: Expecting full hex object ID lines only \nfrom pack-objects.\"));\n\nbuiltin/stash.c\n3d5ec65ce8 builtin/stash--helper.c  126) error(_(\"'%s' is not a \nstash-like commit\"), revision);\n3d5ec65ce8 builtin/stash--helper.c  127) free_stash_info(info);\n3d5ec65ce8 builtin/stash--helper.c  128) exit(128);\n3d5ec65ce8 builtin/stash--helper.c  161) free_stash_info(info);\n3d5ec65ce8 builtin/stash--helper.c  162) fprintf_ln(stderr, _(\"No stash \nentries found.\"));\n3d5ec65ce8 builtin/stash--helper.c  163) return -1;\n3d5ec65ce8 builtin/stash--helper.c  198) free_stash_info(info);\n7005771171 builtin/stash--helper.c  225) return error(_(\"git stash clear \nwith parameters is \"\n3d5ec65ce8 builtin/stash--helper.c  241) return -1;\n3d5ec65ce8 builtin/stash--helper.c  249) return -1;\n3d5ec65ce8 builtin/stash--helper.c  262) return -1;\n3d5ec65ce8 builtin/stash--helper.c  265) return error(_(\"unable to write \nnew index file\"));\n3d5ec65ce8 builtin/stash--helper.c  377) remove_path(stash_index_path.buf);\n3d5ec65ce8 builtin/stash--helper.c  378) return -1;\n3d5ec65ce8 builtin/stash--helper.c  405) return -1;\n3d5ec65ce8 builtin/stash--helper.c  408) return error(_(\"cannot apply a \nstash in the middle of a merge\"));\n3d5ec65ce8 builtin/stash--helper.c  418) strbuf_release(&out);\n3d5ec65ce8 builtin/stash--helper.c  419) return error(_(\"Could not \ngenerate diff %s^!.\"),\n3d5ec65ce8 builtin/stash--helper.c  426) return error(_(\"Conflicts in \nindex.\"\n3d5ec65ce8 builtin/stash--helper.c  432) return error(_(\"Could not save \nindex tree\"));\n3d5ec65ce8 builtin/stash--helper.c  439) return error(_(\"could not \nrestore untracked files from stash\"));\n3d5ec65ce8 builtin/stash--helper.c  470) return -1;\n3d5ec65ce8 builtin/stash--helper.c  475) strbuf_release(&out);\n3d5ec65ce8 builtin/stash--helper.c  480) strbuf_release(&out);\n3d5ec65ce8 builtin/stash--helper.c  481) return -1;\n7005771171 builtin/stash--helper.c  557) return error(_(\"%s: Could not \ndrop stash entry\"),\n5bf62a19c0 builtin/stash--helper.c  632) printf_ln(_(\"The stash entry is \nkept in case \"\n104eb50d14 builtin/stash--helper.c  766) free_stash_info(&info);\n193c3e3516 builtin/stash.c          767) \nusage_with_options(git_stash_show_usage, options);\n813904a0ce builtin/stash--helper.c  783) stash_msg = \"Created via \\\"git \nstash store\\\".\";\n813904a0ce builtin/stash--helper.c  789) if (!quiet) {\n813904a0ce builtin/stash--helper.c  790) fprintf_ln(stderr, _(\"Cannot \nupdate %s with %s\"),\n813904a0ce builtin/stash--helper.c  793) return -1;\n813904a0ce builtin/stash--helper.c  817) if (!quiet)\n813904a0ce builtin/stash--helper.c  818) fprintf_ln(stderr, _(\"\\\"git \nstash store\\\" requires one \"\n813904a0ce builtin/stash--helper.c  820) return -1;\n9f630e7480 builtin/stash--helper.c  902) return -1;\n9f630e7480 builtin/stash--helper.c  962) ret = -1;\n9f630e7480 builtin/stash--helper.c  963) goto done;\n9f630e7480 builtin/stash--helper.c  968) ret = -1;\n9f630e7480 builtin/stash--helper.c  969) goto done;\n9f630e7480 builtin/stash--helper.c  974) ret = -1;\n9f630e7480 builtin/stash--helper.c  975) goto done;\n9f630e7480 builtin/stash--helper.c 1001) ret = -1;\n9f630e7480 builtin/stash--helper.c 1002) goto done;\n9f630e7480 builtin/stash--helper.c 1013) ret = -1;\n9f630e7480 builtin/stash--helper.c 1014) goto done;\n9f630e7480 builtin/stash--helper.c 1020) ret = -1;\n9f630e7480 builtin/stash--helper.c 1021) goto done;\n9f630e7480 builtin/stash--helper.c 1028) ret = -1;\n9f630e7480 builtin/stash--helper.c 1029) goto done;\n9f630e7480 builtin/stash--helper.c 1054) ret = -1;\n9f630e7480 builtin/stash--helper.c 1055) goto done;\n9f630e7480 builtin/stash--helper.c 1067) ret = -1;\n9f630e7480 builtin/stash--helper.c 1068) goto done;\n9f630e7480 builtin/stash--helper.c 1074) ret = -1;\n9f630e7480 builtin/stash--helper.c 1075) goto done;\n9f630e7480 builtin/stash--helper.c 1086) ret = -1;\n9f630e7480 builtin/stash--helper.c 1087) goto done;\n9f630e7480 builtin/stash--helper.c 1092) ret = -1;\n9f630e7480 builtin/stash--helper.c 1093) goto done;\nc2cc69f192 builtin/stash--helper.c 1128) fprintf_ln(stderr, _(\"You do \nnot have \"\n9f630e7480 builtin/stash--helper.c 1137) ret = 1;\n9f630e7480 builtin/stash--helper.c 1138) goto done;\nc2cc69f192 builtin/stash--helper.c 1154) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1155) fprintf_ln(stderr, _(\"Cannot \nsave the current \"\n9f630e7480 builtin/stash--helper.c 1157) ret = -1;\n9f630e7480 builtin/stash--helper.c 1158) goto done;\nc2cc69f192 builtin/stash--helper.c 1163) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1164) fprintf_ln(stderr, _(\"Cannot save \"\n9f630e7480 builtin/stash--helper.c 1166) ret = -1;\n9f630e7480 builtin/stash--helper.c 1167) goto done;\nc2cc69f192 builtin/stash--helper.c 1174) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1175) fprintf_ln(stderr, _(\"Cannot \nsave the current \"\n9f630e7480 builtin/stash--helper.c 1177) goto done;\nc2cc69f192 builtin/stash--helper.c 1183) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1184) fprintf_ln(stderr, _(\"Cannot \nsave the current \"\n9f630e7480 builtin/stash--helper.c 1186) ret = -1;\n9f630e7480 builtin/stash--helper.c 1187) goto done;\nc2cc69f192 builtin/stash--helper.c 1213) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1214) fprintf_ln(stderr, _(\"Cannot \nrecord \"\n9f630e7480 builtin/stash--helper.c 1216) ret = -1;\n9f630e7480 builtin/stash--helper.c 1217) goto done;\n1a0f0409a7 builtin/stash--helper.c 1289) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1290) goto done;\n1a0f0409a7 builtin/stash--helper.c 1300) ret = -1;\nc2cc69f192 builtin/stash--helper.c 1301) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1302) fprintf_ln(stderr, _(\"Cannot \ninitialize stash\"));\n1a0f0409a7 builtin/stash--helper.c 1303) goto done;\n1a0f0409a7 builtin/stash--helper.c 1313) ret = -1;\nc2cc69f192 builtin/stash--helper.c 1314) if (!quiet)\nc2cc69f192 builtin/stash--helper.c 1315) fprintf_ln(stderr, _(\"Cannot \nsave the current status\"));\n1a0f0409a7 builtin/stash--helper.c 1316) goto done;\n1a0f0409a7 builtin/stash--helper.c 1333) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1352) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1353) goto done;\n1a0f0409a7 builtin/stash--helper.c 1362) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1363) goto done;\n1a0f0409a7 builtin/stash--helper.c 1371) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1380) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1391) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1392) goto done;\n1a0f0409a7 builtin/stash--helper.c 1401) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1402) goto done;\n1a0f0409a7 builtin/stash--helper.c 1410) ret = -1;\n1a0f0409a7 builtin/stash--helper.c 1436) ret = -1;\n193c3e3516 builtin/stash.c         1568) \nusage_msg_opt(xstrfmt(_(\"unknown subcommand: %s\"), argv[0]),\n193c3e3516 builtin/stash.c         1596) continue;\n\ncombine-diff.c\n3bf45e7f67  377) state->sline[state->nb-1].p_lno =\n3bf45e7f67  378) xcalloc(state->num_parent, sizeof(unsigned long));\n\ndate.c\nc27cc94fad  904) tm->tm_mon = number-1;\nc27cc94fad  908) else if (number > 69 && number < 100)\nc27cc94fad  909) tm->tm_year = number;\nc27cc94fad  910) else if (number < 38)\nc27cc94fad  911) tm->tm_year = 100 + number;\nc27cc94fad  952) pending_number(tm, num);\n\ndir.c\n8a2c174677  287) name = to_free = xmemdupz(name, namelen);\n\ngit.c\nb63c352c11 341) die_errno(_(\"while expanding alias '%s': '%s'\"),\nb63c352c11 350) die(_(\"alias '%s' changes environment variables.\\n\"\nb63c352c11 358) die(_(\"empty alias for %s\"), alias_command);\nb63c352c11 361) die(_(\"recursive alias: %s\"), alias_command);\nb63c352c11 436) die_errno(_(\"write failure on standard output\"));\nb63c352c11 438) die(_(\"unknown write failure on standard output\"));\nb63c352c11 440) die_errno(_(\"close failed on standard output\"));\nb63c352c11 770) die(_(\"cannot handle %s as a builtin\"), cmd);\n\nhex.c\nb3a41547ce  93) char *sha1_to_hex_r(char *buffer, const unsigned char *sha1)\nb3a41547ce  95) return hash_to_hex_algop_r(buffer, sha1, \n&hash_algos[GIT_HASH_SHA1]);\nb3a41547ce 116) char *hash_to_hex(const unsigned char *hash)\nb3a41547ce 118) return hash_to_hex_algop(hash, the_hash_algo);\n\nmidx.c\n1dcd9f2043  184) return;\n\nname-hash.c\n31bfd155d8 532) die(_(\"unable to create lazy_dir thread: %s\"), \nstrerror(err));\n31bfd155d8 554) die(_(\"unable to create lazy_name thread: %s\"), \nstrerror(err));\n31bfd155d8 560) die(_(\"unable to join lazy_name thread: %s\"), \nstrerror(err));\n\nparse-options-cb.c\n35408df41e  21) return error(_(\"option `%s' expects a numerical value\"),\n35408df41e  58) return error(_(\"option `%s' expects \\\"always\\\", \n\\\"auto\\\", or \\\"never\\\"\"),\n\nparse-options.c\n35408df41e  88) return error(_(\"%s takes no value\"), optname(opt, flags));\n35408df41e  90) return error(_(\"%s isn't available\"), optname(opt, flags));\n35408df41e  92) return error(_(\"%s takes no value\"), optname(opt, flags));\n35408df41e 178) return error(_(\"%s expects a numerical value\"),\n35408df41e 194) return error(_(\"%s expects a non-negative integer value\"\ne0948db833 356) error(_(\"did you mean `--%s` (with two dashes ?)\"), arg);\ne0948db833 651) error(_(\"unknown non-ascii option in string: `%s'\"),\n35408df41e 785) strbuf_addf(&sb, \"option `no-%s'\", opt->long_name);\n\npreload-index.c\n31bfd155d8 137) die(_(\"unable to create threaded lstat: %s\"), \nstrerror(err));\n\nread-cache.c\n5257b0625a  675) die(_(\"will not add file alias '%s' ('%s' already \nexists in index)\"),\n5257b0625a  676)     ce->name, alias->name);\n5257b0625a  691) die(_(\"cannot create an empty blob in the object \ndatabase\"));\n5257b0625a  712) return error(_(\"%s: can only add regular files, \nsymbolic links or git-directories\"), path);\n5257b0625a  786) return error(_(\"unable to add '%s' to index\"), path);\n5257b0625a  822) error(_(\"invalid path '%s'\"), path);\n5257b0625a  848) error(_(\"invalid path '%s'\"), path);\n5257b0625a 1686) return error(_(\"bad signature 0x%08x\"), \nhdr->hdr_signature);\n5257b0625a 1689) return error(_(\"bad index version %d\"), hdr_version);\n5257b0625a 1728) return error(_(\"index uses %.4s extension, which we do \nnot understand\"),\n5257b0625a 1730) fprintf_ln(stderr, _(\"ignoring %.4s extension\"), ext);\n5257b0625a 1777) die(_(\"unknown index entry format 0x%08x\"), \nextended_flags);\n5257b0625a 1848) die(_(\"unordered stage entries in index\"));\n5257b0625a 1851) die(_(\"multiple stage entries for merged file '%s'\"),\n5257b0625a 1854) die(_(\"unordered stage entries for '%s'\"),\n5257b0625a 2148) die_errno(_(\"%s: index file open failed\"), path);\n5257b0625a 2152) die_errno(_(\"%s: cannot stat the open index\"), path);\n5257b0625a 2156) die(_(\"%s: index file smaller than expected\"), path);\n5257b0625a 2160) die_errno(_(\"%s: unable to map index file\"), path);\n5257b0625a 2252) warning(_(\"could not freshen shared index '%s'\"), \nshared_index);\n5257b0625a 2287) die(_(\"broken index, expect %s in %s, got %s\"),\n5257b0625a 3073) error(_(\"cannot fix permission bits on '%s'\"), \nget_tempfile_path(*temp));\n5257b0625a 3219) return error(_(\"%s: cannot drop to stage #0\"),\n\nref-filter.c\n35408df41e 2324) return error(_(\"option `%s' is incompatible with \n--no-merged\"),\n\nremote.c\na454d6a26b  362) warning(_(\"config remote shorthand cannot begin with \n'/': %s\"),\na454d6a26b  417) error(_(\"more than one uploadpack given, using the \nfirst\"));\na454d6a26b  683) die(_(\"key '%s' of pattern had no '*'\"), key);\na454d6a26b  693) die(_(\"value '%s' of pattern has no '*'\"), value);\na454d6a26b 1044) error(_(\"unable to delete '%s': remote ref does not \nexist\"),\na454d6a26b 1066) return error(_(\"dst ref %s receives from more than one \nsrc\"),\na454d6a26b 1753) die(_(\"couldn't find remote ref %s\"), name);\na454d6a26b 1766) error(_(\"* Ignoring funny ref '%s' locally\"),\na454d6a26b 1861) die(_(\"revision walk setup failed\"));\na454d6a26b 2134) return error(_(\"cannot parse expected object name '%s'\"),\n\nrevision.c\nb45424181e 2936) return;\nb45424181e 2939) return;\nb45424181e 2945) c->object.flags |= UNINTERESTING;\nb45424181e 2948) return;\nb45424181e 2951) mark_parents_uninteresting(c);\nb45424181e 2974) return;\nb45424181e 2977) return;\nb45424181e 3042) continue;\nf0d9cc4196 3091) if (!revs->ignore_missing_links)\nf0d9cc4196 3092) die(\"Failed to traverse parents of commit %s\",\nf0d9cc4196 3093)     oid_to_hex(&commit->object.oid));\nb45424181e 3101) continue;\n\nrun-command.c\n31bfd155d8 1229) error(_(\"cannot create async thread: %s\"), strerror(err));\n\nsequencer.c\nbcd33ec25f  683) np = strchrnul(buf, '\\n');\nbcd33ec25f  684) return error(_(\"no key present in '%.*s'\"),\nbcd33ec25f  695) return error(_(\"unable to dequote value of '%s'\"),\nbcd33ec25f  737) goto finish;\nbcd33ec25f  742) name_i = error(_(\"'GIT_AUTHOR_NAME' already given\"));\nbcd33ec25f  747) email_i = error(_(\"'GIT_AUTHOR_EMAIL' already given\"));\nbcd33ec25f  752) date_i = error(_(\"'GIT_AUTHOR_DATE' already given\"));\nbcd33ec25f  756) err = error(_(\"unknown variable '%s'\"),\nbcd33ec25f  761) error(_(\"missing 'GIT_AUTHOR_NAME'\"));\nbcd33ec25f  763) error(_(\"missing 'GIT_AUTHOR_EMAIL'\"));\nbcd33ec25f  765) error(_(\"missing 'GIT_AUTHOR_DATE'\"));\n\nsha1-file.c\n2f90b9d9b4 sha1-file.c  172) int hash_algo_by_name(const char *name)\n2f90b9d9b4 sha1-file.c  175) if (!name)\n2f90b9d9b4 sha1-file.c  176) return GIT_HASH_UNKNOWN;\n2f90b9d9b4 sha1-file.c  177) for (i = 1; i < GIT_HASH_NALGOS; i++)\n2f90b9d9b4 sha1-file.c  178) if (!strcmp(name, hash_algos[i].name))\n2f90b9d9b4 sha1-file.c  179) return i;\n2f90b9d9b4 sha1-file.c  180) return GIT_HASH_UNKNOWN;\n2f90b9d9b4 sha1-file.c  183) int hash_algo_by_id(uint32_t format_id)\n2f90b9d9b4 sha1-file.c  186) for (i = 1; i < GIT_HASH_NALGOS; i++)\n2f90b9d9b4 sha1-file.c  187) if (format_id == hash_algos[i].format_id)\n2f90b9d9b4 sha1-file.c  188) return i;\n2f90b9d9b4 sha1-file.c  189) return GIT_HASH_UNKNOWN;\n\nxdiff-interface.c\nxdiff/xutils.c\n611e42a598 405) return -1;\n\nCommits introducing uncovered code:\nbrian m. carlson      2f90b9d9b: sha1-file: provide functions to look up \nhash algorithms\nbrian m. carlson      b3a41547c: hex: introduce functions to print \narbitrary hashes\nDaniels Umanovskis      0ecb1fc72: branch: introduce --show-current \ndisplay option\nDerrick Stolee      1dcd9f204: midx: close multi-pack-index on repack\nDerrick Stolee      b45424181: revision.c: generation-based topo-order \nalgorithm\nDerrick Stolee      f0d9cc419: revision.c: begin refactoring \n--topo-order logic\nJeff King      3bf45e7f6: combine-diff: use an xdiff hunk callback\nJeff King      611e42a59: xdiff: provide a separate emit callback for hunks\nJeff King      8a2c17467: pathspec: handle non-terminated strings with \n:(attr)\nJeff King      98f425b45: cat-file: handle streaming failures consistently\nJeff King      c27cc94fa: approxidate: handle pending number for \"specials\"\nJoel Teichroeb      3d5ec65ce: stash: convert apply to builtin\nJoel Teichroeb      5bf62a19c: stash: convert pop to builtin\nJoel Teichroeb      700577117: stash: convert drop and clear to builtin\nJunio C Hamano      55b48d663: Merge branch 'nd/i18n' into jch\nNguyễn Thái Ngọc Duy      09120ea78: fsck: mark strings for translation\nNguyễn Thái Ngọc Duy      31bfd155d: Clean up pthread_create() error \nhandling\nNguyễn Thái Ngọc Duy      35408df41: parse-options: replace opterror() \nwith optname()\nNguyễn Thái Ngọc Duy      389f2f2d7: grep: remove #ifdef NO_PTHREADS\nNguyễn Thái Ngọc Duy      48a40549d: archive.c: mark more strings for \ntranslation\nNguyễn Thái Ngọc Duy      5257b0625: read-cache.c: mark more strings for \ntranslation\nNguyễn Thái Ngọc Duy      847aa0ff7: attr.c: mark more string for \ntranslation\nNguyễn Thái Ngọc Duy      a454d6a26: remote.c: mark messages for translation\nNguyễn Thái Ngọc Duy      b63c352c1: git.c: mark more strings for \ntranslation\nNguyễn Thái Ngọc Duy      b9c4009cc: reflog: mark strings for translation\nNguyễn Thái Ngọc Duy      e0948db83: parse-options.c: mark more strings \nfor translation\nNguyễn Thái Ngọc Duy      eb6c5a15d: repack: mark more strings for \ntranslation\nPaul-Sebastian Ungureanu      104eb50d1: stash: convert show to builtin\nPaul-Sebastian Ungureanu      193c3e351: stash: convert \n`stash--helper.c` into `stash.c`\nPaul-Sebastian Ungureanu      1a0f0409a: stash: convert push to builtin\nPaul-Sebastian Ungureanu      813904a0c: stash: convert store to builtin\nPaul-Sebastian Ungureanu      9f630e748: stash: convert create to builtin\nPaul-Sebastian Ungureanu      c2cc69f19: stash: make push -q quiet\nPhillip Wood      bcd33ec25: add read_author_script() to libgit\n\n\n\nUncovered code in 'next' not in 'master'\n--------------------------------------------\n\nbuiltin/archive.c\ne001fd3a50 builtin/archive.c  78) die(_(\"git archive: expected ACK/NAK, \ngot a flush packet\"));\ne001fd3a50 builtin/archive.c  80) if (starts_with(reader.line, \"NACK \"))\ne001fd3a50 builtin/archive.c  81) die(_(\"git archive: NACK %s\"), \nreader.line + 5);\ne001fd3a50 builtin/archive.c  82) if (starts_with(reader.line, \"ERR \"))\ne001fd3a50 builtin/archive.c  83) die(_(\"remote error: %s\"), reader.line \n+ 4);\ne001fd3a50 builtin/archive.c  84) die(_(\"git archive: protocol error\"));\ne001fd3a50 builtin/archive.c  89) die(_(\"git archive: expected a flush\"));\nfb19d32f05 builtin/archive.c  99) if (version != discover_version(&reader))\nfb19d32f05 builtin/archive.c 100) die(_(\"git archive: received different \nprotocol versions in subsequent requests\"));\n\nbuiltin/submodule--helper.c\ne0a862fdaf 1648) url = sub->url;\n\nbuiltin/upload-archive.c\ne001fd3a50 builtin/upload-archive.c 113) if (version == protocol_v0 || \nversion == protocol_v1)\ne001fd3a50 builtin/upload-archive.c 114) packet_write_fmt(1, \"NACK \nunable to spawn subprocess\\n\");\ne001fd3a50 builtin/upload-archive.c 115) else if (version == protocol_v2)\ne001fd3a50 builtin/upload-archive.c 116) error_clnt(\"unable to spawn \nsubprocess\\n\");\n\ngpg-interface.c\n4de9394dcb 155) break;\n\nhttp-backend.c\nfb19d32f05 646) argv[1] = \".\";\nfb19d32f05 647) argv[2] = NULL;\n\nhttp.c\n21084e84a4  316) free(http_ssl_backend);\n21084e84a4  317) http_ssl_backend = xstrdup_or_null(value);\n21084e84a4  318) return 0;\n93aef7c79b  322) http_schannel_check_revoke = git_config_bool(var, value);\n93aef7c79b  323) return 0;\nb67d40adbb  327) http_schannel_use_ssl_cainfo = git_config_bool(var, value);\nb67d40adbb  328) return 0;\n93aef7c79b  833)     !http_schannel_check_revoke) {\n93aef7c79b  835) curl_easy_setopt(result, CURLOPT_SSL_OPTIONS, \nCURLSSLOPT_NO_REVOKE);\nb67d40adbb  883)     !http_schannel_use_ssl_cainfo) {\nb67d40adbb  884) curl_easy_setopt(result, CURLOPT_CAINFO, NULL);\n\npretty.c\n4de9394dcb 1264) if (c->signature_check.primary_key_fingerprint)\n4de9394dcb 1265) strbuf_addstr(sb, \nc->signature_check.primary_key_fingerprint);\n4de9394dcb 1266) break;\n\nsetup.c\n58b284a2e9  413) return config_error_nonbool(var);\n\ntransport-helper.c\nfb19d32f05  643) if (!data->connect && !data->stateless_connect)\n\nupload-pack.c\n1d1243fe63 1403) deepen(INFINITE_DEPTH, data->deepen_relative, \n&data->shallows,\n\nCommits introducing uncovered code:\nBrendan Forster      93aef7c79: http: add support for disabling SSL \nrevocation checks in cURL\nJohannes Schindelin      21084e84a: http: add support for selecting SSL \nbackends at runtime\nJohannes Schindelin      b67d40adb: http: when using Secure Channel, \nignore sslCAInfo by default\nJonathan Tan      1d1243fe6: upload-pack: make want_obj not global\nJosh Steadmon      e001fd3a5: archive: implement protocol v2 archive command\nJosh Steadmon      fb19d32f0: archive: allow archive over HTTP(S) with \nproto v2\nMichał Górny      4de9394dc: gpg-interface.c: obtain primary key \nfingerprint as well\nNguyễn Thái Ngọc Duy      58b284a2e: worktree: add per-worktree config files\nStefan Beller      e0a862fda: submodule helper: convert relative URL to \nabsolute URL if needed\n\n\n\nUncovered code in 'master' not in 'master@{1}'\n----------------------------------------------------\n\nbuiltin/rebase--interactive.c\n53bbcfbde7 builtin/rebase--interactive2.c  24) return error(_(\"no HEAD?\"));\n53bbcfbde7 builtin/rebase--interactive2.c  51) return \nerror_errno(_(\"could not create temporary %s\"), path_state_dir());\n53bbcfbde7 builtin/rebase--interactive2.c  57) return \nerror_errno(_(\"could not mark as interactive\"));\n53bbcfbde7 builtin/rebase--interactive2.c  77) return -1;\n53bbcfbde7 builtin/rebase--interactive2.c  81) return -1;\n53bbcfbde7 builtin/rebase--interactive2.c  87) free(revisions);\n53bbcfbde7 builtin/rebase--interactive2.c  88) free(shortrevisions);\n53bbcfbde7 builtin/rebase--interactive2.c  90) return -1;\n53bbcfbde7 builtin/rebase--interactive2.c  98) free(revisions);\n53bbcfbde7 builtin/rebase--interactive2.c  99) free(shortrevisions);\n53bbcfbde7 builtin/rebase--interactive2.c 101) return \nerror_errno(_(\"could not open %s\"), rebase_path_todo());\n53bbcfbde7 builtin/rebase--interactive2.c 106) \nargv_array_push(&make_script_args, restrict_revision);\n53bbcfbde7 builtin/rebase--interactive2.c 114) error(_(\"could not \ngenerate todo list\"));\n53bbcfbde7 builtin/rebase--interactive2.c 206) \nusage_with_options(builtin_rebase_interactive_usage, options);\n53bbcfbde7 builtin/rebase--interactive2.c 220) \nwarning(_(\"--[no-]rebase-cousins has no effect without \"\n0af129b2ed builtin/rebase--interactive2.c 226) die(_(\"a base commit must \nbe provided with --upstream or --onto\"));\n34b47315d9 builtin/rebase--interactive.c  261) ret = rearrange_squash();\n34b47315d9 builtin/rebase--interactive.c  262) break;\n34b47315d9 builtin/rebase--interactive.c  264) ret = \nsequencer_add_exec_commands(cmd);\n34b47315d9 builtin/rebase--interactive.c  265) break;\n\nbuiltin/rebase.c\n55071ea248   61) strbuf_trim(&out);\n55071ea248   62) ret = !strcmp(\"true\", out.buf);\n55071ea248   63) strbuf_release(&out);\n002ee2fe68  115) die(_(\"%s requires an interactive rebase\"), option);\nf95736288a  148) return error_errno(_(\"could not read '%s'\"), path);\nf95736288a  162) return -1;\nf95736288a  167) return error(_(\"could not get 'onto': '%s'\"), buf.buf);\nf95736288a  178) return -1;\nf95736288a  179) } else if (read_one(state_dir_path(\"head\", opts), &buf))\nf95736288a  180) return -1;\nf95736288a  182) return error(_(\"invalid orig-head: '%s'\"), buf.buf);\nf95736288a  186) return -1;\nf95736288a  188) opts->flags &= ~REBASE_NO_QUIET;\n73d51ed0a5  196) opts->signoff = 1;\n73d51ed0a5  197) opts->flags |= REBASE_FORCE;\nead98c111b  204) return -1;\n12026a412c  219) return -1;\nba1905a5fe  227) return -1;\nba1905a5fe  235) return -1;\n6defce2b02  255) return error(_(\"Could not read '%s'\"), path);\n6defce2b02  273) res = error(_(\"Cannot store %s\"), autostash.buf);\n6defce2b02  277) return res;\nbc24382c2b  375) argv_array_pushf(&child.args,\nbc24382c2b  377) oid_to_hex(&opts->restrict_revision->object.oid));\nac7f467fef  509) struct strbuf dir = STRBUF_INIT;\n6defce2b02  511) apply_autostash(opts);\nac7f467fef  512) strbuf_addstr(&dir, opts->state_dir);\nac7f467fef  513) remove_dir_recursively(&dir, 0);\nac7f467fef  514) strbuf_release(&dir);\nac7f467fef  515) die(\"Nothing to do\");\nac7f467fef  545) return -1;\nac7f467fef  549) rollback_lock_file(&lock);\nac7f467fef  550) return error(_(\"could not determine HEAD revision\"));\nac7f467fef  567) rollback_lock_file(&lock);\nac7f467fef  568) return error(_(\"could not read index\"));\nac7f467fef  572) error(_(\"failed to find tree of %s\"), oid_to_hex(oid));\nac7f467fef  573) rollback_lock_file(&lock);\nac7f467fef  574) free((void *)desc.buffer);\nac7f467fef  575) return -1;\nac7f467fef  588) ret = error(_(\"could not write index\"));\nac7f467fef  592) return ret;\nac7f467fef  608) } else if (old_orig)\nac7f467fef  609) delete_ref(NULL, \"ORIG_HEAD\", old_orig, 0);\nbff014dac7  637) opts->flags &= !REBASE_DIFFSTAT;\n9a48a615b4  671) return 1;\n9a48a615b4  687) return 0;\n55071ea248  895) const char *path = mkpath(\"%s/git-legacy-rebase\",\n55071ea248  898) if (sane_execvp(path, (char **)argv) < 0)\n55071ea248  899) die_errno(_(\"could not exec %s\"), path);\n0eabf4b95c  917) die(_(\"It looks like 'git am' is in progress. Cannot \nrebase.\"));\nf28d40d3a9  954) usage_with_options(builtin_rebase_usage,\nf95736288a  974) die(_(\"Cannot read HEAD\"));\nf95736288a  978) die(_(\"could not read index\"));\nf95736288a  992) exit(1);\n122420c295 1004) die(_(\"could not discard worktree changes\"));\n122420c295 1006) exit(1);\n5e5d96197c 1017) exit(1);\n5e5d96197c 1020) die(_(\"could not move back to %s\"),\n5a61494539 1030) die(_(\"could not remove '%s'\"), options.state_dir);\nc54dacb50e 1049) const char *last_slash = strrchr(options.state_dir, '/');\nc54dacb50e 1050) const char *state_dir_base =\nc54dacb50e 1051) last_slash ? last_slash + 1 : options.state_dir;\nc54dacb50e 1052) const char *cmd_live_rebase =\nc54dacb50e 1054) strbuf_reset(&buf);\nc54dacb50e 1055) strbuf_addf(&buf, \"rm -fr \\\"%s\\\"\", options.state_dir);\nc54dacb50e 1056) die(_(\"It seems that there is already a %s directory, \nand\\n\"\n53f9e5be94 1080) strbuf_addstr(&options.git_am_opt, \" --ignore-date\");\n53f9e5be94 1081) options.flags |= REBASE_FORCE;\n7998dbe1ec 1093) strbuf_addf(&options.git_am_opt, \" -C%d\", opt_c);\n3c3588c7d3 1125) else if (strcmp(\"no-rebase-cousins\", rebase_merges))\n3c3588c7d3 1126) die(_(\"Unknown mode: %s\"), rebase_merges);\nba1905a5fe 1148) die(_(\"--strategy requires --merge or --interactive\"));\ncda614e489 1166) strbuf_addstr(&options.git_format_patch_opt, \" \n--progress\");\nac7f467fef 1175) options.state_dir = apply_dir();\nac7f467fef 1176) break;\nac7f467fef 1253) die(_(\"invalid upstream '%s'\"), options.upstream_name);\n9dba809a69 1259) die(_(\"Could not create new root commit\"));\ne65123a71d 1309) die(_(\"fatal: no such branch/commit '%s'\"),\nac7f467fef 1317) die(_(\"No such ref: %s\"), \"HEAD\");\nac7f467fef 1329) die(_(\"Could not resolve HEAD to a revision\"));\ne0333e5c63 1342) die(_(\"could not read index\"));\n6defce2b02 1369) die(_(\"Cannot autostash\"));\n6defce2b02 1372) die(_(\"Unexpected stash response: '%s'\"),\n6defce2b02 1378) die(_(\"Could not create directory for '%s'\"),\n6defce2b02 1384) die(_(\"could not reset --hard\"));\ne65123a71d 1428) ret = !!error(_(\"could not parse '%s'\"),\ne65123a71d 1430) goto cleanup;\ne65123a71d 1439) ret = !!error(_(\"could not switch to \"\n1ed9c14ff2 1449)  resolve_ref_unsafe(\"HEAD\", 0, NULL, &flag))\n1ed9c14ff2 1450) puts(_(\"HEAD is up to date.\"));\n9a48a615b4 1459)  resolve_ref_unsafe(\"HEAD\", 0, NULL, &flag))\n9a48a615b4 1460) puts(_(\"HEAD is up to date, rebase forced.\"));\n\nrebase-interactive.c\n64a43cbd5d 62) return error_errno(_(\"could not read '%s'.\"), todo_file);\n64a43cbd5d 66) strbuf_release(&buf);\n64a43cbd5d 67) return -1;\na9f5476fbc 75) return error_errno(_(\"could not read '%s'.\"), todo_file);\na9f5476fbc 79) strbuf_release(&buf);\na9f5476fbc 80) return -1;\n64a43cbd5d 86) return -1;\n\nsequencer.c\n65850686cf 2279) return;\n65850686cf 2376) write_file(rebase_path_quiet(), \"%s\\n\", quiet);\n2c58483a59 3374) return error(_(\"could not checkout %s\"), commit);\n4df66c40b0 3388) return error(_(\"%s: not a valid OID\"), orig_head);\n71f82465b1 3408) fprintf(stderr, _(\"Stopped at HEAD\\n\"));\nb97e187364 4772) return -1;\nb97e187364 4775) return -1;\nb97e187364 4781) return error_errno(_(\"could not read '%s'.\"), todo_file);\nb97e187364 4784) todo_list_release(&todo_list);\nb97e187364 4785) return error(_(\"unusable todo list: '%s'\"), todo_file);\nb97e187364 4804) todo_list_release(&todo_list);\nb97e187364 4805) return -1;\nb97e187364 4809) return error(_(\"could not copy '%s' to '%s'.\"), todo_file,\nb97e187364 4813) return error(_(\"could not transform the todo list\"));\nb97e187364 4842) return error(_(\"could not transform the todo list\"));\nb97e187364 4845) return error(_(\"could not skip unnecessary pick \ncommands\"));\nb97e187364 4851) return -1;\n\nstrbuf.c\nf95736288a  127) --sb->len;\n\nCommits introducing uncovered code:\nAlban Gruin      0af129b2e: rebase--interactive2: rewrite the submodes \nof interactive rebase in C\nAlban Gruin      2c58483a5: rebase -i: rewrite setup_reflog_action() in C\nAlban Gruin      34b47315d: rebase -i: move rebase--helper modes to \nrebase--interactive\nAlban Gruin      4df66c40b: rebase -i: rewrite checkout_onto() in C\nAlban Gruin      53bbcfbde: rebase -i: implement the main part of \ninteractive rebase as a builtin\nAlban Gruin      64a43cbd5: rebase -i: rewrite the edit-todo \nfunctionality in C\nAlban Gruin      65850686c: rebase -i: rewrite write_basic_state() in C\nAlban Gruin      a9f5476fb: sequencer: refactor append_todo_help() to \nwrite its message to a buffer\nAlban Gruin      b97e18736: rebase -i: rewrite complete_action() in C\nJohannes Schindelin      71f82465b: rebase -i: introduce the 'break' command\nJohannes Schindelin      bc24382c2: builtin rebase: prepare for builtin \nrebase -i\nPratik Karki      002ee2fe6: builtin rebase: support `keep-empty` option\nPratik Karki      0eabf4b95: builtin rebase: stop if `git am` is in progress\nPratik Karki      12026a412: builtin rebase: support `--gpg-sign` option\nPratik Karki      122420c29: builtin rebase: support --skip\nPratik Karki      1ed9c14ff: builtin rebase: support --force-rebase\nPratik Karki      3c3588c7d: builtin rebase: support \n--rebase-merges[=[no-]rebase-cousins]\nPratik Karki      53f9e5be9: builtin rebase: support `ignore-date` option\nPratik Karki      55071ea24: rebase: start implementing it as a builtin\nPratik Karki      5a6149453: builtin rebase: support --quit\nPratik Karki      5e5d96197: builtin rebase: support --abort\nPratik Karki      6defce2b0: builtin rebase: support `--autostash` option\nPratik Karki      73d51ed0a: builtin rebase: support --signoff\nPratik Karki      7998dbe1e: builtin rebase: support `-C` and \n`--whitespace=<type>`\nPratik Karki      9a48a615b: builtin rebase: try to fast forward when \npossible\nPratik Karki      9dba809a6: builtin rebase: support --root\nPratik Karki      ac7f467fe: builtin/rebase: support running \"git rebase \n<upstream>\"\nPratik Karki      ba1905a5f: builtin rebase: add support for custom \nmerge strategies\nPratik Karki      bff014dac: builtin rebase: support the `verbose` and \n`diffstat` options\nPratik Karki      c54dacb50: builtin rebase: start a new rebase only if \nnone is in progress\nPratik Karki      cda614e48: builtin rebase: show progress when \nconnected to a terminal\nPratik Karki      e0333e5c6: builtin rebase: require a clean worktree\nPratik Karki      e65123a71: builtin rebase: support `git rebase \n<upstream> <switch-to>`\nPratik Karki      ead98c111: builtin rebase: support --rerere-autoupdate\nPratik Karki      f28d40d3a: builtin rebase: support --onto\nPratik Karki      f95736288: builtin rebase: support --continue\n\n\n\n"},{"id":"362330","messageId":"xmqqva5en832.fsf@gitster-ct.c.googlers.com","threadId":"49746","inReplyTo":"784741be-6045-12bb-75b9-0df6f4c612b7@gmail.com","subject":"Re: Git Test Coverage Report (Friday, Nov 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-11-03T03:38:57Z","receivedAt":"2018-11-03T03:39:04Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Derrick Stolee <stolee@gmail.com> writes:\n\n> Uncovered code in 'next' not in 'master'\n> --------------------------------------------\n>\n> pretty.c\n> 4de9394dcb 1264) if (c->signature_check.primary_key_fingerprint)\n> 4de9394dcb 1265) strbuf_addstr(sb,\n> c->signature_check.primary_key_fingerprint);\n> 4de9394dcb 1266) break;\n\nPerhaps a patch along this line can be appended to the\nmg/gpg-fingerprint topic that ends at 4de9394d (\"gpg-interface.c:\nobtain primary key fingerprint as well\", 2018-10-22) to cover this\nentry in the report.  \n\nI do not know how involved it would be to set up a new test case\nthat demonstrates a case where %GF and %GP are different, but if it\nis very involved perhaps it is not worth adding such a case.\n\n t/t7510-signed-commit.sh | 3 ++-\n 1 file changed, 2 insertions(+), 1 deletion(-)\n\ndiff --git a/t/t7510-signed-commit.sh b/t/t7510-signed-commit.sh\nindex 19ccae2869..9ecafedcc4 100755\n--- a/t/t7510-signed-commit.sh\n+++ b/t/t7510-signed-commit.sh\n@@ -176,8 +176,9 @@ test_expect_success GPG 'show good signature with custom format' '\n \t13B6F51ECDDE430D\n \tC O Mitter <committer@example.com>\n \t73D758744BE721698EC54E8713B6F51ECDDE430D\n+\t73D758744BE721698EC54E8713B6F51ECDDE430D\n \tEOF\n-\tgit log -1 --format=\"%G?%n%GK%n%GS%n%GF\" sixth-signed >actual &&\n+\tgit log -1 --format=\"%G?%n%GK%n%GS%n%GF%n%GP\" sixth-signed >actual &&\n \ttest_cmp expect actual\n '\n \n"},{"id":"362335","messageId":"1541231868.1028.2.camel@gentoo.org","threadId":"49746","inReplyTo":"xmqqva5en832.fsf@gitster-ct.c.googlers.com","subject":"Re: Git Test Coverage Report (Friday, Nov 2)","fromName":"Michał Górny","fromEmail":"mgorny@gentoo.org","sentAt":"2018-11-03T07:57:48Z","receivedAt":"2018-11-03T07:57:56Z","isPatch":false,"sender":{"key":"mgorny@gentoo.org","avatar":"https://avatars.githubusercontent.com/u/110765?v=4"},"body":"On Sat, 2018-11-03 at 12:38 +0900, Junio C Hamano wrote:\n> Derrick Stolee <stolee@gmail.com> writes:\n> \n> > Uncovered code in 'next' not in 'master'\n> > --------------------------------------------\n> > \n> > pretty.c\n> > 4de9394dcb 1264) if (c->signature_check.primary_key_fingerprint)\n> > 4de9394dcb 1265) strbuf_addstr(sb,\n> > c->signature_check.primary_key_fingerprint);\n> > 4de9394dcb 1266) break;\n> \n> Perhaps a patch along this line can be appended to the\n> mg/gpg-fingerprint topic that ends at 4de9394d (\"gpg-interface.c:\n> obtain primary key fingerprint as well\", 2018-10-22) to cover this\n> entry in the report.  \n> \n> I do not know how involved it would be to set up a new test case\n> that demonstrates a case where %GF and %GP are different, but if it\n> is very involved perhaps it is not worth adding such a case.\n\nWell, I didn't add a test for %GP primarily because we didn't have a key\nwith different primary and subkey fingerprints.\n\nAs for how involved... we'd just have to use a key that has split\nsigning subkey.  Would it be fine to add the subkey to the existing key?\n It would imply updating keyids/fingerprints everywhere.\n\n> \n>  t/t7510-signed-commit.sh | 3 ++-\n>  1 file changed, 2 insertions(+), 1 deletion(-)\n> \n> diff --git a/t/t7510-signed-commit.sh b/t/t7510-signed-commit.sh\n> index 19ccae2869..9ecafedcc4 100755\n> --- a/t/t7510-signed-commit.sh\n> +++ b/t/t7510-signed-commit.sh\n> @@ -176,8 +176,9 @@ test_expect_success GPG 'show good signature with custom format' '\n>  \t13B6F51ECDDE430D\n>  \tC O Mitter <committer@example.com>\n>  \t73D758744BE721698EC54E8713B6F51ECDDE430D\n> +\t73D758744BE721698EC54E8713B6F51ECDDE430D\n>  \tEOF\n> -\tgit log -1 --format=\"%G?%n%GK%n%GS%n%GF\" sixth-signed >actual &&\n> +\tgit log -1 --format=\"%G?%n%GK%n%GS%n%GF%n%GP\" sixth-signed >actual &&\n>  \ttest_cmp expect actual\n>  '\n>  \n\n-- \nBest regards,\nMichał Górny\n"},{"id":"362354","messageId":"xmqqr2g2mqaq.fsf@gitster-ct.c.googlers.com","threadId":"49746","inReplyTo":"1541231868.1028.2.camel@gentoo.org","subject":"Re: Git Test Coverage Report (Friday, Nov 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-11-03T10:03:09Z","receivedAt":"2018-11-03T10:03:16Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michał Górny <mgorny@gentoo.org> writes:\n\n> As for how involved... we'd just have to use a key that has split\n> signing subkey.  Would it be fine to add the subkey to the existing key?\n>  It would imply updating keyids/fingerprints everywhere.\n\nYes, that \"everywhere\" is exactly what I meant by \"how involved\",\nand your suggestion answers \"very much involved\".\n\nIf we can easily add _another_ key with a subkey that is not the\nprimary one we use for other tests, without touching the existing\nkey and the existing tests that use it (including the one I touched\nbelow--- we'd want to see a sig with a key that is not split is\nshown with the same %GF and %GP), while adding a handful of new\ntests that create signed objects under the new & split key and \nview them with %GF and %GP, then the end result would be that we\nmanaged to add a new test case where %GF/%GP are different without\nmaking very much involved changes.  I guess that was what I was\ngetting at.\n\nThanks.\n\n>\n>> \n>>  t/t7510-signed-commit.sh | 3 ++-\n>>  1 file changed, 2 insertions(+), 1 deletion(-)\n>> \n>> diff --git a/t/t7510-signed-commit.sh b/t/t7510-signed-commit.sh\n>> index 19ccae2869..9ecafedcc4 100755\n>> --- a/t/t7510-signed-commit.sh\n>> +++ b/t/t7510-signed-commit.sh\n>> @@ -176,8 +176,9 @@ test_expect_success GPG 'show good signature with custom format' '\n>>  \t13B6F51ECDDE430D\n>>  \tC O Mitter <committer@example.com>\n>>  \t73D758744BE721698EC54E8713B6F51ECDDE430D\n>> +\t73D758744BE721698EC54E8713B6F51ECDDE430D\n>>  \tEOF\n>> -\tgit log -1 --format=\"%G?%n%GK%n%GS%n%GF\" sixth-signed >actual &&\n>> +\tgit log -1 --format=\"%G?%n%GK%n%GS%n%GF%n%GP\" sixth-signed >actual &&\n>>  \ttest_cmp expect actual\n>>  '\n>>  \n"},{"id":"362357","messageId":"20181103114704.GZ30222@szeder.dev","threadId":"49746","inReplyTo":"784741be-6045-12bb-75b9-0df6f4c612b7@gmail.com","subject":"Re: Git Test Coverage Report (Friday, Nov 2)","fromName":"SZEDER Gábor","fromEmail":"szeder.dev@gmail.com","sentAt":"2018-11-03T11:47:04Z","receivedAt":"2018-11-03T11:47:11Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Fri, Nov 02, 2018 at 10:16:48PM -0400, Derrick Stolee wrote:\n> Here is the coverage report for today. Some builds were timing out, so I\n> removed the tests with number 9000 or more from the build [1]. Hopefully\n> this is a temporary measure.\n\nI think it's the Azure CI patch series, see:\n\nhttps://public-inbox.org/git/20181017232952.GT19800@szeder.dev/\nhttps://public-inbox.org/git/20181021112053.GC30222@szeder.dev/\n\n"},{"id":"362371","messageId":"1541262152.1028.20.camel@gentoo.org","threadId":"49746","inReplyTo":"xmqqr2g2mqaq.fsf@gitster-ct.c.googlers.com","subject":"Re: Git Test Coverage Report (Friday, Nov 2)","fromName":"Michał Górny","fromEmail":"mgorny@gentoo.org","sentAt":"2018-11-03T16:22:32Z","receivedAt":"2018-11-03T16:22:39Z","isPatch":false,"sender":{"key":"mgorny@gentoo.org","avatar":"https://avatars.githubusercontent.com/u/110765?v=4"},"body":"On Sat, 2018-11-03 at 19:03 +0900, Junio C Hamano wrote:\n> Michał Górny <mgorny@gentoo.org> writes:\n> \n> > As for how involved... we'd just have to use a key that has split\n> > signing subkey.  Would it be fine to add the subkey to the existing key?\n> >  It would imply updating keyids/fingerprints everywhere.\n> \n> Yes, that \"everywhere\" is exactly what I meant by \"how involved\",\n> and your suggestion answers \"very much involved\".\n> \n> If we can easily add _another_ key with a subkey that is not the\n> primary one we use for other tests, without touching the existing\n> key and the existing tests that use it (including the one I touched\n> below--- we'd want to see a sig with a key that is not split is\n> shown with the same %GF and %GP), while adding a handful of new\n> tests that create signed objects under the new & split key and \n> view them with %GF and %GP, then the end result would be that we\n> managed to add a new test case where %GF/%GP are different without\n> making very much involved changes.  I guess that was what I was\n> getting at.\n> \n\nI've just did a little research and came to the following results:\n\n1. modifying the 'C. O. Mitter' key would require changes to 4 tests,\n\n2. modifying the 'Eris Discordia' key would require changes to 2 tests\n   (both in 7510).\n\nDo you think 2. would be an acceptable option?  I think changing 2 tests\nwould be preferable to proliferating a third key for one test case. \nAlso, given that both failing tests are specifically format string\ntests, one of them would serve additional purpose of testing %GP!=%GF.\n\n-- \nBest regards,\nMichał Górny\n"},{"id":"362390","messageId":"xmqqin1dmcak.fsf@gitster-ct.c.googlers.com","threadId":"49746","inReplyTo":"1541262152.1028.20.camel@gentoo.org","subject":"Re: Git Test Coverage Report (Friday, Nov 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-11-04T09:17:55Z","receivedAt":"2018-11-04T09:18:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michał Górny <mgorny@gentoo.org> writes:\n\n> I've just did a little research and came to the following results:\n\nWonderful.\n\n> 1. modifying the 'C. O. Mitter' key would require changes to 4 tests,\n>\n> 2. modifying the 'Eris Discordia' key would require changes to 2 tests\n>    (both in 7510).\n>\n> Do you think 2. would be an acceptable option?\n\nYeah, that sounds like the best way to go.  Thanks for digging.\n"}]}