list mirror (unofficial, one of many)
 help / color / Atom feed
From: Derrick Stolee <>
To: Git List <>
Subject: Git Test Coverage Report (v2.24.0-rc0)
Date: Mon, 21 Oct 2019 10:15:52 -0400
Message-ID: <> (raw)

Here is today's test coverage report. You can find it at the normal place [1][2][3].

I set the "master@{1}" to be the maint branch, so this should cover all new code that
is not in the previous release.




pu	936d5c92bfb989d706cc1899b1cd6afc5bc9c0df
jch	0926ab8072b48968d05b0ebb9cc3d8043722ddc1
next	954a862665455a25876e1113bd865d43a26facce
master	d966095db01190a2196e31195ea6fa0c722aa732
master@{1}	origin/maint

Uncovered code in 'pu' not in 'jch'

Commits introducing uncovered code:
Derrick Stolee	2a53e0ba clone: add --sparse mode
2a53e0ba 752) error(_("failed to initialize sparse-checkout"));
2a53e0ba 753) result = 1;
2a53e0ba 1138) return 1;

Derrick Stolee	71b11117 sparse-checkout: update working directory in-process
71b11117 79) die(_("You need to resolve your current index first"));
71b11117 82) return 0;
71b11117 327) clear_pattern_list(pl);
71b11117 328) update_working_directory(NULL);
71b11117 329) return result;

Derrick Stolee	f7fc70e0 sparse-checkout: create 'init' subcommand
f7fc70e0 130) error(_("failed to set extensions.worktreeConfig setting"));
f7fc70e0 131) return 1;
f7fc70e0 142) error(_("failed to enable core.sparseCheckout"));
f7fc70e0 143) return 1;
f7fc70e0 197) return 1;

Derrick Stolee	60fa6324 sparse-checkout: init and set in cone mode
60fa6324 155) error(_("failed to enable core.sparseCheckoutCone"));
60fa6324 156) return 1;
60fa6324 355) return;

Derrick Stolee	2e706347 sparse-checkout: write using lockfile
2e706347 325) rollback_lock_file(&lk);
2e706347 326) free(sparse_filename);

Derrick Stolee	f2882439 sparse-checkout: create 'disable' subcommand
f2882439 435) die(_("failed to change config"));
f2882439 444) die(_("error while refreshing working directory"));

Derrick Stolee	1e2b195d sparse-checkout: create builtin with 'list' subcommand
1e2b195d 480) usage_with_options(builtin_sparse_checkout_usage,

Derrick Stolee	4d4f1c19 sparse-checkout: use hashmaps for cone patterns
4d4f1c19 656) pl->use_cone_patterns = 0;
4d4f1c19 657) warning(_("unrecognized pattern: '%s'"), given->pattern);
4d4f1c19 658) goto clear_hashmaps;
4d4f1c19 680) hashmap_add(&pl->parent_hashmap, &translated->ent);
4d4f1c19 681) hashmap_remove(&pl->recursive_hashmap, &translated->ent, &data);
4d4f1c19 682) free(data);
4d4f1c19 683) return;
4d4f1c19 687) warning(_("unrecognized negative pattern: '%s'"),
4d4f1c19 689) goto clear_hashmaps;
4d4f1c19 703) warning(_("your sparse-checkout file may have issues: pattern '%s' is repeated"),
4d4f1c19 705) hashmap_remove(&pl->parent_hashmap, &translated->ent, &data);
4d4f1c19 706) free(data);
4d4f1c19 707) free(translated);

Jonathan Nieder	ee70c128 index: offer advice for unknown index extensions
ee70c128 1745) if (advice_unknown_index_extension) {
ee70c128 1746) warning(_("ignoring optional %.4s index extension"), ext);
ee70c128 1747) advise(_("This is likely due to the file having been written by a newer\n"

Josh Steadmon	6da1f1a9 protocol: advertise multiple supported versions

6da1f1a9 354) return 0;

Matheus Tavares	beebb9d2 object-store: allow threaded access to object reading
beebb9d2 1464) return;

beebb9d2 1431) return;
beebb9d2 1440) return;

Rohit Ashiwal	1406adc0 rebase -i: add --ignore-whitespace flag
1406adc0 1904) die(_("cannot combine '--rebase-merges' with "

Rohit Ashiwal	7c5b2e1d sequencer: allow callers of read_author_script() to ignore fields
7c5b2e1d 832) free(kv.items[name_i].util);
7c5b2e1d 836) free(kv.items[email_i].util);
7c5b2e1d 840) free(kv.items[date_i].util);

