revert(3p/git): Revert merge of git upstream at v2.26.2

This causes cgit to serve error pages, which is undesirable.

This reverts commit 5229c9b232, reversing
changes made to f2b211131f.
This commit is contained in:
Vincent Ambo 2020-05-26 00:06:52 +01:00
parent 6f8fbf4aa4
commit 93ba78d6f4
1006 changed files with 60537 additions and 148724 deletions

View file

@ -155,6 +155,7 @@ static void unique_in_pack(struct packed_git *p,
struct disambiguate_state *ds)
{
uint32_t num, i, first = 0;
const struct object_id *current = NULL;
if (p->multi_pack_index)
return;
@ -172,10 +173,10 @@ static void unique_in_pack(struct packed_git *p,
*/
for (i = first; i < num && !ds->ambiguous; i++) {
struct object_id oid;
nth_packed_object_id(&oid, p, i);
if (!match_sha(ds->len, ds->bin_pfx.hash, oid.hash))
current = nth_packed_object_oid(&oid, p, i);
if (!match_sha(ds->len, ds->bin_pfx.hash, current->hash))
break;
update_candidates(ds, &oid);
update_candidates(ds, current);
}
}
@ -402,9 +403,9 @@ static int repo_collect_ambiguous(struct repository *r,
return collect_ambiguous(oid, data);
}
static int sort_ambiguous(const void *a, const void *b, void *ctx)
static struct repository *sort_ambiguous_repo;
static int sort_ambiguous(const void *a, const void *b)
{
struct repository *sort_ambiguous_repo = ctx;
int a_type = oid_object_info(sort_ambiguous_repo, a, NULL);
int b_type = oid_object_info(sort_ambiguous_repo, b, NULL);
int a_type_sort;
@ -433,7 +434,10 @@ static int sort_ambiguous(const void *a, const void *b, void *ctx)
static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a)
{
QSORT_S(a->oid, a->nr, sort_ambiguous, r);
/* mutex will be needed if this code is to be made thread safe */
sort_ambiguous_repo = r;
QSORT(a->oid, a->nr, sort_ambiguous);
sort_ambiguous_repo = NULL;
}
static enum get_oid_result get_short_oid(struct repository *r,
@ -642,14 +646,14 @@ static void find_abbrev_len_for_pack(struct packed_git *p,
*/
mad->init_len = 0;
if (!match) {
if (!nth_packed_object_id(&oid, p, first))
if (nth_packed_object_oid(&oid, p, first))
extend_abbrev_len(&oid, mad);
} else if (first < num - 1) {
if (!nth_packed_object_id(&oid, p, first + 1))
if (nth_packed_object_oid(&oid, p, first + 1))
extend_abbrev_len(&oid, mad);
}
if (first > 0) {
if (!nth_packed_object_id(&oid, p, first - 1))
if (nth_packed_object_oid(&oid, p, first - 1))
extend_abbrev_len(&oid, mad);
}
mad->init_len = mad->cur_len;
@ -907,21 +911,26 @@ static int get_oid_basic(struct repository *r, const char *str, int len,
real_ref, flags, at_time, nth, oid, NULL,
&co_time, &co_tz, &co_cnt)) {
if (!len) {
if (!skip_prefix(real_ref, "refs/heads/", &str))
if (starts_with(real_ref, "refs/heads/")) {
str = real_ref + 11;
len = strlen(real_ref + 11);
} else {
/* detached HEAD */
str = "HEAD";
len = strlen(str);
len = 4;
}
}
if (at_time) {
if (!(flags & GET_OID_QUIETLY)) {
warning(_("log for '%.*s' only goes back to %s"),
len, str,
warning("Log for '%.*s' only goes "
"back to %s.", len, str,
show_date(co_time, co_tz, DATE_MODE(RFC2822)));
}
} else {
if (flags & GET_OID_QUIETLY) {
exit(128);
}
die(_("log for '%.*s' only has %d entries"),
die("Log for '%.*s' only has %d entries.",
len, str, co_cnt);
}
}
@ -1154,22 +1163,13 @@ static enum get_oid_result get_oid_1(struct repository *r,
}
if (has_suffix) {
unsigned int num = 0;
int num = 0;
int len1 = cp - name;
cp++;
while (cp < name + len) {
unsigned int digit = *cp++ - '0';
if (unsigned_mult_overflows(num, 10))
return MISSING_OBJECT;
num *= 10;
if (unsigned_add_overflows(num, digit))
return MISSING_OBJECT;
num += digit;
}
while (cp < name + len)
num = num * 10 + *cp++ - '0';
if (!num && len1 == len - 1)
num = 1;
else if (num > INT_MAX)
return MISSING_OBJECT;
if (has_suffix == '^')
return get_parent(r, name, len1, oid, num);
/* else if (has_suffix == '~') -- goes without saying */
@ -1289,7 +1289,7 @@ static int get_oid_oneline(struct repository *r,
struct grab_nth_branch_switch_cbdata {
int remaining;
struct strbuf *sb;
struct strbuf buf;
};
static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid,
@ -1307,8 +1307,8 @@ static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid
return 0;
if (--(cb->remaining) == 0) {
len = target - match;
strbuf_reset(cb->sb);
strbuf_add(cb->sb, match, len);
strbuf_reset(&cb->buf);
strbuf_add(&cb->buf, match, len);
return 1; /* we are done */
}
return 0;
@ -1341,15 +1341,18 @@ static int interpret_nth_prior_checkout(struct repository *r,
if (nth <= 0)
return -1;
cb.remaining = nth;
cb.sb = buf;
strbuf_init(&cb.buf, 20);
retval = refs_for_each_reflog_ent_reverse(get_main_ref_store(r),
"HEAD", grab_nth_branch_switch, &cb);
if (0 < retval) {
strbuf_reset(buf);
strbuf_addbuf(buf, &cb.buf);
retval = brace - name + 1;
} else
retval = 0;
strbuf_release(&cb.buf);
return retval;
}
@ -1686,14 +1689,14 @@ static void diagnose_invalid_oid_path(struct repository *r,
prefix = "";
if (file_exists(filename))
die(_("path '%s' exists on disk, but not in '%.*s'"),
die("Path '%s' exists on disk, but not in '%.*s'.",
filename, object_name_len, object_name);
if (is_missing_file_error(errno)) {
char *fullname = xstrfmt("%s%s", prefix, filename);
if (!get_tree_entry(r, tree_oid, fullname, &oid, &mode)) {
die(_("path '%s' exists, but not '%s'\n"
"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"),
die("Path '%s' exists, but not '%s'.\n"
"Did you mean '%.*s:%s' aka '%.*s:./%s'?",
fullname,
filename,
object_name_len, object_name,
@ -1701,7 +1704,7 @@ static void diagnose_invalid_oid_path(struct repository *r,
object_name_len, object_name,
filename);
}
die(_("path '%s' does not exist in '%.*s'"),
die("Path '%s' does not exist in '%.*s'",
filename, object_name_len, object_name);
}
}
@ -1729,8 +1732,8 @@ static void diagnose_invalid_index_path(struct repository *r,
ce = istate->cache[pos];
if (ce_namelen(ce) == namelen &&
!memcmp(ce->name, filename, namelen))
die(_("path '%s' is in the index, but not at stage %d\n"
"hint: Did you mean ':%d:%s'?"),
die("Path '%s' is in the index, but not at stage %d.\n"
"Did you mean ':%d:%s'?",
filename, stage,
ce_stage(ce), filename);
}
@ -1745,17 +1748,17 @@ static void diagnose_invalid_index_path(struct repository *r,
ce = istate->cache[pos];
if (ce_namelen(ce) == fullname.len &&
!memcmp(ce->name, fullname.buf, fullname.len))
die(_("path '%s' is in the index, but not '%s'\n"
"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"),
die("Path '%s' is in the index, but not '%s'.\n"
"Did you mean ':%d:%s' aka ':%d:./%s'?",
fullname.buf, filename,
ce_stage(ce), fullname.buf,
ce_stage(ce), filename);
}
if (repo_file_exists(r, filename))
die(_("path '%s' exists on disk, but not in the index"), filename);
die("Path '%s' exists on disk, but not in the index.", filename);
if (is_missing_file_error(errno))
die(_("path '%s' does not exist (neither on disk nor in the index)"),
die("Path '%s' does not exist (neither on disk nor in the index).",
filename);
strbuf_release(&fullname);
@ -1768,7 +1771,7 @@ static char *resolve_relative_path(struct repository *r, const char *rel)
return NULL;
if (r != the_repository || !is_inside_work_tree())
die(_("relative path syntax can't be used outside working tree"));
die("relative path syntax can't be used outside working tree.");
/* die() inside prefix_path() if resolved path is outside worktree */
return prefix_path(startup_info->prefix,
@ -1906,7 +1909,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,
return ret;
} else {
if (only_to_die)
die(_("invalid object name '%.*s'."), len, name);
die("Invalid object name '%.*s'.", len, name);
}
}
return ret;