Rohit Ashiwal	ccafcb32 rebase -i: support --committer-date-is-author-date
ccafcb32 884) static char *read_author_date_or_null(void)
ccafcb32 888) if (read_author_script(rebase_path_author_script(),
ccafcb32 890) return NULL;
ccafcb32 891) return date;
ccafcb32 983) int res = -1;
ccafcb32 984) struct strbuf datebuf = STRBUF_INIT;
ccafcb32 985) char *date = read_author_date_or_null();
ccafcb32 987) if (!date)
ccafcb32 988) return -1;
ccafcb32 990) strbuf_addf(&datebuf, "@%s", date);
ccafcb32 991) res = setenv("GIT_COMMITTER_DATE", datebuf.buf, 1);
ccafcb32 993) strbuf_release(&datebuf);
ccafcb32 994) free(date);
ccafcb32 996) if (res)
ccafcb32 997) return -1;
ccafcb32 1425) return error(_("malformed ident line"));
ccafcb32 1427) return error(_("corrupted author without date information"));
ccafcb32 2579) opts->allow_ff = 0;
ccafcb32 2580) opts->committer_date_is_author_date = 1;

Rohit Ashiwal	7258d3d1 rebase -i: support --ignore-date
7258d3d1 902) error(_("malformed ident line"));
7258d3d1 903) return NULL;
7258d3d1 912) static void push_dates(struct child_process *child)
7258d3d1 914) time_t now = time(NULL);
7258d3d1 915) struct strbuf date = STRBUF_INIT;
7258d3d1 917) strbuf_addf(&date, "@%"PRIuMAX, (uintmax_t)now);
7258d3d1 918) argv_array_pushf(&child->env_array, "GIT_AUTHOR_DATE=%s", date.buf);
7258d3d1 919) argv_array_pushf(&child->env_array, "GIT_COMMITTER_DATE=%s", date.buf);
7258d3d1 920) strbuf_release(&date);
7258d3d1 921) }
7258d3d1 1016) push_dates(&cmd);
7258d3d1 1485) res = -1;
7258d3d1 1486) goto out;
7258d3d1 2584) opts->allow_ff = 0;
7258d3d1 2585) opts->ignore_date = 1;
7258d3d1 3610) push_dates(&cmd);

Uncovered code in 'jch' not in 'next'

Commits introducing uncovered code:
James Coglan	fbccf255 graph: automatically track display width of graph lines
fbccf255 904) graph_line_write_column(line, col, '|');

James Coglan	0195285b graph: rename `new_mapping` to `old_mapping`
0195285b 421) REALLOC_ARRAY(graph->old_mapping, graph->column_capacity * 2);

Jeff King	86d0d4b8 fsck: don't require object structs for display functions
86d0d4b8 64) type = oid_object_info(the_repository, oid, NULL);
86d0d4b8 309) printf_ln(_("unreachable %s %s"),
86d0d4b8 310)   printable_type(&obj->oid, obj->type),
86d0d4b8 311)   describe_object(&obj->oid));
86d0d4b8 367) fprintf_ln(stderr, _("Checking %s"), describe_object(&obj->oid));
86d0d4b8 425)    printable_type(&obj->oid, obj->type),
86d0d4b8 426)    describe_object(&obj->oid));
86d0d4b8 439)   describe_object(&commit->object.oid));

Jeff King	2eec891d fsck: drop blob struct from fsck_finish()
2eec891d 1027) if (is_promisor_object(oid))

Jeff King	61506cb2 fsck: don't require an object struct for report()
61506cb2 980) return report(options, NULL, OBJ_NONE, FSCK_MSG_BAD_OBJECT_SHA1, "no valid object to fsck");
61506cb2 991) return report(options, &obj->oid, obj->type,
61506cb2 994)       obj->type);
61506cb2 1029) ret |= report(options,

Jeff King	315f8012 fsck: accept an oid instead of a "struct blob" for fsck_blob()
315f8012 958) return report(options, oid, OBJ_BLOB,

Jeff King	bcc2d814 fsck: accept an oid instead of a "struct tag" for fsck_tag()
bcc2d814 837) ret = report(options, oid, OBJ_TAG, FSCK_MSG_MISSING_OBJECT, "invalid format - expected 'object' line");
bcc2d814 841) ret = report(options, oid, OBJ_TAG, FSCK_MSG_BAD_OBJECT_SHA1, "invalid 'object' line format - bad sha1");
bcc2d814 848) ret = report(options, oid, OBJ_TAG, FSCK_MSG_MISSING_TYPE_ENTRY, "invalid format - expected 'type' line");
bcc2d814 853) ret = report(options, oid, OBJ_TAG, FSCK_MSG_MISSING_TYPE, "invalid format - unexpected end after 'type' line");
bcc2d814 857) ret = report(options, oid, OBJ_TAG, FSCK_MSG_BAD_TYPE, "invalid 'type' value");
bcc2d814 863) ret = report(options, oid, OBJ_TAG, FSCK_MSG_MISSING_TAG_ENTRY, "invalid format - expected 'tag' line");
bcc2d814 868) ret = report(options, oid, OBJ_TAG, FSCK_MSG_MISSING_TAG, "invalid format - unexpected end after 'type' line");

Jeff King	0b0d2303 remember commit/tag parse failures
0b0d2303 152) FREE_AND_NULL(item->tag);

Jeff King	8c95edfc fsck: accept an oid instead of a "struct commit" for fsck_commit()
8c95edfc 781) return report(options, oid, OBJ_COMMIT, FSCK_MSG_MISSING_TREE, "invalid format - expected 'tree' line");
8c95edfc 783) err = report(options, oid, OBJ_COMMIT, FSCK_MSG_BAD_TREE_SHA1, "invalid 'tree' line format - bad sha1");
8c95edfc 790) err = report(options, oid, OBJ_COMMIT, FSCK_MSG_BAD_PARENT_SHA1, "invalid 'parent' line format - bad sha1");
8c95edfc 804) err = report(options, oid, OBJ_COMMIT, FSCK_MSG_MISSING_AUTHOR, "invalid format - expected 'author' line");
8c95edfc 810) return report(options, oid, OBJ_COMMIT, FSCK_MSG_MISSING_COMMITTER, "invalid format - expected 'committer' line");

Jeff King	8645f45b fsck: don't require an object struct in verify_headers()
8645f45b 717) return report(options, oid, type,

Jeff King	cd896131 fsck: accept an oid instead of a "struct tree" for fsck_tree()
cd896131 622) retval += report(options, oid, OBJ_TREE, FSCK_MSG_BAD_TREE, "cannot be parsed as a tree");
cd896131 669) retval += report(options, oid, OBJ_TREE, FSCK_MSG_FULL_PATHNAME, "contains full pathnames");
cd896131 671) retval += report(options, oid, OBJ_TREE, FSCK_MSG_EMPTY_NAME, "contains empty pathname");
cd896131 679) retval += report(options, oid, OBJ_TREE, FSCK_MSG_ZERO_PADDED_FILEMODE, "contains zero-padded file modes");
cd896131 681) retval += report(options, oid, OBJ_TREE, FSCK_MSG_BAD_FILEMODE, "contains bad file modes");
cd896131 685) retval += report(options, oid, OBJ_TREE, FSCK_MSG_TREE_NOT_SORTED, "not properly sorted");

Jeff King	a3f8d23c fsck: unify object-name code
a3f8d23c 517) error("Unknown object type for %s",

Jeff King	bfd15918 fsck: use oids rather than objects for object_name API
bfd15918 400) fsck_put_object_name(options, &entry.oid, "%s%s/",
bfd15918 469) fsck_put_object_name(options, oid, "%s^%d",
bfd15918 472) fsck_put_object_name(options, oid, "%.*s~%d",
bfd15918 495) fsck_put_object_name(options, &tag->tagged->oid, "%s", name);

Jeff King	c78fe004 parse_commit_buffer(): treat lookup_commit() failure as parse error
c78fe004 466) return error("bad graft parent %s in commit %s",

Jeff King	9828df75 fsck: only provide oid/type in fsck_error callback
9828df75 125) BUG("%d (FSCK_IGNORE?) should never trigger this callback",

Jeff King	9f77fdad fsck: don't require an object struct for fsck_ident()
9f77fdad 733) return report(options, oid, type, FSCK_MSG_MISSING_NAME_BEFORE_EMAIL, "invalid author/committer line - missing space before email");
9f77fdad 740) return report(options, oid, type, FSCK_MSG_MISSING_SPACE_BEFORE_EMAIL, "invalid author/committer line - missing space before email");
9f77fdad 744) return report(options, oid, type, FSCK_MSG_BAD_EMAIL, "invalid author/committer line - bad email");
9f77fdad 750) return report(options, oid, type, FSCK_MSG_ZERO_PADDED_DATE, "invalid author/committer line - zero-padded date");
9f77fdad 754) return report(options, oid, type, FSCK_MSG_BAD_DATE, "invalid author/committer line - bad date");
9f77fdad 762) return report(options, oid, type, FSCK_MSG_BAD_TIMEZONE, "invalid author/committer line - bad time zone");

Jeff King	78d50148 parse_tag_buffer(): treat NULL tag pointer as parse error
78d50148 179) return error("unknown tag type '%s' in %s",

Uncovered code in 'next' not in 'master'

Commits introducing uncovered code:
brian m. carlson	6f119424 remote-curl: pass on atomic capability to remote side
6f119424 155) else if (!strcmp(value, "false"))
6f119424 156) options.atomic = 0;
6f119424 158) return -1;

6f119424 859) die(_("helper %s does not support --atomic"), name);

Jeff King	7c59828b pack-objects: improve partial packfile reuse
7c59828b 1136) return 1;
7c59828b 2694) (reuse_packfile_bitmap &&
7c59828b 2695)  bitmap_walk_contains(bitmap_git, reuse_packfile_bitmap, oid));

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

Jeff King	d35b73c5 pack-objects: introduce pack.allowPackReuse
d35b73c5 2847) allow_pack_reuse = git_config_bool(k, v);
d35b73c5 2848) return 0;

Jeff King	934b7d0a pack-bitmap: introduce bitmap_walk_contains()
934b7d0a 903) return 0;

Jonathan Tan	5374a290 fetch-pack: write fetched refs to .promisor
5374a290 770) BUG("name of pack lockfile should end with .keep (was '%s')",

Phillip Wood	49697cb7 move run_commit_hook() to libgit and use it there
49697cb7 1137) arg1 = "commit";
49697cb7 1138) arg2 = commit;

William Baker	3444ec2e fsmonitor: don't fill bitmap with entries to be removed
3444ec2e 20) BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" >= %u)",
3444ec2e 59) BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" > %u)",
3444ec2e 87) BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" > %u)",
3444ec2e 256) BUG("fsmonitor_dirty has more entries than the index (%"PRIuMAX" > %u)",

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

Commits introducing uncovered code:
Alex Henrie	baed6bbb diffcore-break: use a goto instead of a redundant if statement
baed6bbb 295) diff_q(&outq, p);

Ali Utku Selen	ddb3c856 shallow.c: don't free unallocated slabs
ddb3c856 157) continue;

Bert Wesarg	edefc318 format-patch: create leading components of output directory
edefc318 1785) die(_("could not create leading directories "

Brandon Casey	040a6551 cleanup: use internal memory allocation wrapper functions everywhere
040a6551 58) char *tmp = xmalloc(size);

Brian Downing	43fe901b compat: Add simplified merge sort implementation from glibc
43fe901b 59) msort_with_tmp(b, n, s, cmp, tmp);
43fe901b 60) free(tmp);

brian m. carlson	7e0d029f builtin/rev-parse: switch to use the_hash_algo
7e0d029f 735) abbrev = hexsz;

brian m. carlson	8d4d86b0 cache: remove null_sha1
8d4d86b0 427) printf("%06o %s U\t", ce->ce_mode, oid_to_hex(&null_oid));

brian m. carlson	ce17feb1 path: add a function to check for path suffix
ce17feb1 1234) return -1;
ce17feb1 1238) return -1;
ce17feb1 1247) return -1;

brian m. carlson	28ba1830 builtin/replace: make hash size independent
28ba1830 275) if (strbuf_read(&result, cmd.out, the_hash_algo->hexsz + 1) < 0) {

brian m. carlson	fabec2c5 builtin/receive-pack: switch to use the_hash_algo
fabec2c5 433) the_hash_algo->init_fn(&ctx);
fabec2c5 434) the_hash_algo->update_fn(&ctx, key_in, key_len);
fabec2c5 435) the_hash_algo->final_fn(key, &ctx);

Christian Couder	faf2abf4 promisor-remote: use repository_format_partial_clone
faf2abf4 95) if (previous)
faf2abf4 96) previous->next = r->next;
faf2abf4 98) promisors = r->next ? r->next : r;
faf2abf4 99) r->next = NULL;
faf2abf4 100) *promisors_tail = r;
faf2abf4 101) promisors_tail = &r->next;

Christian Couder	9e27beaa promisor-remote: implement promisor_remote_get_direct()
9e27beaa 205) static int remove_fetched_oids(struct repository *repo,
9e27beaa 209) int i, remaining_nr = 0;
9e27beaa 210) int *remaining = xcalloc(oid_nr, sizeof(*remaining));
9e27beaa 211) struct object_id *old_oids = *oids;
9e27beaa 214) for (i = 0; i < oid_nr; i++)
9e27beaa 215) if (oid_object_info_extended(repo, &old_oids[i], NULL,
9e27beaa 217) remaining[i] = 1;
9e27beaa 218) remaining_nr++;
9e27beaa 221) if (remaining_nr) {
9e27beaa 222) int j = 0;
9e27beaa 223) new_oids = xcalloc(remaining_nr, sizeof(*new_oids));
9e27beaa 224) for (i = 0; i < oid_nr; i++)
9e27beaa 225) if (remaining[i])
9e27beaa 226) oidcpy(&new_oids[j++], &old_oids[i]);
9e27beaa 227) *oids = new_oids;
9e27beaa 228) if (to_free)
9e27beaa 229) free(old_oids);
9e27beaa 232) free(remaining);
9e27beaa 234) return remaining_nr;
9e27beaa 251) if (remaining_nr == 1)
9e27beaa 252) continue;
9e27beaa 253) remaining_nr = remove_fetched_oids(repo, &remaining_oids,
9e27beaa 255) if (remaining_nr) {
9e27beaa 256) to_free = 1;
9e27beaa 257) continue;
9e27beaa 265) free(remaining_oids);

Christian Couder	4ca9474e Move core_partial_clone_filter_default to promisor-remote.c
4ca9474e 111) return git_config_string(&core_partial_clone_filter_default,

Christian Couder	b14ed5ad Use promisor_remote_get_direct() and has_promisor_remote()
b14ed5ad 529) warning("This repository uses promisor remotes. Some objects may not be loaded.");

Christian Couder	fa3d1b63 promisor-remote: parse remote.*.partialclonefilter
fa3d1b63 142) return 0;

Christian Couder	48de3158 Add initial support for many promisor remotes
48de3158 61) warning(_("promisor remote name cannot begin with '/': %s"),
48de3158 63) return NULL;

Christian Couder	db27dca5 Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}
db27dca5 25) die(_("Remote with no URL"));

Corentin BOMPARD	24bc1a12 pull, fetch: add --set-upstream option
24bc1a12 1429) warning(_("not setting upstream for a remote remote-tracking branch"));

Denton Liu	2b318aa6 rebase: refactor can_fast_forward into goto tower
2b318aa6 1273) goto done;

Denton Liu	c0efb4c1 rebase: fast-forward --onto in more cases
c0efb4c1 1289) goto done;

Derrick Stolee	50f26bd0 fetch: add fetch.writeCommitGraph config setting
50f26bd0 57) UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 1);

Derrick Stolee	aaf633c2 repo-settings: create feature.experimental setting
aaf633c2 913) else if (args->depth > 0 || is_repository_shallow(r))

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

Elijah Newren	65c01c64 checkout: provide better conflict hunk description with detached HEAD
65c01c64 766) strbuf_add_unique_abbrev(&old_commit_shortname,
65c01c64 767)  &old_branch_info->commit->object.oid,
65c01c64 769) o.ancestor = old_commit_shortname.buf;

Elijah Newren	941790d7 fast-export: handle nested tags
941790d7 852) die(_("Error: Cannot export nested tags unless --mark-tags is specified."));
941790d7 864) tagged_mark = get_object_mark(tagged);

Elijah Newren	89a1f4aa dir: if our pathspec might match files under a dir, recurse into it

Elijah Newren	b8f50e5b fast-import: add support for new 'alias' command
b8f50e5b 2528) die("Invalid ref name or SHA1 expression: %s", objectish);
b8f50e5b 2554) return 0;
b8f50e5b 3118) die(_("Expected 'mark' command, got %s"), command_buf.buf);
b8f50e5b 3123) die(_("Expected 'to' command, got %s"), command_buf.buf);

Elijah Newren	3164e6bd fast-import: fix handling of deleted tags
3164e6bd 2835) first_tag = t->next_tag;

Elijah Newren	ff1bfa2c merge-recursive: use common name for ancestors/common/base_list
ff1bfa2c 3757)    oid_to_hex(merge_bases[i]));

Elijah Newren	98a1d3d8 merge-recursive: exit early if index != head
98a1d3d8 3692) return -1;

Elijah Newren	208d6924 fast-export: add support for --import-marks-if-exists
208d6924 1220) die(_("Cannot pass both --import-marks and --import-marks-if-exists"));

Elijah Newren	9822175d Ensure index matches head before invoking merge machinery, round N
9822175d 68) die_resolve_conflict("merge");

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

Elijah Newren	f836bf39 merge-recursive: future-proof update_file_flags() against memory leaks
f836bf39 960) ret = err(opt, _("cannot read object %s '%s'"),
f836bf39 962) goto free_buf;

Eric Wong	c8e424c9 hashmap: introduce hashmap_free_entries
c8e424c9 113) hashmap_free(&map);
c8e424c9 133) hashmap_free(&map);

Eric Wong	b94e5c1d hashmap_add takes "struct hashmap_entry *"
b94e5c1d 110) hashmap_add(&map, &entries[i]->ent);
b94e5c1d 123) hashmap_add(&map, &entries[i]->ent);

Eric Wong	87571c3f hashmap: use *_entry APIs for iteration
87571c3f 44) hashmap_for_each_entry(&the_index.dir_hash, &iter_dir, dir,
87571c3f 48) hashmap_for_each_entry(&the_index.name_hash, &iter_cache, ce,

Eric Wong	d22245a2 hashmap_entry_init takes "struct hashmap_entry *"
d22245a2 109) hashmap_entry_init(&entries[i]->ent, hashes[i]);
d22245a2 122) hashmap_entry_init(&entries[i]->ent, hashes[i]);

Eric Wong	28ee7941 hashmap_remove takes "const struct hashmap_entry *"
28ee7941 100) hashmap_remove(&istate->dir_hash, &dir->ent, NULL);

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

Jeff Hostetler	371df1be trace2: cleanup column alignment in perf target format
371df1be 88) fl_end_col = buf->len + TR2FMT_PERF_FL_WIDTH;
371df1be 90) if (file && *file) {
371df1be 91) struct strbuf buf_fl = STRBUF_INIT;
371df1be 93) strbuf_addf(&buf_fl, "%s:%d", file, line);
371df1be 95) if (buf_fl.len <= TR2FMT_PERF_FL_WIDTH)
371df1be 96) strbuf_addbuf(buf, &buf_fl);
371df1be 98) size_t avail = TR2FMT_PERF_FL_WIDTH - 3;
371df1be 99) strbuf_addstr(buf, "...");
371df1be 100) strbuf_add(buf,
371df1be 101)    &buf_fl.buf[buf_fl.len - avail],
371df1be 105) strbuf_release(&buf_fl);
371df1be 108) while (buf->len < fl_end_col)
371df1be 111) strbuf_addstr(buf, " | ");

Jeff Hostetler	742ed633 trace2: cleanup whitespace in perf format
742ed633 302) strbuf_addf(&buf_payload, "alias:%s argv:[", alias);
742ed633 303) sq_append_quote_argv_pretty(&buf_payload, argv);
742ed633 304) strbuf_addch(&buf_payload, ']');
742ed633 335) strbuf_addstr(&buf_payload, "git");
742ed633 336) if (cmd->argv[0])
742ed633 337) strbuf_addch(&buf_payload, ' ');
742ed633 391) strbuf_addstr(&buf_payload, "argv:[");
742ed633 392) if (exe) {
742ed633 393) strbuf_addstr(&buf_payload, exe);
742ed633 394) if (argv[0])
742ed633 395) strbuf_addch(&buf_payload, ' ');
742ed633 397) sq_append_quote_argv_pretty(&buf_payload, argv);
742ed633 398) strbuf_addch(&buf_payload, ']');

Jeff Hostetler	da4589ce trace2: trim whitespace in region messages in perf target format
da4589ce 459) strbuf_addf(&buf_payload, "label:%s", label);
da4589ce 460) if (fmt && *fmt) {
da4589ce 461) strbuf_addch(&buf_payload, ' ');
da4589ce 462) maybe_append_string_va(&buf_payload, fmt, ap);
da4589ce 479) strbuf_addf(&buf_payload, "label:%s", label);
da4589ce 480) if (fmt && *fmt) {
da4589ce 481) strbuf_addch(&buf_payload, ' ' );
da4589ce 482) maybe_append_string_va(&buf_payload, fmt, ap);

Jeff King	5aa02f98 tree-walk: harden make_traverse_path() length computations
5aa02f98 194) BUG("too small buffer passed to make_traverse_path");
5aa02f98 199) BUG("traverse_info pathlen does not match strings");
5aa02f98 208) BUG("traverse_info ran out of list items");

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

Jeff King	fbab552a commit-graph: bump DIE_ON_LOAD check to actual load-time
fbab552a 483) die("dying as requested by the '%s' variable on commit-graph load!",

Jeff King	90553847 tree-walk: drop oid from traverse_info
90553847 1144) if (*info->prev->name)
90553847 1147) printf("%s", info->name);

Jeff King	3a37876b pack-objects: drop packlist index_pos optimization
3a37876b 185) BUG("duplicate object inserted into hash");

Jeff King	0dfed92d git-am: handle missing "author" when parsing commit
0dfed92d 1262) die(_("missing author line in commit %s"),
0dfed92d 1263)       oid_to_hex(&commit->object.oid));

Johannes Schindelin	be5d88e1 test-tool run-command: learn to run (parts of) the testsuite
be5d88e1 66) static int next_test(struct child_process *cp, struct strbuf *err, void *cb,
be5d88e1 69) struct testsuite *suite = cb;
be5d88e1 71) if (suite->next >= suite->
be5d88e1 72) return 0;
be5d88e1 74) test = suite->tests.items[suite->next++].string;
be5d88e1 75) argv_array_pushl(&cp->args, "sh", test, NULL);
be5d88e1 76) if (suite->quiet)
be5d88e1 77) argv_array_push(&cp->args, "--quiet");
be5d88e1 78) if (suite->immediate)
be5d88e1 79) argv_array_push(&cp->args, "-i");
be5d88e1 80) if (suite->verbose)
be5d88e1 81) argv_array_push(&cp->args, "-v");
be5d88e1 82) if (suite->verbose_log)
be5d88e1 83) argv_array_push(&cp->args, "-V");
be5d88e1 84) if (suite->trace)
be5d88e1 85) argv_array_push(&cp->args, "-x");
be5d88e1 86) if (suite->write_junit_xml)
be5d88e1 87) argv_array_push(&cp->args, "--write-junit-xml");
be5d88e1 89) strbuf_addf(err, "Output of '%s':\n", test);
be5d88e1 90) *task_cb = (void *)test;
be5d88e1 92) return 1;
be5d88e1 95) static int test_finished(int result, struct strbuf *err, void *cb,
be5d88e1 98) struct testsuite *suite = cb;
be5d88e1 99) const char *name = (const char *)task_cb;
be5d88e1 101) if (result)
be5d88e1 102) string_list_append(&suite->failed, name);
be5d88e1 104) strbuf_addf(err, "%s: '%s'\n", result ? "FAIL" : "SUCCESS", name);
be5d88e1 106) return 0;
be5d88e1 109) static int test_failed(struct strbuf *out, void *cb, void *task_cb)
be5d88e1 111) struct testsuite *suite = cb;
be5d88e1 112) const char *name = (const char *)task_cb;
be5d88e1 114) string_list_append(&suite->failed, name);
be5d88e1 115) strbuf_addf(out, "FAILED TO START: '%s'\n", name);
be5d88e1 117) return 0;
be5d88e1 125) static int testsuite(int argc, const char **argv)
be5d88e1 127) struct testsuite suite = TESTSUITE_INIT;
be5d88e1 128) int max_jobs = 1, i, ret;
be5d88e1 131) struct option options[] = {
be5d88e1 145) memset(&suite, 0, sizeof(suite));
be5d88e1 146) suite.tests.strdup_strings = suite.failed.strdup_strings = 1;
be5d88e1 148) argc = parse_options(argc, argv, NULL, options,
be5d88e1 151) if (max_jobs <= 0)
be5d88e1 152) max_jobs = online_cpus();
be5d88e1 154) dir = opendir(".");
be5d88e1 155) if (!dir)
be5d88e1 156) die("Could not open the current directory");
be5d88e1 157) while ((d = readdir(dir))) {
be5d88e1 158) const char *p = d->d_name;
be5d88e1 160) if (*p != 't' || !isdigit(p[1]) || !isdigit(p[2]) ||
be5d88e1 161)     !isdigit(p[3]) || !isdigit(p[4]) || p[5] != '-' ||
be5d88e1 162)     !ends_with(p, ".sh"))
be5d88e1 163) continue;
be5d88e1 166) if (!argc) {
be5d88e1 167) string_list_append(&suite.tests, p);
be5d88e1 168) continue;
be5d88e1 171) for (i = 0; i < argc; i++)
be5d88e1 172) if (!wildmatch(argv[i], p, 0)) {
be5d88e1 173) string_list_append(&suite.tests, p);
be5d88e1 174) break;
be5d88e1 177) closedir(dir);
be5d88e1 179) if (!
be5d88e1 180) die("No tests match!");
be5d88e1 181) if (max_jobs >
be5d88e1 182) max_jobs =;
be5d88e1 184) fprintf(stderr, "Running %d tests (%d at a time)\n",
be5d88e1 187) ret = run_processes_parallel(max_jobs, next_test, test_failed,
be5d88e1 190) if ( > 0) {
be5d88e1 191) ret = 1;
be5d88e1 192) fprintf(stderr, "%d tests failed:\n\n",;
be5d88e1 193) for (i = 0; i <; i++)
be5d88e1 194) fprintf(stderr, "\t%s\n", suite.failed.items[i].string);
be5d88e1 197) string_list_clear(&suite.tests, 0);
be5d88e1 198) string_list_clear(&suite.failed, 0);
be5d88e1 200) return !!ret;
be5d88e1 209) exit(testsuite(argc - 1, argv + 1));

Johannes Schindelin	e145d993 rebase -r: support merge strategies other than `recursive`
e145d993 3306) (!opts->strategy || !strcmp(opts->strategy, "recursive")) ?

Johannes Schindelin	e2683d51 Fix .git/ discovery at the root of UNC shares
e2683d51 952)     !is_dir_sep(dir->buf[min_offset - 1])) {
e2683d51 953) strbuf_addch(dir, '/');
e2683d51 954) min_offset++;

Johannes Schindelin	d54dea77 fetch: let --jobs=<n> parallelize --multiple, too
d54dea77 113) fetch_parallel_config = git_config_int(k, v);
d54dea77 114) if (fetch_parallel_config < 0)
d54dea77 115) die(_("fetch.parallel cannot be negative"));
d54dea77 116) return 0;
d54dea77 1566) static int fetch_failed_to_start(struct strbuf *out, void *cb, void *task_cb)
d54dea77 1568) struct parallel_fetch_state *state = cb;
d54dea77 1569) const char *remote = task_cb;
d54dea77 1571) state->result = error(_("Could not fetch %s"), remote);
d54dea77 1573) return 0;

Josh Steadmon	87db61a4 trace2: write discard message to sentinel files
87db61a4 136) strbuf_setlen(&path, base_path_len);
87db61a4 137) strbuf_addf(&path, ".%d", attempt_count);

Josh Steadmon	83e57b04 trace2: discard new traces if target directory has too many files
83e57b04 90) ret = 1;
83e57b04 91) goto cleanup;
83e57b04 145) strbuf_release(&path);
83e57b04 146) if (tr2_dst_want_warning())
83e57b04 147) warning("trace2: not opening %s trace file due to too "
83e57b04 151) return 0;

Junio C Hamano	360c7ba3 transport: push codepath can take arbitrary repository
360c7ba3 1200) trace2_region_leave("transport_push", "push_submodules", r);

Matthew DeVore	cf9ceb5a list-objects-filter-options: make filter_spec a string_list
cf9ceb5a 276) BUG("no filter_spec available for this filter");

cf9ceb5a 148) sq_quote_buf(&buf, spec);

Matthew DeVore	f56f7642 list-objects-filter-options: move error check up
f56f7642 44) BUG("filter_options already populated");
f56f7642 226) die(_("multiple filter-specs cannot be combined"));

Matthew DeVore	9430147c list-objects-filter: encapsulate filter components
9430147c 210) ctx->show_object(obj, base->buf, ctx->show_data);

Matthew DeVore	e987df5f list-objects-filter: implement composite filters
e987df5f 311) return;

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

Mischa POSLAWSKY	8b3f33ef ref-filter: initialize empty name or email fields
8b3f33ef 1045) return xstrdup("");

Phillip Wood	a47ba3c7 rebase -i: check for updated todo after squash and reword
a47ba3c7 3917) res = error_errno(_("could not stat '%s'"),
a47ba3c7 3923) res = -1; /* message was printed */

René Scharfe	1fd881d4 trace2: use warning() directly in tr2_dst_malformed_warning()
1fd881d4 307) warning("trace2: unknown value for '%s': '%s'",

René Scharfe	dad3f060 tag: factor out get_tagged_oid()
dad3f060 712) object = parse_object_or_die(get_tagged_oid(tag), NULL);

René Scharfe	5cc6a4be http-push: simplify deleting a list item
5cc6a4be 984) prev->next = lock->next;

René Scharfe	59fa5f5a sha1-name: check for overflow of N in "foo^N" and "foo~N"
59fa5f5a 1172) return MISSING_OBJECT;
59fa5f5a 1178) return MISSING_OBJECT;

René Scharfe	71d41ff6 archive-tar: turn length miscalculation warning into BUG
71d41ff6 161) BUG("pax extended header length miscalculated as %"PRIuMAX

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

Thomas Gummerer	34933d0e stash: make sure to write refreshed cache
34933d0e 1139) ret = -1;
34933d0e 1140) goto done;

Thomas Gummerer	8e4c8af0 push: disallow --all and refspecs when remote.<name>.mirror is set
8e4c8af0 611) die(_("bad repository '%s'"), repo);
8e4c8af0 627) die(_("--all and --tags are incompatible"));
8e4c8af0 629) die(_("--all can't be combined with refspecs"));
8e4c8af0 633) die(_("--mirror and --tags are incompatible"));
8e4c8af0 638) die(_("--all and --mirror are incompatible"));

Thomas Gummerer	22184497 factor out refresh_and_write_cache function
22184497 1695) die(_("unable to write index file"));

22184497 1487) return -1;
22184497 1491) ret = -1;

Torsten Bögershausen	ebb8d2c9 mingw: support UNC in git clone file://server/share/repo
ebb8d2c9 921) path = host - 2; /* include the leading "//" */

                 reply index

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Example config snippet for mirrors

Newsgroups are available over NNTP:

 note: .onion URLs require Tor:

AGPL code for this site: git clone