зеркало из https://github.com/microsoft/git.git
Merge branch 'bc/object-id'
More transition from "unsigned char[40]" to "struct object_id". This needed a few merge fixups, but is mostly disentangled from other topics. * bc/object-id: remote: convert functions to struct object_id Remove get_object_hash. Convert struct object to object_id Add several uses of get_object_hash. object: introduce get_object_hash macro. ref_newer: convert to use struct object_id push_refs_with_export: convert to struct object_id get_remote_heads: convert to struct object_id parse_fetch: convert to use struct object_id add_sought_entry_mem: convert to struct object_id Convert struct ref to use object_id. sha1_file: introduce has_object_file helper.
This commit is contained in:
Коммит
844a9ce472
|
@ -241,7 +241,7 @@ int write_archive_entries(struct archiver_args *args,
|
|||
len--;
|
||||
if (args->verbose)
|
||||
fprintf(stderr, "%.*s\n", (int)len, args->base);
|
||||
err = write_entry(args, args->tree->object.sha1, args->base,
|
||||
err = write_entry(args, args->tree->object.oid.hash, args->base,
|
||||
len, 040777);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -374,7 +374,7 @@ static void parse_treeish_arg(const char **argv,
|
|||
|
||||
commit = lookup_commit_reference_gently(oid.hash, 1);
|
||||
if (commit) {
|
||||
commit_sha1 = commit->object.sha1;
|
||||
commit_sha1 = commit->object.oid.hash;
|
||||
archive_time = commit->date;
|
||||
} else {
|
||||
commit_sha1 = NULL;
|
||||
|
@ -390,7 +390,7 @@ static void parse_treeish_arg(const char **argv,
|
|||
unsigned int mode;
|
||||
int err;
|
||||
|
||||
err = get_tree_entry(tree->object.sha1, prefix,
|
||||
err = get_tree_entry(tree->object.oid.hash, prefix,
|
||||
tree_oid.hash, &mode);
|
||||
if (err || !S_ISDIR(mode))
|
||||
die("current working directory is untracked");
|
||||
|
|
10
bisect.c
10
bisect.c
|
@ -193,7 +193,7 @@ static int compare_commit_dist(const void *a_, const void *b_)
|
|||
b = (struct commit_dist *)b_;
|
||||
if (a->distance != b->distance)
|
||||
return b->distance - a->distance; /* desc sort */
|
||||
return hashcmp(a->commit->object.sha1, b->commit->object.sha1);
|
||||
return oidcmp(&a->commit->object.oid, &b->commit->object.oid);
|
||||
}
|
||||
|
||||
static struct commit_list *best_bisection_sorted(struct commit_list *list, int nr)
|
||||
|
@ -500,7 +500,7 @@ struct commit_list *filter_skipped(struct commit_list *list,
|
|||
struct commit_list *next = list->next;
|
||||
list->next = NULL;
|
||||
if (0 <= sha1_array_lookup(&skipped_revs,
|
||||
list->item->object.sha1)) {
|
||||
list->item->object.oid.hash)) {
|
||||
if (skipped_first && !*skipped_first)
|
||||
*skipped_first = 1;
|
||||
/* Move current to tried list */
|
||||
|
@ -575,7 +575,7 @@ static struct commit_list *skip_away(struct commit_list *list, int count)
|
|||
|
||||
for (i = 0; cur; cur = cur->next, i++) {
|
||||
if (i == index) {
|
||||
if (hashcmp(cur->item->object.sha1, current_bad_oid->hash))
|
||||
if (oidcmp(&cur->item->object.oid, current_bad_oid))
|
||||
return cur;
|
||||
if (previous)
|
||||
return previous;
|
||||
|
@ -784,7 +784,7 @@ static void check_merge_bases(int no_checkout)
|
|||
result = get_merge_bases_many(rev[0], rev_nr - 1, rev + 1);
|
||||
|
||||
for (; result; result = result->next) {
|
||||
const unsigned char *mb = result->item->object.sha1;
|
||||
const unsigned char *mb = result->item->object.oid.hash;
|
||||
if (!hashcmp(mb, current_bad_oid->hash)) {
|
||||
handle_bad_merge_base();
|
||||
} else if (0 <= sha1_array_lookup(&good_revs, mb)) {
|
||||
|
@ -973,7 +973,7 @@ int bisect_next_all(const char *prefix, int no_checkout)
|
|||
exit(4);
|
||||
}
|
||||
|
||||
bisect_rev = revs.commits->item->object.sha1;
|
||||
bisect_rev = revs.commits->item->object.oid.hash;
|
||||
|
||||
if (!hashcmp(bisect_rev, current_bad_oid->hash)) {
|
||||
exit_if_skipped_commits(tried, current_bad_oid);
|
||||
|
|
2
branch.c
2
branch.c
|
@ -267,7 +267,7 @@ void create_branch(const char *head,
|
|||
|
||||
if ((commit = lookup_commit_reference(sha1)) == NULL)
|
||||
die(_("Not a valid branch point: '%s'."), start_name);
|
||||
hashcpy(sha1, commit->object.sha1);
|
||||
hashcpy(sha1, commit->object.oid.hash);
|
||||
|
||||
if (forcing)
|
||||
snprintf(msg, sizeof msg, "branch: Reset to %s",
|
||||
|
|
|
@ -1441,7 +1441,7 @@ static void get_commit_info(struct am_state *state, struct commit *commit)
|
|||
assert(!state->msg);
|
||||
msg = strstr(buffer, "\n\n");
|
||||
if (!msg)
|
||||
die(_("unable to parse commit %s"), sha1_to_hex(commit->object.sha1));
|
||||
die(_("unable to parse commit %s"), oid_to_hex(&commit->object.oid));
|
||||
state->msg = xstrdup(msg + 2);
|
||||
state->msg_len = strlen(state->msg);
|
||||
}
|
||||
|
|
|
@ -506,7 +506,7 @@ static int fill_blob_sha1_and_mode(struct origin *origin)
|
|||
{
|
||||
if (!is_null_sha1(origin->blob_sha1))
|
||||
return 0;
|
||||
if (get_tree_entry(origin->commit->object.sha1,
|
||||
if (get_tree_entry(origin->commit->object.oid.hash,
|
||||
origin->path,
|
||||
origin->blob_sha1, &origin->mode))
|
||||
goto error_out;
|
||||
|
@ -557,11 +557,11 @@ static struct origin *find_origin(struct scoreboard *sb,
|
|||
PATHSPEC_LITERAL_PATH, "", paths);
|
||||
diff_setup_done(&diff_opts);
|
||||
|
||||
if (is_null_sha1(origin->commit->object.sha1))
|
||||
do_diff_cache(parent->tree->object.sha1, &diff_opts);
|
||||
if (is_null_oid(&origin->commit->object.oid))
|
||||
do_diff_cache(parent->tree->object.oid.hash, &diff_opts);
|
||||
else
|
||||
diff_tree_sha1(parent->tree->object.sha1,
|
||||
origin->commit->tree->object.sha1,
|
||||
diff_tree_sha1(parent->tree->object.oid.hash,
|
||||
origin->commit->tree->object.oid.hash,
|
||||
"", &diff_opts);
|
||||
diffcore_std(&diff_opts);
|
||||
|
||||
|
@ -627,11 +627,11 @@ static struct origin *find_rename(struct scoreboard *sb,
|
|||
diff_opts.single_follow = origin->path;
|
||||
diff_setup_done(&diff_opts);
|
||||
|
||||
if (is_null_sha1(origin->commit->object.sha1))
|
||||
do_diff_cache(parent->tree->object.sha1, &diff_opts);
|
||||
if (is_null_oid(&origin->commit->object.oid))
|
||||
do_diff_cache(parent->tree->object.oid.hash, &diff_opts);
|
||||
else
|
||||
diff_tree_sha1(parent->tree->object.sha1,
|
||||
origin->commit->tree->object.sha1,
|
||||
diff_tree_sha1(parent->tree->object.oid.hash,
|
||||
origin->commit->tree->object.oid.hash,
|
||||
"", &diff_opts);
|
||||
diffcore_std(&diff_opts);
|
||||
|
||||
|
@ -977,8 +977,8 @@ static void pass_blame_to_parent(struct scoreboard *sb,
|
|||
|
||||
if (diff_hunks(&file_p, &file_o, 0, blame_chunk_cb, &d))
|
||||
die("unable to generate diff (%s -> %s)",
|
||||
sha1_to_hex(parent->commit->object.sha1),
|
||||
sha1_to_hex(target->commit->object.sha1));
|
||||
oid_to_hex(&parent->commit->object.oid),
|
||||
oid_to_hex(&target->commit->object.oid));
|
||||
/* The rest are the same as the parent */
|
||||
blame_chunk(&d.dstq, &d.srcq, INT_MAX, d.offset, INT_MAX, parent);
|
||||
*d.dstq = NULL;
|
||||
|
@ -1126,7 +1126,7 @@ static void find_copy_in_blob(struct scoreboard *sb,
|
|||
memset(split, 0, sizeof(struct blame_entry [3]));
|
||||
if (diff_hunks(file_p, &file_o, 1, handle_split_cb, &d))
|
||||
die("unable to generate diff (%s)",
|
||||
sha1_to_hex(parent->commit->object.sha1));
|
||||
oid_to_hex(&parent->commit->object.oid));
|
||||
/* remainder, if any, all match the preimage */
|
||||
handle_split(sb, ent, d.tlno, d.plno, ent->num_lines, parent, split);
|
||||
}
|
||||
|
@ -1275,11 +1275,11 @@ static void find_copy_in_parent(struct scoreboard *sb,
|
|||
&& (!porigin || strcmp(target->path, porigin->path))))
|
||||
DIFF_OPT_SET(&diff_opts, FIND_COPIES_HARDER);
|
||||
|
||||
if (is_null_sha1(target->commit->object.sha1))
|
||||
do_diff_cache(parent->tree->object.sha1, &diff_opts);
|
||||
if (is_null_oid(&target->commit->object.oid))
|
||||
do_diff_cache(parent->tree->object.oid.hash, &diff_opts);
|
||||
else
|
||||
diff_tree_sha1(parent->tree->object.sha1,
|
||||
target->commit->tree->object.sha1,
|
||||
diff_tree_sha1(parent->tree->object.oid.hash,
|
||||
target->commit->tree->object.oid.hash,
|
||||
"", &diff_opts);
|
||||
|
||||
if (!DIFF_OPT_TST(&diff_opts, FIND_COPIES_HARDER))
|
||||
|
@ -1690,7 +1690,7 @@ static void get_commit_info(struct commit *commit,
|
|||
if (len)
|
||||
strbuf_add(&ret->summary, subject, len);
|
||||
else
|
||||
strbuf_addf(&ret->summary, "(%s)", sha1_to_hex(commit->object.sha1));
|
||||
strbuf_addf(&ret->summary, "(%s)", oid_to_hex(&commit->object.oid));
|
||||
|
||||
unuse_commit_buffer(commit, message);
|
||||
}
|
||||
|
@ -1733,7 +1733,7 @@ static int emit_one_suspect_detail(struct origin *suspect, int repeat)
|
|||
printf("boundary\n");
|
||||
if (suspect->previous) {
|
||||
struct origin *prev = suspect->previous;
|
||||
printf("previous %s ", sha1_to_hex(prev->commit->object.sha1));
|
||||
printf("previous %s ", oid_to_hex(&prev->commit->object.oid));
|
||||
write_name_quoted(prev->path, stdout, '\n');
|
||||
}
|
||||
|
||||
|
@ -1752,7 +1752,7 @@ static void found_guilty_entry(struct blame_entry *ent)
|
|||
struct origin *suspect = ent->suspect;
|
||||
|
||||
printf("%s %d %d %d\n",
|
||||
sha1_to_hex(suspect->commit->object.sha1),
|
||||
oid_to_hex(&suspect->commit->object.oid),
|
||||
ent->s_lno + 1, ent->lno + 1, ent->num_lines);
|
||||
emit_one_suspect_detail(suspect, 0);
|
||||
write_filename_info(suspect->path);
|
||||
|
@ -1882,7 +1882,7 @@ static void emit_porcelain(struct scoreboard *sb, struct blame_entry *ent,
|
|||
struct origin *suspect = ent->suspect;
|
||||
char hex[GIT_SHA1_HEXSZ + 1];
|
||||
|
||||
sha1_to_hex_r(hex, suspect->commit->object.sha1);
|
||||
sha1_to_hex_r(hex, suspect->commit->object.oid.hash);
|
||||
printf("%s %d %d %d\n",
|
||||
hex,
|
||||
ent->s_lno + 1,
|
||||
|
@ -1922,7 +1922,7 @@ static void emit_other(struct scoreboard *sb, struct blame_entry *ent, int opt)
|
|||
int show_raw_time = !!(opt & OUTPUT_RAW_TIMESTAMP);
|
||||
|
||||
get_commit_info(suspect->commit, &ci, 1);
|
||||
sha1_to_hex_r(hex, suspect->commit->object.sha1);
|
||||
sha1_to_hex_r(hex, suspect->commit->object.oid.hash);
|
||||
|
||||
cp = nth_line(sb, ent->lno);
|
||||
for (cnt = 0; cnt < ent->num_lines; cnt++) {
|
||||
|
@ -2077,7 +2077,7 @@ static int read_ancestry(const char *graft_file)
|
|||
|
||||
static int update_auto_abbrev(int auto_abbrev, struct origin *suspect)
|
||||
{
|
||||
const char *uniq = find_unique_abbrev(suspect->commit->object.sha1,
|
||||
const char *uniq = find_unique_abbrev(suspect->commit->object.oid.hash,
|
||||
auto_abbrev);
|
||||
int len = strlen(uniq);
|
||||
if (auto_abbrev < len)
|
||||
|
@ -2153,7 +2153,7 @@ static void sanity_check_refcnt(struct scoreboard *sb)
|
|||
if (ent->suspect->refcnt <= 0) {
|
||||
fprintf(stderr, "%s in %s has negative refcnt %d\n",
|
||||
ent->suspect->path,
|
||||
sha1_to_hex(ent->suspect->commit->object.sha1),
|
||||
oid_to_hex(&ent->suspect->commit->object.oid),
|
||||
ent->suspect->refcnt);
|
||||
baa = 1;
|
||||
}
|
||||
|
@ -2216,7 +2216,7 @@ static void verify_working_tree_path(struct commit *work_tree, const char *path)
|
|||
struct commit_list *parents;
|
||||
|
||||
for (parents = work_tree->parents; parents; parents = parents->next) {
|
||||
const unsigned char *commit_sha1 = parents->item->object.sha1;
|
||||
const unsigned char *commit_sha1 = parents->item->object.oid.hash;
|
||||
unsigned char blob_sha1[20];
|
||||
unsigned mode;
|
||||
|
||||
|
@ -2310,7 +2310,7 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
|
|||
strbuf_addstr(&msg, "tree 0000000000000000000000000000000000000000\n");
|
||||
for (parent = commit->parents; parent; parent = parent->next)
|
||||
strbuf_addf(&msg, "parent %s\n",
|
||||
sha1_to_hex(parent->item->object.sha1));
|
||||
oid_to_hex(&parent->item->object.oid));
|
||||
strbuf_addf(&msg,
|
||||
"author %s\n"
|
||||
"committer %s\n\n"
|
||||
|
@ -2738,7 +2738,7 @@ parse_done:
|
|||
|
||||
sb.revs->children.name = "children";
|
||||
while (c->parents &&
|
||||
hashcmp(c->object.sha1, sb.final->object.sha1)) {
|
||||
oidcmp(&c->object.oid, &sb.final->object.oid)) {
|
||||
struct commit_list *l = xcalloc(1, sizeof(*l));
|
||||
|
||||
l->item = c;
|
||||
|
@ -2748,11 +2748,11 @@ parse_done:
|
|||
c = c->parents->item;
|
||||
}
|
||||
|
||||
if (hashcmp(c->object.sha1, sb.final->object.sha1))
|
||||
if (oidcmp(&c->object.oid, &sb.final->object.oid))
|
||||
die("--reverse --first-parent together require range along first-parent chain");
|
||||
}
|
||||
|
||||
if (is_null_sha1(sb.final->object.sha1)) {
|
||||
if (is_null_oid(&sb.final->object.oid)) {
|
||||
o = sb.final->util;
|
||||
sb.final_buf = xmemdupz(o->file.ptr, o->file.size);
|
||||
sb.final_buf_size = o->file.size;
|
||||
|
|
|
@ -349,7 +349,7 @@ static void add_verbose_info(struct strbuf *out, struct ref_array_item *item,
|
|||
fill_tracking_info(&stat, refname, filter->verbose > 1);
|
||||
|
||||
strbuf_addf(out, " %s %s%s",
|
||||
find_unique_abbrev(item->commit->object.sha1, filter->abbrev),
|
||||
find_unique_abbrev(item->commit->object.oid.hash, filter->abbrev),
|
||||
stat.buf, sub);
|
||||
strbuf_release(&stat);
|
||||
strbuf_release(&subject);
|
||||
|
|
|
@ -56,8 +56,8 @@ static int post_checkout_hook(struct commit *old, struct commit *new,
|
|||
int changed)
|
||||
{
|
||||
return run_hook_le(NULL, "post-checkout",
|
||||
sha1_to_hex(old ? old->object.sha1 : null_sha1),
|
||||
sha1_to_hex(new ? new->object.sha1 : null_sha1),
|
||||
sha1_to_hex(old ? old->object.oid.hash : null_sha1),
|
||||
sha1_to_hex(new ? new->object.oid.hash : null_sha1),
|
||||
changed ? "1" : "0", NULL);
|
||||
/* "new" can be NULL when checking out from the index before
|
||||
a commit exists. */
|
||||
|
@ -401,7 +401,7 @@ static void describe_detached_head(const char *msg, struct commit *commit)
|
|||
if (!parse_commit(commit))
|
||||
pp_commit_easy(CMIT_FMT_ONELINE, commit, &sb);
|
||||
fprintf(stderr, "%s %s... %s\n", msg,
|
||||
find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV), sb.buf);
|
||||
find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV), sb.buf);
|
||||
strbuf_release(&sb);
|
||||
}
|
||||
|
||||
|
@ -510,10 +510,10 @@ static int merge_working_tree(const struct checkout_opts *opts,
|
|||
setup_standard_excludes(topts.dir);
|
||||
}
|
||||
tree = parse_tree_indirect(old->commit ?
|
||||
old->commit->object.sha1 :
|
||||
old->commit->object.oid.hash :
|
||||
EMPTY_TREE_SHA1_BIN);
|
||||
init_tree_desc(&trees[0], tree->buffer, tree->size);
|
||||
tree = parse_tree_indirect(new->commit->object.sha1);
|
||||
tree = parse_tree_indirect(new->commit->object.oid.hash);
|
||||
init_tree_desc(&trees[1], tree->buffer, tree->size);
|
||||
|
||||
ret = unpack_trees(2, trees, &topts);
|
||||
|
@ -641,7 +641,7 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
|
|||
|
||||
old_desc = old->name;
|
||||
if (!old_desc && old->commit)
|
||||
old_desc = sha1_to_hex(old->commit->object.sha1);
|
||||
old_desc = oid_to_hex(&old->commit->object.oid);
|
||||
|
||||
reflog_msg = getenv("GIT_REFLOG_ACTION");
|
||||
if (!reflog_msg)
|
||||
|
@ -653,7 +653,7 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
|
|||
if (!strcmp(new->name, "HEAD") && !new->path && !opts->force_detach) {
|
||||
/* Nothing to do. */
|
||||
} else if (opts->force_detach || !new->path) { /* No longer on any branch. */
|
||||
update_ref(msg.buf, "HEAD", new->commit->object.sha1, NULL,
|
||||
update_ref(msg.buf, "HEAD", new->commit->object.oid.hash, NULL,
|
||||
REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
||||
if (!opts->quiet) {
|
||||
if (old->path && advice_detached_head)
|
||||
|
@ -704,7 +704,7 @@ static void describe_one_orphan(struct strbuf *sb, struct commit *commit)
|
|||
{
|
||||
strbuf_addstr(sb, " ");
|
||||
strbuf_addstr(sb,
|
||||
find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV));
|
||||
find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV));
|
||||
strbuf_addch(sb, ' ');
|
||||
if (!parse_commit(commit))
|
||||
pp_commit_easy(CMIT_FMT_ONELINE, commit, sb);
|
||||
|
@ -762,7 +762,7 @@ static void suggest_reattach(struct commit *commit, struct rev_info *revs)
|
|||
" git branch <new-branch-name> %s\n\n",
|
||||
/* Give ngettext() the count */
|
||||
lost),
|
||||
find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV));
|
||||
find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -780,10 +780,10 @@ static void orphaned_commit_warning(struct commit *old, struct commit *new)
|
|||
setup_revisions(0, NULL, &revs, NULL);
|
||||
|
||||
object->flags &= ~UNINTERESTING;
|
||||
add_pending_object(&revs, object, sha1_to_hex(object->sha1));
|
||||
add_pending_object(&revs, object, oid_to_hex(&object->oid));
|
||||
|
||||
for_each_ref(add_pending_uninteresting_ref, &revs);
|
||||
add_pending_sha1(&revs, "HEAD", new->object.sha1, UNINTERESTING);
|
||||
add_pending_sha1(&revs, "HEAD", new->object.oid.hash, UNINTERESTING);
|
||||
|
||||
refs = revs.pending;
|
||||
revs.leak_pending = 1;
|
||||
|
|
|
@ -559,7 +559,7 @@ static void write_remote_refs(const struct ref *local_refs)
|
|||
for (r = local_refs; r; r = r->next) {
|
||||
if (!r->peer_ref)
|
||||
continue;
|
||||
if (ref_transaction_create(t, r->peer_ref->name, r->old_sha1,
|
||||
if (ref_transaction_create(t, r->peer_ref->name, r->old_oid.hash,
|
||||
0, NULL, &err))
|
||||
die("%s", err.buf);
|
||||
}
|
||||
|
@ -579,9 +579,9 @@ static void write_followtags(const struct ref *refs, const char *msg)
|
|||
continue;
|
||||
if (ends_with(ref->name, "^{}"))
|
||||
continue;
|
||||
if (!has_sha1_file(ref->old_sha1))
|
||||
if (!has_object_file(&ref->old_oid))
|
||||
continue;
|
||||
update_ref(msg, ref->name, ref->old_sha1,
|
||||
update_ref(msg, ref->name, ref->old_oid.hash,
|
||||
NULL, 0, UPDATE_REFS_DIE_ON_ERR);
|
||||
}
|
||||
}
|
||||
|
@ -601,7 +601,7 @@ static int iterate_ref_map(void *cb_data, unsigned char sha1[20])
|
|||
if (!ref)
|
||||
return -1;
|
||||
|
||||
hashcpy(sha1, ref->old_sha1);
|
||||
hashcpy(sha1, ref->old_oid.hash);
|
||||
*rm = ref->next;
|
||||
return 0;
|
||||
}
|
||||
|
@ -650,14 +650,14 @@ static void update_head(const struct ref *our, const struct ref *remote,
|
|||
/* Local default branch link */
|
||||
create_symref("HEAD", our->name, NULL);
|
||||
if (!option_bare) {
|
||||
update_ref(msg, "HEAD", our->old_sha1, NULL, 0,
|
||||
update_ref(msg, "HEAD", our->old_oid.hash, NULL, 0,
|
||||
UPDATE_REFS_DIE_ON_ERR);
|
||||
install_branch_config(0, head, option_origin, our->name);
|
||||
}
|
||||
} else if (our) {
|
||||
struct commit *c = lookup_commit_reference(our->old_sha1);
|
||||
struct commit *c = lookup_commit_reference(our->old_oid.hash);
|
||||
/* --branch specifies a non-branch (i.e. tags), detach HEAD */
|
||||
update_ref(msg, "HEAD", c->object.sha1,
|
||||
update_ref(msg, "HEAD", c->object.oid.hash,
|
||||
NULL, REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
||||
} else if (remote) {
|
||||
/*
|
||||
|
@ -665,7 +665,7 @@ static void update_head(const struct ref *our, const struct ref *remote,
|
|||
* HEAD points to a branch but we don't know which one.
|
||||
* Detach HEAD in all these cases.
|
||||
*/
|
||||
update_ref(msg, "HEAD", remote->old_sha1,
|
||||
update_ref(msg, "HEAD", remote->old_oid.hash,
|
||||
NULL, REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
||||
}
|
||||
}
|
||||
|
@ -1016,7 +1016,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
|
|||
* remote HEAD check.
|
||||
*/
|
||||
for (ref = refs; ref; ref = ref->next)
|
||||
if (is_null_sha1(ref->old_sha1)) {
|
||||
if (is_null_oid(&ref->old_oid)) {
|
||||
complete_refs_before_fetch = 0;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -16,11 +16,11 @@ static const char *sign_commit;
|
|||
|
||||
static void new_parent(struct commit *parent, struct commit_list **parents_p)
|
||||
{
|
||||
unsigned char *sha1 = parent->object.sha1;
|
||||
struct object_id *oid = &parent->object.oid;
|
||||
struct commit_list *parents;
|
||||
for (parents = *parents_p; parents; parents = parents->next) {
|
||||
if (parents->item == parent) {
|
||||
error("duplicate parent %s ignored", sha1_to_hex(sha1));
|
||||
error("duplicate parent %s ignored", oid_to_hex(oid));
|
||||
return;
|
||||
}
|
||||
parents_p = &parents->next;
|
||||
|
|
|
@ -300,7 +300,7 @@ static void create_base_index(const struct commit *current_head)
|
|||
opts.dst_index = &the_index;
|
||||
|
||||
opts.fn = oneway_merge;
|
||||
tree = parse_tree_indirect(current_head->object.sha1);
|
||||
tree = parse_tree_indirect(current_head->object.oid.hash);
|
||||
if (!tree)
|
||||
die(_("failed to unpack HEAD tree object"));
|
||||
parse_tree(tree);
|
||||
|
@ -1769,7 +1769,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
|||
if (!transaction ||
|
||||
ref_transaction_update(transaction, "HEAD", sha1,
|
||||
current_head
|
||||
? current_head->object.sha1 : null_sha1,
|
||||
? current_head->object.oid.hash : null_sha1,
|
||||
0, sb.buf, &err) ||
|
||||
ref_transaction_commit(transaction, &err)) {
|
||||
rollback_index_files();
|
||||
|
@ -1796,10 +1796,10 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
|||
cfg = init_copy_notes_for_rewrite("amend");
|
||||
if (cfg) {
|
||||
/* we are amending, so current_head is not NULL */
|
||||
copy_note_for_rewrite(cfg, current_head->object.sha1, sha1);
|
||||
copy_note_for_rewrite(cfg, current_head->object.oid.hash, sha1);
|
||||
finish_copy_notes_for_rewrite(cfg, "Notes added by 'git commit --amend'");
|
||||
}
|
||||
run_rewrite_hook(current_head->object.sha1, sha1);
|
||||
run_rewrite_hook(current_head->object.oid.hash, sha1);
|
||||
}
|
||||
if (!quiet)
|
||||
print_summary(prefix, sha1, !current_head);
|
||||
|
|
|
@ -252,14 +252,14 @@ static void describe(const char *arg, int last_one)
|
|||
if (!cmit)
|
||||
die(_("%s is not a valid '%s' object"), arg, commit_type);
|
||||
|
||||
n = find_commit_name(cmit->object.sha1);
|
||||
n = find_commit_name(cmit->object.oid.hash);
|
||||
if (n && (tags || all || n->prio == 2)) {
|
||||
/*
|
||||
* Exact match to an existing ref.
|
||||
*/
|
||||
display_name(n);
|
||||
if (longformat)
|
||||
show_suffix(0, n->tag ? n->tag->tagged->sha1 : sha1);
|
||||
show_suffix(0, n->tag ? n->tag->tagged->oid.hash : sha1);
|
||||
if (dirty)
|
||||
printf("%s", dirty);
|
||||
printf("\n");
|
||||
|
@ -267,7 +267,7 @@ static void describe(const char *arg, int last_one)
|
|||
}
|
||||
|
||||
if (!max_candidates)
|
||||
die(_("no tag exactly matches '%s'"), sha1_to_hex(cmit->object.sha1));
|
||||
die(_("no tag exactly matches '%s'"), oid_to_hex(&cmit->object.oid));
|
||||
if (debug)
|
||||
fprintf(stderr, _("searching to describe %s\n"), arg);
|
||||
|
||||
|
@ -317,7 +317,7 @@ static void describe(const char *arg, int last_one)
|
|||
if (annotated_cnt && !list) {
|
||||
if (debug)
|
||||
fprintf(stderr, _("finished search at %s\n"),
|
||||
sha1_to_hex(c->object.sha1));
|
||||
oid_to_hex(&c->object.oid));
|
||||
break;
|
||||
}
|
||||
while (parents) {
|
||||
|
@ -334,9 +334,9 @@ static void describe(const char *arg, int last_one)
|
|||
}
|
||||
|
||||
if (!match_cnt) {
|
||||
const unsigned char *sha1 = cmit->object.sha1;
|
||||
struct object_id *oid = &cmit->object.oid;
|
||||
if (always) {
|
||||
printf("%s", find_unique_abbrev(sha1, abbrev));
|
||||
printf("%s", find_unique_abbrev(oid->hash, abbrev));
|
||||
if (dirty)
|
||||
printf("%s", dirty);
|
||||
printf("\n");
|
||||
|
@ -345,11 +345,11 @@ static void describe(const char *arg, int last_one)
|
|||
if (unannotated_cnt)
|
||||
die(_("No annotated tags can describe '%s'.\n"
|
||||
"However, there were unannotated tags: try --tags."),
|
||||
sha1_to_hex(sha1));
|
||||
oid_to_hex(oid));
|
||||
else
|
||||
die(_("No tags can describe '%s'.\n"
|
||||
"Try --always, or create some tags."),
|
||||
sha1_to_hex(sha1));
|
||||
oid_to_hex(oid));
|
||||
}
|
||||
|
||||
qsort(all_matches, match_cnt, sizeof(all_matches[0]), compare_pt);
|
||||
|
@ -374,13 +374,13 @@ static void describe(const char *arg, int last_one)
|
|||
_("more than %i tags found; listed %i most recent\n"
|
||||
"gave up search at %s\n"),
|
||||
max_candidates, max_candidates,
|
||||
sha1_to_hex(gave_up_on->object.sha1));
|
||||
oid_to_hex(&gave_up_on->object.oid));
|
||||
}
|
||||
}
|
||||
|
||||
display_name(all_matches[0].name);
|
||||
if (abbrev)
|
||||
show_suffix(all_matches[0].depth, cmit->object.sha1);
|
||||
show_suffix(all_matches[0].depth, cmit->object.oid.hash);
|
||||
if (dirty)
|
||||
printf("%s", dirty);
|
||||
printf("\n");
|
||||
|
|
|
@ -49,9 +49,9 @@ static int stdin_diff_trees(struct tree *tree1, char *line, int len)
|
|||
tree2 = lookup_tree(sha1);
|
||||
if (!tree2 || parse_tree(tree2))
|
||||
return -1;
|
||||
printf("%s %s\n", sha1_to_hex(tree1->object.sha1),
|
||||
sha1_to_hex(tree2->object.sha1));
|
||||
diff_tree_sha1(tree1->object.sha1, tree2->object.sha1,
|
||||
printf("%s %s\n", oid_to_hex(&tree1->object.oid),
|
||||
oid_to_hex(&tree2->object.oid));
|
||||
diff_tree_sha1(tree1->object.oid.hash, tree2->object.oid.hash,
|
||||
"", &log_tree_opt.diffopt);
|
||||
log_tree_diff_flush(&log_tree_opt);
|
||||
return 0;
|
||||
|
@ -139,7 +139,7 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
|
|||
break;
|
||||
case 1:
|
||||
tree1 = opt->pending.objects[0].item;
|
||||
diff_tree_commit_sha1(tree1->sha1);
|
||||
diff_tree_commit_sha1(tree1->oid.hash);
|
||||
break;
|
||||
case 2:
|
||||
tree1 = opt->pending.objects[0].item;
|
||||
|
@ -149,8 +149,8 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
|
|||
tree2 = tree1;
|
||||
tree1 = tmp;
|
||||
}
|
||||
diff_tree_sha1(tree1->sha1,
|
||||
tree2->sha1,
|
||||
diff_tree_sha1(tree1->oid.hash,
|
||||
tree2->oid.hash,
|
||||
"", &opt->diffopt);
|
||||
log_tree_diff_flush(opt);
|
||||
break;
|
||||
|
|
|
@ -175,8 +175,8 @@ static int builtin_diff_tree(struct rev_info *revs,
|
|||
*/
|
||||
if (ent1->item->flags & UNINTERESTING)
|
||||
swap = 1;
|
||||
sha1[swap] = ent0->item->sha1;
|
||||
sha1[1 - swap] = ent1->item->sha1;
|
||||
sha1[swap] = ent0->item->oid.hash;
|
||||
sha1[1 - swap] = ent1->item->oid.hash;
|
||||
diff_tree_sha1(sha1[0], sha1[1], "", &revs->diffopt);
|
||||
log_tree_diff_flush(revs);
|
||||
return 0;
|
||||
|
@ -196,8 +196,8 @@ static int builtin_diff_combined(struct rev_info *revs,
|
|||
if (!revs->dense_combined_merges && !revs->combine_merges)
|
||||
revs->dense_combined_merges = revs->combine_merges = 1;
|
||||
for (i = 1; i < ents; i++)
|
||||
sha1_array_append(&parents, ent[i].item->sha1);
|
||||
diff_tree_combined(ent[0].item->sha1, &parents,
|
||||
sha1_array_append(&parents, ent[i].item->oid.hash);
|
||||
diff_tree_combined(ent[0].item->oid.hash, &parents,
|
||||
revs->dense_combined_merges, revs);
|
||||
sha1_array_clear(&parents);
|
||||
return 0;
|
||||
|
@ -395,7 +395,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
|
|||
const char *name = entry->name;
|
||||
int flags = (obj->flags & UNINTERESTING);
|
||||
if (!obj->parsed)
|
||||
obj = parse_object(obj->sha1);
|
||||
obj = parse_object(obj->oid.hash);
|
||||
obj = deref_tag(obj, NULL, 0);
|
||||
if (!obj)
|
||||
die(_("invalid object '%s' given."), name);
|
||||
|
@ -408,7 +408,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
|
|||
} else if (obj->type == OBJ_BLOB) {
|
||||
if (2 <= blobs)
|
||||
die(_("more than two blobs given: '%s'"), name);
|
||||
hashcpy(blob[blobs].sha1, obj->sha1);
|
||||
hashcpy(blob[blobs].sha1, obj->oid.hash);
|
||||
blob[blobs].name = name;
|
||||
blob[blobs].mode = entry->mode;
|
||||
blobs++;
|
||||
|
|
|
@ -544,13 +544,13 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
|
|||
author = strstr(commit_buffer, "\nauthor ");
|
||||
if (!author)
|
||||
die ("Could not find author in commit %s",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
author++;
|
||||
author_end = strchrnul(author, '\n');
|
||||
committer = strstr(author_end, "\ncommitter ");
|
||||
if (!committer)
|
||||
die ("Could not find committer in commit %s",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
committer++;
|
||||
committer_end = strchrnul(committer, '\n');
|
||||
message = strstr(committer_end, "\n\n");
|
||||
|
@ -562,11 +562,11 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
|
|||
get_object_mark(&commit->parents->item->object) != 0 &&
|
||||
!full_tree) {
|
||||
parse_commit_or_die(commit->parents->item);
|
||||
diff_tree_sha1(commit->parents->item->tree->object.sha1,
|
||||
commit->tree->object.sha1, "", &rev->diffopt);
|
||||
diff_tree_sha1(commit->parents->item->tree->object.oid.hash,
|
||||
commit->tree->object.oid.hash, "", &rev->diffopt);
|
||||
}
|
||||
else
|
||||
diff_root_tree_sha1(commit->tree->object.sha1,
|
||||
diff_root_tree_sha1(commit->tree->object.oid.hash,
|
||||
"", &rev->diffopt);
|
||||
|
||||
/* Export the referenced blobs, and remember the marks. */
|
||||
|
@ -661,13 +661,13 @@ static void handle_tag(const char *name, struct tag *tag)
|
|||
}
|
||||
if (tagged->type == OBJ_TREE) {
|
||||
warning("Omitting tag %s,\nsince tags of trees (or tags of tags of trees, etc.) are not supported.",
|
||||
sha1_to_hex(tag->object.sha1));
|
||||
oid_to_hex(&tag->object.oid));
|
||||
return;
|
||||
}
|
||||
|
||||
buf = read_sha1_file(tag->object.sha1, &type, &size);
|
||||
buf = read_sha1_file(tag->object.oid.hash, &type, &size);
|
||||
if (!buf)
|
||||
die ("Could not read tag %s", sha1_to_hex(tag->object.sha1));
|
||||
die ("Could not read tag %s", oid_to_hex(&tag->object.oid));
|
||||
message = memmem(buf, size, "\n\n", 2);
|
||||
if (message) {
|
||||
message += 2;
|
||||
|
@ -706,16 +706,16 @@ static void handle_tag(const char *name, struct tag *tag)
|
|||
case ABORT:
|
||||
die ("Encountered signed tag %s; use "
|
||||
"--signed-tags=<mode> to handle it.",
|
||||
sha1_to_hex(tag->object.sha1));
|
||||
oid_to_hex(&tag->object.oid));
|
||||
case WARN:
|
||||
warning ("Exporting signed tag %s",
|
||||
sha1_to_hex(tag->object.sha1));
|
||||
oid_to_hex(&tag->object.oid));
|
||||
/* fallthru */
|
||||
case VERBATIM:
|
||||
break;
|
||||
case WARN_STRIP:
|
||||
warning ("Stripping signature from tag %s",
|
||||
sha1_to_hex(tag->object.sha1));
|
||||
oid_to_hex(&tag->object.oid));
|
||||
/* fallthru */
|
||||
case STRIP:
|
||||
message_size = signature + 1 - message;
|
||||
|
@ -731,14 +731,14 @@ static void handle_tag(const char *name, struct tag *tag)
|
|||
case ABORT:
|
||||
die ("Tag %s tags unexported object; use "
|
||||
"--tag-of-filtered-object=<mode> to handle it.",
|
||||
sha1_to_hex(tag->object.sha1));
|
||||
oid_to_hex(&tag->object.oid));
|
||||
case DROP:
|
||||
/* Ignore this tag altogether */
|
||||
return;
|
||||
case REWRITE:
|
||||
if (tagged->type != OBJ_COMMIT) {
|
||||
die ("Tag %s tags unexported %s!",
|
||||
sha1_to_hex(tag->object.sha1),
|
||||
oid_to_hex(&tag->object.oid),
|
||||
typename(tagged->type));
|
||||
}
|
||||
p = (struct commit *)tagged;
|
||||
|
@ -751,7 +751,7 @@ static void handle_tag(const char *name, struct tag *tag)
|
|||
break;
|
||||
if (!p->parents)
|
||||
die ("Can't find replacement commit for tag %s\n",
|
||||
sha1_to_hex(tag->object.sha1));
|
||||
oid_to_hex(&tag->object.oid));
|
||||
p = p->parents->item;
|
||||
}
|
||||
tagged_mark = get_object_mark(&p->object);
|
||||
|
@ -777,7 +777,7 @@ static struct commit *get_commit(struct rev_cmdline_entry *e, char *full_name)
|
|||
|
||||
/* handle nested tags */
|
||||
while (tag && tag->object.type == OBJ_TAG) {
|
||||
parse_object(tag->object.sha1);
|
||||
parse_object(tag->object.oid.hash);
|
||||
string_list_append(&extra_refs, full_name)->util = tag;
|
||||
tag = (struct tag *)tag->tagged;
|
||||
}
|
||||
|
@ -828,7 +828,7 @@ static void get_tags_and_duplicates(struct rev_cmdline_info *info)
|
|||
case OBJ_COMMIT:
|
||||
break;
|
||||
case OBJ_BLOB:
|
||||
export_blob(commit->object.sha1);
|
||||
export_blob(commit->object.oid.hash);
|
||||
continue;
|
||||
default: /* OBJ_TAG (nested tags) is already handled */
|
||||
warning("Tag points to object of unexpected type %s, skipping.",
|
||||
|
@ -888,7 +888,7 @@ static void export_marks(char *file)
|
|||
if (deco->base && deco->base->type == 1) {
|
||||
mark = ptr_to_mark(deco->decoration);
|
||||
if (fprintf(f, ":%"PRIu32" %s\n", mark,
|
||||
sha1_to_hex(deco->base->sha1)) < 0) {
|
||||
oid_to_hex(&deco->base->oid)) < 0) {
|
||||
e = 1;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -14,12 +14,14 @@ static void add_sought_entry_mem(struct ref ***sought, int *nr, int *alloc,
|
|||
const char *name, int namelen)
|
||||
{
|
||||
struct ref *ref = xcalloc(1, sizeof(*ref) + namelen + 1);
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
const int chunksz = GIT_SHA1_HEXSZ + 1;
|
||||
|
||||
if (namelen > 41 && name[40] == ' ' && !get_sha1_hex(name, sha1)) {
|
||||
hashcpy(ref->old_sha1, sha1);
|
||||
name += 41;
|
||||
namelen -= 41;
|
||||
if (namelen > chunksz && name[chunksz - 1] == ' ' &&
|
||||
!get_oid_hex(name, &oid)) {
|
||||
oidcpy(&ref->old_oid, &oid);
|
||||
name += chunksz;
|
||||
namelen -= chunksz;
|
||||
}
|
||||
|
||||
memcpy(ref->name, name, namelen);
|
||||
|
@ -210,7 +212,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
|
|||
|
||||
while (ref) {
|
||||
printf("%s %s\n",
|
||||
sha1_to_hex(ref->old_sha1), ref->name);
|
||||
oid_to_hex(&ref->old_oid), ref->name);
|
||||
ref = ref->next;
|
||||
}
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ static int will_fetch(struct ref **head, const unsigned char *sha1)
|
|||
{
|
||||
struct ref *rm = *head;
|
||||
while (rm) {
|
||||
if (!hashcmp(rm->old_sha1, sha1))
|
||||
if (!hashcmp(rm->old_oid.hash, sha1))
|
||||
return 1;
|
||||
rm = rm->next;
|
||||
}
|
||||
|
@ -224,8 +224,8 @@ static void find_non_local_tags(struct transport *transport,
|
|||
* as one to ignore by setting util to NULL.
|
||||
*/
|
||||
if (ends_with(ref->name, "^{}")) {
|
||||
if (item && !has_sha1_file(ref->old_sha1) &&
|
||||
!will_fetch(head, ref->old_sha1) &&
|
||||
if (item && !has_object_file(&ref->old_oid) &&
|
||||
!will_fetch(head, ref->old_oid.hash) &&
|
||||
!has_sha1_file(item->util) &&
|
||||
!will_fetch(head, item->util))
|
||||
item->util = NULL;
|
||||
|
@ -251,7 +251,7 @@ static void find_non_local_tags(struct transport *transport,
|
|||
continue;
|
||||
|
||||
item = string_list_insert(&remote_refs, ref->name);
|
||||
item->util = (void *)ref->old_sha1;
|
||||
item->util = (void *)&ref->old_oid;
|
||||
}
|
||||
string_list_clear(&existing_refs, 1);
|
||||
|
||||
|
@ -273,7 +273,7 @@ static void find_non_local_tags(struct transport *transport,
|
|||
{
|
||||
struct ref *rm = alloc_ref(item->string);
|
||||
rm->peer_ref = alloc_ref(item->string);
|
||||
hashcpy(rm->old_sha1, item->util);
|
||||
oidcpy(&rm->old_oid, item->util);
|
||||
**tail = rm;
|
||||
*tail = &rm->next;
|
||||
}
|
||||
|
@ -419,8 +419,8 @@ static int s_update_ref(const char *action,
|
|||
transaction = ref_transaction_begin(&err);
|
||||
if (!transaction ||
|
||||
ref_transaction_update(transaction, ref->name,
|
||||
ref->new_sha1,
|
||||
check_old ? ref->old_sha1 : NULL,
|
||||
ref->new_oid.hash,
|
||||
check_old ? ref->old_oid.hash : NULL,
|
||||
0, msg, &err))
|
||||
goto fail;
|
||||
|
||||
|
@ -453,11 +453,11 @@ static int update_local_ref(struct ref *ref,
|
|||
struct branch *current_branch = branch_get(NULL);
|
||||
const char *pretty_ref = prettify_refname(ref->name);
|
||||
|
||||
type = sha1_object_info(ref->new_sha1, NULL);
|
||||
type = sha1_object_info(ref->new_oid.hash, NULL);
|
||||
if (type < 0)
|
||||
die(_("object %s not found"), sha1_to_hex(ref->new_sha1));
|
||||
die(_("object %s not found"), oid_to_hex(&ref->new_oid));
|
||||
|
||||
if (!hashcmp(ref->old_sha1, ref->new_sha1)) {
|
||||
if (!oidcmp(&ref->old_oid, &ref->new_oid)) {
|
||||
if (verbosity > 0)
|
||||
strbuf_addf(display, "= %-*s %-*s -> %s",
|
||||
TRANSPORT_SUMMARY(_("[up to date]")),
|
||||
|
@ -468,7 +468,7 @@ static int update_local_ref(struct ref *ref,
|
|||
if (current_branch &&
|
||||
!strcmp(ref->name, current_branch->name) &&
|
||||
!(update_head_ok || is_bare_repository()) &&
|
||||
!is_null_sha1(ref->old_sha1)) {
|
||||
!is_null_oid(&ref->old_oid)) {
|
||||
/*
|
||||
* If this is the head, and it's not okay to update
|
||||
* the head, and the old value of the head isn't empty...
|
||||
|
@ -480,7 +480,7 @@ static int update_local_ref(struct ref *ref,
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (!is_null_sha1(ref->old_sha1) &&
|
||||
if (!is_null_oid(&ref->old_oid) &&
|
||||
starts_with(ref->name, "refs/tags/")) {
|
||||
int r;
|
||||
r = s_update_ref("updating tag", ref, 0);
|
||||
|
@ -492,8 +492,8 @@ static int update_local_ref(struct ref *ref,
|
|||
return r;
|
||||
}
|
||||
|
||||
current = lookup_commit_reference_gently(ref->old_sha1, 1);
|
||||
updated = lookup_commit_reference_gently(ref->new_sha1, 1);
|
||||
current = lookup_commit_reference_gently(ref->old_oid.hash, 1);
|
||||
updated = lookup_commit_reference_gently(ref->new_oid.hash, 1);
|
||||
if (!current || !updated) {
|
||||
const char *msg;
|
||||
const char *what;
|
||||
|
@ -517,7 +517,7 @@ static int update_local_ref(struct ref *ref,
|
|||
|
||||
if ((recurse_submodules != RECURSE_SUBMODULES_OFF) &&
|
||||
(recurse_submodules != RECURSE_SUBMODULES_ON))
|
||||
check_for_new_submodule_commits(ref->new_sha1);
|
||||
check_for_new_submodule_commits(ref->new_oid.hash);
|
||||
r = s_update_ref(msg, ref, 0);
|
||||
strbuf_addf(display, "%c %-*s %-*s -> %s%s",
|
||||
r ? '!' : '*',
|
||||
|
@ -530,12 +530,12 @@ static int update_local_ref(struct ref *ref,
|
|||
if (in_merge_bases(current, updated)) {
|
||||
struct strbuf quickref = STRBUF_INIT;
|
||||
int r;
|
||||
strbuf_add_unique_abbrev(&quickref, current->object.sha1, DEFAULT_ABBREV);
|
||||
strbuf_add_unique_abbrev(&quickref, current->object.oid.hash, DEFAULT_ABBREV);
|
||||
strbuf_addstr(&quickref, "..");
|
||||
strbuf_add_unique_abbrev(&quickref, ref->new_sha1, DEFAULT_ABBREV);
|
||||
strbuf_add_unique_abbrev(&quickref, ref->new_oid.hash, DEFAULT_ABBREV);
|
||||
if ((recurse_submodules != RECURSE_SUBMODULES_OFF) &&
|
||||
(recurse_submodules != RECURSE_SUBMODULES_ON))
|
||||
check_for_new_submodule_commits(ref->new_sha1);
|
||||
check_for_new_submodule_commits(ref->new_oid.hash);
|
||||
r = s_update_ref("fast-forward", ref, 1);
|
||||
strbuf_addf(display, "%c %-*s %-*s -> %s%s",
|
||||
r ? '!' : ' ',
|
||||
|
@ -547,12 +547,12 @@ static int update_local_ref(struct ref *ref,
|
|||
} else if (force || ref->force) {
|
||||
struct strbuf quickref = STRBUF_INIT;
|
||||
int r;
|
||||
strbuf_add_unique_abbrev(&quickref, current->object.sha1, DEFAULT_ABBREV);
|
||||
strbuf_add_unique_abbrev(&quickref, current->object.oid.hash, DEFAULT_ABBREV);
|
||||
strbuf_addstr(&quickref, "...");
|
||||
strbuf_add_unique_abbrev(&quickref, ref->new_sha1, DEFAULT_ABBREV);
|
||||
strbuf_add_unique_abbrev(&quickref, ref->new_oid.hash, DEFAULT_ABBREV);
|
||||
if ((recurse_submodules != RECURSE_SUBMODULES_OFF) &&
|
||||
(recurse_submodules != RECURSE_SUBMODULES_ON))
|
||||
check_for_new_submodule_commits(ref->new_sha1);
|
||||
check_for_new_submodule_commits(ref->new_oid.hash);
|
||||
r = s_update_ref("forced-update", ref, 1);
|
||||
strbuf_addf(display, "%c %-*s %-*s -> %s (%s)",
|
||||
r ? '!' : '+',
|
||||
|
@ -580,7 +580,7 @@ static int iterate_ref_map(void *cb_data, unsigned char sha1[20])
|
|||
if (!ref)
|
||||
return -1; /* end of the list */
|
||||
*rm = ref->next;
|
||||
hashcpy(sha1, ref->old_sha1);
|
||||
hashcpy(sha1, ref->old_oid.hash);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -631,7 +631,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
|
|||
continue;
|
||||
}
|
||||
|
||||
commit = lookup_commit_reference_gently(rm->old_sha1, 1);
|
||||
commit = lookup_commit_reference_gently(rm->old_oid.hash, 1);
|
||||
if (!commit)
|
||||
rm->fetch_head_status = FETCH_HEAD_NOT_FOR_MERGE;
|
||||
|
||||
|
@ -640,8 +640,8 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
|
|||
|
||||
if (rm->peer_ref) {
|
||||
ref = alloc_ref(rm->peer_ref->name);
|
||||
hashcpy(ref->old_sha1, rm->peer_ref->old_sha1);
|
||||
hashcpy(ref->new_sha1, rm->old_sha1);
|
||||
oidcpy(&ref->old_oid, &rm->peer_ref->old_oid);
|
||||
oidcpy(&ref->new_oid, &rm->old_oid);
|
||||
ref->force = rm->peer_ref->force;
|
||||
}
|
||||
|
||||
|
@ -686,7 +686,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
|
|||
/* fall-through */
|
||||
case FETCH_HEAD_MERGE:
|
||||
fprintf(fp, "%s\t%s\t%s",
|
||||
sha1_to_hex(rm->old_sha1),
|
||||
oid_to_hex(&rm->old_oid),
|
||||
merge_status_marker,
|
||||
note.buf);
|
||||
for (i = 0; i < url_len; ++i)
|
||||
|
@ -928,7 +928,7 @@ static int do_fetch(struct transport *transport,
|
|||
rm->peer_ref->name);
|
||||
if (peer_item) {
|
||||
struct object_id *old_oid = peer_item->util;
|
||||
hashcpy(rm->peer_ref->old_sha1, old_oid->hash);
|
||||
oidcpy(&rm->peer_ref->old_oid, old_oid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -378,7 +378,7 @@ static void shortlog(const char *name,
|
|||
|
||||
if (!sb.len)
|
||||
string_list_append(&subjects,
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
else
|
||||
string_list_append(&subjects, strbuf_detach(&sb, NULL));
|
||||
}
|
||||
|
@ -568,7 +568,7 @@ static void find_merge_parents(struct merge_parents *result,
|
|||
if (!parent)
|
||||
continue;
|
||||
commit_list_insert(parent, &parents);
|
||||
add_merge_parent(result, obj->sha1, parent->object.sha1);
|
||||
add_merge_parent(result, obj->oid.hash, parent->object.oid.hash);
|
||||
}
|
||||
head_commit = lookup_commit(head);
|
||||
if (head_commit)
|
||||
|
@ -578,7 +578,7 @@ static void find_merge_parents(struct merge_parents *result,
|
|||
while (parents) {
|
||||
struct commit *cmit = pop_commit(&parents);
|
||||
for (i = 0; i < result->nr; i++)
|
||||
if (!hashcmp(result->item[i].commit, cmit->object.sha1))
|
||||
if (!hashcmp(result->item[i].commit, cmit->object.oid.hash))
|
||||
result->item[i].used = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ static void objreport(struct object *obj, const char *msg_type,
|
|||
const char *err)
|
||||
{
|
||||
fprintf(stderr, "%s in %s %s: %s\n",
|
||||
msg_type, typename(obj->type), sha1_to_hex(obj->sha1), err);
|
||||
msg_type, typename(obj->type), oid_to_hex(&obj->oid), err);
|
||||
}
|
||||
|
||||
static int objerror(struct object *obj, const char *err)
|
||||
|
@ -97,7 +97,7 @@ static int mark_object(struct object *obj, int type, void *data, struct fsck_opt
|
|||
if (!obj) {
|
||||
/* ... these references to parent->fld are safe here */
|
||||
printf("broken link from %7s %s\n",
|
||||
typename(parent->type), sha1_to_hex(parent->sha1));
|
||||
typename(parent->type), oid_to_hex(&parent->oid));
|
||||
printf("broken link from %7s %s\n",
|
||||
(type == OBJ_ANY ? "unknown" : typename(type)), "unknown");
|
||||
errors_found |= ERROR_REACHABLE;
|
||||
|
@ -112,11 +112,11 @@ static int mark_object(struct object *obj, int type, void *data, struct fsck_opt
|
|||
return 0;
|
||||
obj->flags |= REACHABLE;
|
||||
if (!(obj->flags & HAS_OBJ)) {
|
||||
if (parent && !has_sha1_file(obj->sha1)) {
|
||||
if (parent && !has_object_file(&obj->oid)) {
|
||||
printf("broken link from %7s %s\n",
|
||||
typename(parent->type), sha1_to_hex(parent->sha1));
|
||||
typename(parent->type), oid_to_hex(&parent->oid));
|
||||
printf(" to %7s %s\n",
|
||||
typename(obj->type), sha1_to_hex(obj->sha1));
|
||||
typename(obj->type), oid_to_hex(&obj->oid));
|
||||
errors_found |= ERROR_REACHABLE;
|
||||
}
|
||||
return 1;
|
||||
|
@ -186,11 +186,11 @@ static void check_reachable_object(struct object *obj)
|
|||
* do a full fsck
|
||||
*/
|
||||
if (!(obj->flags & HAS_OBJ)) {
|
||||
if (has_sha1_pack(obj->sha1))
|
||||
if (has_sha1_pack(obj->oid.hash))
|
||||
return; /* it is in pack - forget about it */
|
||||
if (connectivity_only && has_sha1_file(obj->sha1))
|
||||
if (connectivity_only && has_object_file(&obj->oid))
|
||||
return;
|
||||
printf("missing %s %s\n", typename(obj->type), sha1_to_hex(obj->sha1));
|
||||
printf("missing %s %s\n", typename(obj->type), oid_to_hex(&obj->oid));
|
||||
errors_found |= ERROR_REACHABLE;
|
||||
return;
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ static void check_unreachable_object(struct object *obj)
|
|||
* since this is something that is prunable.
|
||||
*/
|
||||
if (show_unreachable) {
|
||||
printf("unreachable %s %s\n", typename(obj->type), sha1_to_hex(obj->sha1));
|
||||
printf("unreachable %s %s\n", typename(obj->type), oid_to_hex(&obj->oid));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -234,11 +234,11 @@ static void check_unreachable_object(struct object *obj)
|
|||
if (!obj->used) {
|
||||
if (show_dangling)
|
||||
printf("dangling %s %s\n", typename(obj->type),
|
||||
sha1_to_hex(obj->sha1));
|
||||
oid_to_hex(&obj->oid));
|
||||
if (write_lost_and_found) {
|
||||
char *filename = git_pathdup("lost-found/%s/%s",
|
||||
obj->type == OBJ_COMMIT ? "commit" : "other",
|
||||
sha1_to_hex(obj->sha1));
|
||||
oid_to_hex(&obj->oid));
|
||||
FILE *f;
|
||||
|
||||
if (safe_create_leading_directories_const(filename)) {
|
||||
|
@ -249,10 +249,10 @@ static void check_unreachable_object(struct object *obj)
|
|||
if (!(f = fopen(filename, "w")))
|
||||
die_errno("Could not open '%s'", filename);
|
||||
if (obj->type == OBJ_BLOB) {
|
||||
if (stream_blob_to_fd(fileno(f), obj->sha1, NULL, 1))
|
||||
if (stream_blob_to_fd(fileno(f), obj->oid.hash, NULL, 1))
|
||||
die_errno("Could not write '%s'", filename);
|
||||
} else
|
||||
fprintf(f, "%s\n", sha1_to_hex(obj->sha1));
|
||||
fprintf(f, "%s\n", oid_to_hex(&obj->oid));
|
||||
if (fclose(f))
|
||||
die_errno("Could not finish '%s'",
|
||||
filename);
|
||||
|
@ -271,7 +271,7 @@ static void check_unreachable_object(struct object *obj)
|
|||
static void check_object(struct object *obj)
|
||||
{
|
||||
if (verbose)
|
||||
fprintf(stderr, "Checking %s\n", sha1_to_hex(obj->sha1));
|
||||
fprintf(stderr, "Checking %s\n", oid_to_hex(&obj->oid));
|
||||
|
||||
if (obj->flags & REACHABLE)
|
||||
check_reachable_object(obj);
|
||||
|
@ -307,7 +307,7 @@ static int fsck_obj(struct object *obj)
|
|||
|
||||
if (verbose)
|
||||
fprintf(stderr, "Checking %s %s\n",
|
||||
typename(obj->type), sha1_to_hex(obj->sha1));
|
||||
typename(obj->type), oid_to_hex(&obj->oid));
|
||||
|
||||
if (fsck_walk(obj, NULL, &fsck_obj_options))
|
||||
objerror(obj, "broken links");
|
||||
|
@ -326,15 +326,15 @@ static int fsck_obj(struct object *obj)
|
|||
free_commit_buffer(commit);
|
||||
|
||||
if (!commit->parents && show_root)
|
||||
printf("root %s\n", sha1_to_hex(commit->object.sha1));
|
||||
printf("root %s\n", oid_to_hex(&commit->object.oid));
|
||||
}
|
||||
|
||||
if (obj->type == OBJ_TAG) {
|
||||
struct tag *tag = (struct tag *) obj;
|
||||
|
||||
if (show_tags && tag->tagged) {
|
||||
printf("tagged %s %s", typename(tag->tagged->type), sha1_to_hex(tag->tagged->sha1));
|
||||
printf(" (%s) in %s\n", tag->tag, sha1_to_hex(tag->object.sha1));
|
||||
printf("tagged %s %s", typename(tag->tagged->type), oid_to_hex(&tag->tagged->oid));
|
||||
printf(" (%s) in %s\n", tag->tag, oid_to_hex(&tag->object.oid));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -459,7 +459,7 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
|
|||
struct object *obj, const char *name, const char *path)
|
||||
{
|
||||
if (obj->type == OBJ_BLOB)
|
||||
return grep_sha1(opt, obj->sha1, name, 0, path);
|
||||
return grep_sha1(opt, obj->oid.hash, name, 0, path);
|
||||
if (obj->type == OBJ_COMMIT || obj->type == OBJ_TREE) {
|
||||
struct tree_desc tree;
|
||||
void *data;
|
||||
|
@ -468,12 +468,12 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
|
|||
int hit, len;
|
||||
|
||||
grep_read_lock();
|
||||
data = read_object_with_reference(obj->sha1, tree_type,
|
||||
data = read_object_with_reference(obj->oid.hash, tree_type,
|
||||
&size, NULL);
|
||||
grep_read_unlock();
|
||||
|
||||
if (!data)
|
||||
die(_("unable to read tree (%s)"), sha1_to_hex(obj->sha1));
|
||||
die(_("unable to read tree (%s)"), oid_to_hex(&obj->oid));
|
||||
|
||||
len = name ? strlen(name) : 0;
|
||||
strbuf_init(&base, PATH_MAX + len + 1);
|
||||
|
|
|
@ -199,7 +199,7 @@ static int mark_link(struct object *obj, int type, void *data, struct fsck_optio
|
|||
return -1;
|
||||
|
||||
if (type != OBJ_ANY && obj->type != type)
|
||||
die(_("object type mismatch at %s"), sha1_to_hex(obj->sha1));
|
||||
die(_("object type mismatch at %s"), oid_to_hex(&obj->oid));
|
||||
|
||||
obj->flags |= FLAG_LINK;
|
||||
return 0;
|
||||
|
@ -217,13 +217,13 @@ static unsigned check_object(struct object *obj)
|
|||
|
||||
if (!(obj->flags & FLAG_CHECKED)) {
|
||||
unsigned long size;
|
||||
int type = sha1_object_info(obj->sha1, &size);
|
||||
int type = sha1_object_info(obj->oid.hash, &size);
|
||||
if (type <= 0)
|
||||
die(_("did not receive expected object %s"),
|
||||
sha1_to_hex(obj->sha1));
|
||||
oid_to_hex(&obj->oid));
|
||||
if (type != obj->type)
|
||||
die(_("object %s: expected type %s, found %s"),
|
||||
sha1_to_hex(obj->sha1),
|
||||
oid_to_hex(&obj->oid),
|
||||
typename(obj->type), typename(type));
|
||||
obj->flags |= FLAG_CHECKED;
|
||||
return 1;
|
||||
|
@ -842,7 +842,7 @@ static void sha1_object(const void *data, struct object_entry *obj_entry,
|
|||
fsck_object(obj, buf, size, &fsck_options))
|
||||
die(_("Error in object"));
|
||||
if (fsck_walk(obj, NULL, &fsck_options))
|
||||
die(_("Not all child objects of %s are reachable"), sha1_to_hex(obj->sha1));
|
||||
die(_("Not all child objects of %s are reachable"), oid_to_hex(&obj->oid));
|
||||
|
||||
if (obj->type == OBJ_TREE) {
|
||||
struct tree *item = (struct tree *) obj;
|
||||
|
|
|
@ -552,7 +552,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)
|
|||
const char *name = objects[i].name;
|
||||
switch (o->type) {
|
||||
case OBJ_BLOB:
|
||||
ret = show_blob_object(o->sha1, &rev, name);
|
||||
ret = show_blob_object(o->oid.hash, &rev, name);
|
||||
break;
|
||||
case OBJ_TAG: {
|
||||
struct tag *t = (struct tag *)o;
|
||||
|
@ -563,14 +563,14 @@ int cmd_show(int argc, const char **argv, const char *prefix)
|
|||
diff_get_color_opt(&rev.diffopt, DIFF_COMMIT),
|
||||
t->tag,
|
||||
diff_get_color_opt(&rev.diffopt, DIFF_RESET));
|
||||
ret = show_tag_object(o->sha1, &rev);
|
||||
ret = show_tag_object(o->oid.hash, &rev);
|
||||
rev.shown_one = 1;
|
||||
if (ret)
|
||||
break;
|
||||
o = parse_object(t->tagged->sha1);
|
||||
o = parse_object(t->tagged->oid.hash);
|
||||
if (!o)
|
||||
ret = error(_("Could not read object %s"),
|
||||
sha1_to_hex(t->tagged->sha1));
|
||||
oid_to_hex(&t->tagged->oid));
|
||||
objects[i].item = o;
|
||||
i--;
|
||||
break;
|
||||
|
@ -830,8 +830,8 @@ static void get_patch_ids(struct rev_info *rev, struct patch_ids *ids)
|
|||
o2 = rev->pending.objects[1].item;
|
||||
flags1 = o1->flags;
|
||||
flags2 = o2->flags;
|
||||
c1 = lookup_commit_reference(o1->sha1);
|
||||
c2 = lookup_commit_reference(o2->sha1);
|
||||
c1 = lookup_commit_reference(o1->oid.hash);
|
||||
c2 = lookup_commit_reference(o2->oid.hash);
|
||||
|
||||
if ((flags1 & UNINTERESTING) == (flags2 & UNINTERESTING))
|
||||
die(_("Not a range."));
|
||||
|
@ -896,8 +896,8 @@ static void add_branch_description(struct strbuf *buf, const char *branch_name)
|
|||
static char *find_branch_name(struct rev_info *rev)
|
||||
{
|
||||
int i, positive = -1;
|
||||
unsigned char branch_sha1[20];
|
||||
const unsigned char *tip_sha1;
|
||||
struct object_id branch_oid;
|
||||
const struct object_id *tip_oid;
|
||||
const char *ref, *v;
|
||||
char *full_ref, *branch = NULL;
|
||||
|
||||
|
@ -912,10 +912,10 @@ static char *find_branch_name(struct rev_info *rev)
|
|||
if (positive < 0)
|
||||
return NULL;
|
||||
ref = rev->cmdline.rev[positive].name;
|
||||
tip_sha1 = rev->cmdline.rev[positive].item->sha1;
|
||||
if (dwim_ref(ref, strlen(ref), branch_sha1, &full_ref) &&
|
||||
tip_oid = &rev->cmdline.rev[positive].item->oid;
|
||||
if (dwim_ref(ref, strlen(ref), branch_oid.hash, &full_ref) &&
|
||||
skip_prefix(full_ref, "refs/heads/", &v) &&
|
||||
!hashcmp(tip_sha1, branch_sha1))
|
||||
!oidcmp(tip_oid, &branch_oid))
|
||||
branch = xstrdup(v);
|
||||
free(full_ref);
|
||||
return branch;
|
||||
|
@ -993,8 +993,8 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
|
|||
|
||||
diff_setup_done(&opts);
|
||||
|
||||
diff_tree_sha1(origin->tree->object.sha1,
|
||||
head->tree->object.sha1,
|
||||
diff_tree_sha1(origin->tree->object.oid.hash,
|
||||
head->tree->object.oid.hash,
|
||||
"", &opts);
|
||||
diffcore_std(&opts);
|
||||
diff_flush(&opts);
|
||||
|
@ -1443,7 +1443,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
/* Don't say anything if head and upstream are the same. */
|
||||
if (rev.pending.nr == 2) {
|
||||
struct object_array_entry *o = rev.pending.objects;
|
||||
if (hashcmp(o[0].item->sha1, o[1].item->sha1) == 0)
|
||||
if (oidcmp(&o[0].item->oid, &o[1].item->oid) == 0)
|
||||
return 0;
|
||||
}
|
||||
get_patch_ids(&rev, &ids);
|
||||
|
@ -1550,7 +1550,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||
string_list_append(rev.ref_message_ids,
|
||||
rev.message_id);
|
||||
}
|
||||
gen_message_id(&rev, sha1_to_hex(commit->object.sha1));
|
||||
gen_message_id(&rev, oid_to_hex(&commit->object.oid));
|
||||
}
|
||||
|
||||
if (!use_stdout &&
|
||||
|
@ -1612,12 +1612,12 @@ static void print_commit(char sign, struct commit *commit, int verbose,
|
|||
{
|
||||
if (!verbose) {
|
||||
printf("%c %s\n", sign,
|
||||
find_unique_abbrev(commit->object.sha1, abbrev));
|
||||
find_unique_abbrev(commit->object.oid.hash, abbrev));
|
||||
} else {
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
pp_commit_easy(CMIT_FMT_ONELINE, commit, &buf);
|
||||
printf("%c %s %s\n", sign,
|
||||
find_unique_abbrev(commit->object.sha1, abbrev),
|
||||
find_unique_abbrev(commit->object.oid.hash, abbrev),
|
||||
buf.buf);
|
||||
strbuf_release(&buf);
|
||||
}
|
||||
|
@ -1675,7 +1675,7 @@ int cmd_cherry(int argc, const char **argv, const char *prefix)
|
|||
/* Don't say anything if head and upstream are the same. */
|
||||
if (revs.pending.nr == 2) {
|
||||
struct object_array_entry *o = revs.pending.objects;
|
||||
if (hashcmp(o[0].item->sha1, o[1].item->sha1) == 0)
|
||||
if (oidcmp(&o[0].item->oid, &o[1].item->oid) == 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
|
|||
continue;
|
||||
if (!tail_match(pattern, ref->name))
|
||||
continue;
|
||||
printf("%s %s\n", sha1_to_hex(ref->old_sha1), ref->name);
|
||||
printf("%s %s\n", oid_to_hex(&ref->old_oid), ref->name);
|
||||
status = 0; /* we found something */
|
||||
}
|
||||
return status;
|
||||
|
|
|
@ -16,7 +16,7 @@ static int show_merge_base(struct commit **rev, int rev_nr, int show_all)
|
|||
return 1;
|
||||
|
||||
while (result) {
|
||||
printf("%s\n", sha1_to_hex(result->item->object.sha1));
|
||||
printf("%s\n", oid_to_hex(&result->item->object.oid));
|
||||
if (!show_all)
|
||||
return 0;
|
||||
result = result->next;
|
||||
|
@ -62,7 +62,7 @@ static int handle_independent(int count, const char **args)
|
|||
return 1;
|
||||
|
||||
while (result) {
|
||||
printf("%s\n", sha1_to_hex(result->item->object.sha1));
|
||||
printf("%s\n", oid_to_hex(&result->item->object.oid));
|
||||
result = result->next;
|
||||
}
|
||||
return 0;
|
||||
|
@ -83,7 +83,7 @@ static int handle_octopus(int count, const char **args, int show_all)
|
|||
return 1;
|
||||
|
||||
while (result) {
|
||||
printf("%s\n", sha1_to_hex(result->item->object.sha1));
|
||||
printf("%s\n", oid_to_hex(&result->item->object.oid));
|
||||
if (!show_all)
|
||||
return 0;
|
||||
result = result->next;
|
||||
|
@ -196,7 +196,7 @@ static int handle_fork_point(int argc, const char **argv)
|
|||
goto cleanup_return;
|
||||
}
|
||||
|
||||
printf("%s\n", sha1_to_hex(bases->item->object.sha1));
|
||||
printf("%s\n", oid_to_hex(&bases->item->object.oid));
|
||||
|
||||
cleanup_return:
|
||||
free_commit_list(bases);
|
||||
|
|
|
@ -60,7 +60,7 @@ static void *result(struct merge_list *entry, unsigned long *size)
|
|||
const char *path = entry->path;
|
||||
|
||||
if (!entry->stage)
|
||||
return read_sha1_file(entry->blob->object.sha1, &type, size);
|
||||
return read_sha1_file(entry->blob->object.oid.hash, &type, size);
|
||||
base = NULL;
|
||||
if (entry->stage == 1) {
|
||||
base = entry->blob;
|
||||
|
@ -82,7 +82,7 @@ static void *origin(struct merge_list *entry, unsigned long *size)
|
|||
enum object_type type;
|
||||
while (entry) {
|
||||
if (entry->stage == 2)
|
||||
return read_sha1_file(entry->blob->object.sha1, &type, size);
|
||||
return read_sha1_file(entry->blob->object.oid.hash, &type, size);
|
||||
entry = entry->link;
|
||||
}
|
||||
return NULL;
|
||||
|
@ -130,7 +130,7 @@ static void show_result_list(struct merge_list *entry)
|
|||
do {
|
||||
struct merge_list *link = entry->link;
|
||||
static const char *desc[4] = { "result", "base", "our", "their" };
|
||||
printf(" %-6s %o %s %s\n", desc[entry->stage], entry->mode, sha1_to_hex(entry->blob->object.sha1), entry->path);
|
||||
printf(" %-6s %o %s %s\n", desc[entry->stage], entry->mode, oid_to_hex(&entry->blob->object.oid), entry->path);
|
||||
entry = link;
|
||||
} while (entry);
|
||||
}
|
||||
|
|
|
@ -365,7 +365,7 @@ static void squash_message(struct commit *commit, struct commit_list *remotehead
|
|||
while ((commit = get_revision(&rev)) != NULL) {
|
||||
strbuf_addch(&out, '\n');
|
||||
strbuf_addf(&out, "commit %s\n",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
pretty_print_commit(&ctx, commit, &out);
|
||||
}
|
||||
if (write_in_full(fd, out.buf, out.len) != out.len)
|
||||
|
@ -380,7 +380,7 @@ static void finish(struct commit *head_commit,
|
|||
const unsigned char *new_head, const char *msg)
|
||||
{
|
||||
struct strbuf reflog_message = STRBUF_INIT;
|
||||
const unsigned char *head = head_commit->object.sha1;
|
||||
const unsigned char *head = head_commit->object.oid.hash;
|
||||
|
||||
if (!msg)
|
||||
strbuf_addstr(&reflog_message, getenv("GIT_REFLOG_ACTION"));
|
||||
|
@ -497,7 +497,7 @@ static void merge_name(const char *remote, struct strbuf *msg)
|
|||
if (ref_exists(truname.buf)) {
|
||||
strbuf_addf(msg,
|
||||
"%s\t\tbranch '%s'%s of .\n",
|
||||
sha1_to_hex(remote_head->object.sha1),
|
||||
sha1_to_hex(remote_head->object.oid.hash),
|
||||
truname.buf + 11,
|
||||
(early ? " (early part)" : ""));
|
||||
strbuf_release(&truname);
|
||||
|
@ -511,7 +511,7 @@ static void merge_name(const char *remote, struct strbuf *msg)
|
|||
desc = merge_remote_util(remote_head);
|
||||
if (desc && desc->obj && desc->obj->type == OBJ_TAG) {
|
||||
strbuf_addf(msg, "%s\t\t%s '%s'\n",
|
||||
sha1_to_hex(desc->obj->sha1),
|
||||
sha1_to_hex(desc->obj->oid.hash),
|
||||
typename(desc->obj->type),
|
||||
remote);
|
||||
goto cleanup;
|
||||
|
@ -519,7 +519,7 @@ static void merge_name(const char *remote, struct strbuf *msg)
|
|||
}
|
||||
|
||||
strbuf_addf(msg, "%s\t\tcommit '%s'\n",
|
||||
sha1_to_hex(remote_head->object.sha1), remote);
|
||||
sha1_to_hex(remote_head->object.oid.hash), remote);
|
||||
cleanup:
|
||||
strbuf_release(&buf);
|
||||
strbuf_release(&bname);
|
||||
|
@ -892,7 +892,7 @@ static struct commit *is_old_style_invocation(int argc, const char **argv,
|
|||
second_token = lookup_commit_reference_gently(second_sha1, 0);
|
||||
if (!second_token)
|
||||
die(_("'%s' is not a commit"), argv[1]);
|
||||
if (hashcmp(second_token->object.sha1, head))
|
||||
if (hashcmp(second_token->object.oid.hash, head))
|
||||
return NULL;
|
||||
}
|
||||
return second_token;
|
||||
|
@ -958,14 +958,14 @@ static void write_merge_state(struct commit_list *remoteheads)
|
|||
struct strbuf buf = STRBUF_INIT;
|
||||
|
||||
for (j = remoteheads; j; j = j->next) {
|
||||
unsigned const char *sha1;
|
||||
struct object_id *oid;
|
||||
struct commit *c = j->item;
|
||||
if (c->util && merge_remote_util(c)->obj) {
|
||||
sha1 = merge_remote_util(c)->obj->sha1;
|
||||
oid = &merge_remote_util(c)->obj->oid;
|
||||
} else {
|
||||
sha1 = c->object.sha1;
|
||||
oid = &c->object.oid;
|
||||
}
|
||||
strbuf_addf(&buf, "%s\n", sha1_to_hex(sha1));
|
||||
strbuf_addf(&buf, "%s\n", oid_to_hex(oid));
|
||||
}
|
||||
filename = git_path_merge_head();
|
||||
fd = open(filename, O_WRONLY | O_CREAT, 0666);
|
||||
|
@ -1274,8 +1274,8 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
die(_("%s - not something we can merge"), argv[0]);
|
||||
if (remoteheads->next)
|
||||
die(_("Can merge only exactly one commit into empty head"));
|
||||
read_empty(remote_head->object.sha1, 0);
|
||||
update_ref("initial pull", "HEAD", remote_head->object.sha1,
|
||||
read_empty(remote_head->object.oid.hash, 0);
|
||||
update_ref("initial pull", "HEAD", remote_head->object.oid.hash,
|
||||
NULL, 0, UPDATE_REFS_DIE_ON_ERR);
|
||||
goto done;
|
||||
}
|
||||
|
@ -1289,7 +1289,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
* additional safety measure to check for it.
|
||||
*/
|
||||
if (!have_message &&
|
||||
is_old_style_invocation(argc, argv, head_commit->object.sha1)) {
|
||||
is_old_style_invocation(argc, argv, head_commit->object.oid.hash)) {
|
||||
warning("old-style 'git merge <msg> HEAD <commit>' is deprecated.");
|
||||
strbuf_addstr(&merge_msg, argv[0]);
|
||||
head_arg = argv[1];
|
||||
|
@ -1323,7 +1323,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
|
||||
check_commit_signature(commit, &signature_check);
|
||||
|
||||
find_unique_abbrev_r(hex, commit->object.sha1, DEFAULT_ABBREV);
|
||||
find_unique_abbrev_r(hex, commit->object.oid.hash, DEFAULT_ABBREV);
|
||||
switch (signature_check.result) {
|
||||
case 'G':
|
||||
break;
|
||||
|
@ -1353,7 +1353,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
for (p = remoteheads; p; p = p->next) {
|
||||
struct commit *commit = p->item;
|
||||
strbuf_addf(&buf, "GITHEAD_%s",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
sha1_to_hex(commit->object.oid.hash));
|
||||
setenv(buf.buf, merge_remote_util(commit)->name, 1);
|
||||
strbuf_reset(&buf);
|
||||
if (fast_forward != FF_ONLY &&
|
||||
|
@ -1393,7 +1393,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
free(list);
|
||||
}
|
||||
|
||||
update_ref("updating ORIG_HEAD", "ORIG_HEAD", head_commit->object.sha1,
|
||||
update_ref("updating ORIG_HEAD", "ORIG_HEAD", head_commit->object.oid.hash,
|
||||
NULL, 0, UPDATE_REFS_DIE_ON_ERR);
|
||||
|
||||
if (remoteheads && !common)
|
||||
|
@ -1409,16 +1409,16 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
goto done;
|
||||
} else if (fast_forward != FF_NO && !remoteheads->next &&
|
||||
!common->next &&
|
||||
!hashcmp(common->item->object.sha1, head_commit->object.sha1)) {
|
||||
!hashcmp(common->item->object.oid.hash, head_commit->object.oid.hash)) {
|
||||
/* Again the most common case of merging one remote. */
|
||||
struct strbuf msg = STRBUF_INIT;
|
||||
struct commit *commit;
|
||||
|
||||
if (verbosity >= 0) {
|
||||
char from[GIT_SHA1_HEXSZ + 1], to[GIT_SHA1_HEXSZ + 1];
|
||||
find_unique_abbrev_r(from, head_commit->object.sha1,
|
||||
find_unique_abbrev_r(from, head_commit->object.oid.hash,
|
||||
DEFAULT_ABBREV);
|
||||
find_unique_abbrev_r(to, remoteheads->item->object.sha1,
|
||||
find_unique_abbrev_r(to, remoteheads->item->object.oid.hash,
|
||||
DEFAULT_ABBREV);
|
||||
printf(_("Updating %s..%s\n"), from, to);
|
||||
}
|
||||
|
@ -1432,14 +1432,14 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
goto done;
|
||||
}
|
||||
|
||||
if (checkout_fast_forward(head_commit->object.sha1,
|
||||
commit->object.sha1,
|
||||
if (checkout_fast_forward(head_commit->object.oid.hash,
|
||||
commit->object.oid.hash,
|
||||
overwrite_ignore)) {
|
||||
ret = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
finish(head_commit, remoteheads, commit->object.sha1, msg.buf);
|
||||
finish(head_commit, remoteheads, commit->object.oid.hash, msg.buf);
|
||||
drop_save();
|
||||
goto done;
|
||||
} else if (!remoteheads->next && common->next)
|
||||
|
@ -1458,9 +1458,9 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
/* See if it is really trivial. */
|
||||
git_committer_info(IDENT_STRICT);
|
||||
printf(_("Trying really trivial in-index merge...\n"));
|
||||
if (!read_tree_trivial(common->item->object.sha1,
|
||||
head_commit->object.sha1,
|
||||
remoteheads->item->object.sha1)) {
|
||||
if (!read_tree_trivial(common->item->object.oid.hash,
|
||||
head_commit->object.oid.hash,
|
||||
remoteheads->item->object.oid.hash)) {
|
||||
ret = merge_trivial(head_commit, remoteheads);
|
||||
goto done;
|
||||
}
|
||||
|
@ -1483,8 +1483,8 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
* HEAD^^" would be missed.
|
||||
*/
|
||||
common_one = get_merge_bases(head_commit, j->item);
|
||||
if (hashcmp(common_one->item->object.sha1,
|
||||
j->item->object.sha1)) {
|
||||
if (hashcmp(common_one->item->object.oid.hash,
|
||||
j->item->object.oid.hash)) {
|
||||
up_to_date = 0;
|
||||
break;
|
||||
}
|
||||
|
@ -1520,7 +1520,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
int ret;
|
||||
if (i) {
|
||||
printf(_("Rewinding the tree to pristine...\n"));
|
||||
restore_state(head_commit->object.sha1, stash);
|
||||
restore_state(head_commit->object.oid.hash, stash);
|
||||
}
|
||||
if (use_strategies_nr != 1)
|
||||
printf(_("Trying merge strategy %s...\n"),
|
||||
|
@ -1586,7 +1586,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
* it up.
|
||||
*/
|
||||
if (!best_strategy) {
|
||||
restore_state(head_commit->object.sha1, stash);
|
||||
restore_state(head_commit->object.oid.hash, stash);
|
||||
if (use_strategies_nr > 1)
|
||||
fprintf(stderr,
|
||||
_("No merge strategy handled the merge.\n"));
|
||||
|
@ -1599,7 +1599,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||
; /* We already have its result in the working tree. */
|
||||
else {
|
||||
printf(_("Rewinding the tree to pristine...\n"));
|
||||
restore_state(head_commit->object.sha1, stash);
|
||||
restore_state(head_commit->object.oid.hash, stash);
|
||||
printf(_("Using the %s to prepare resolving by hand.\n"),
|
||||
best_strategy);
|
||||
try_merge_strategy(best_strategy, common, remoteheads,
|
||||
|
|
|
@ -162,7 +162,7 @@ static int name_ref(const char *path, const struct object_id *oid, int flags, vo
|
|||
struct tag *t = (struct tag *) o;
|
||||
if (!t->tagged)
|
||||
break; /* broken repository */
|
||||
o = parse_object(t->tagged->sha1);
|
||||
o = parse_object(t->tagged->oid.hash);
|
||||
deref = 1;
|
||||
}
|
||||
if (o && o->type == OBJ_COMMIT) {
|
||||
|
@ -193,7 +193,7 @@ static const char *get_exact_ref_match(const struct object *o)
|
|||
tip_table.sorted = 1;
|
||||
}
|
||||
|
||||
found = sha1_pos(o->sha1, tip_table.table, tip_table.nr,
|
||||
found = sha1_pos(o->oid.hash, tip_table.table, tip_table.nr,
|
||||
nth_tip_table_ent);
|
||||
if (0 <= found)
|
||||
return tip_table.table[found].refname;
|
||||
|
@ -232,19 +232,19 @@ static void show_name(const struct object *obj,
|
|||
int always, int allow_undefined, int name_only)
|
||||
{
|
||||
const char *name;
|
||||
const unsigned char *sha1 = obj->sha1;
|
||||
const struct object_id *oid = &obj->oid;
|
||||
|
||||
if (!name_only)
|
||||
printf("%s ", caller_name ? caller_name : sha1_to_hex(sha1));
|
||||
printf("%s ", caller_name ? caller_name : oid_to_hex(oid));
|
||||
name = get_rev_name(obj);
|
||||
if (name)
|
||||
printf("%s\n", name);
|
||||
else if (allow_undefined)
|
||||
printf("undefined\n");
|
||||
else if (always)
|
||||
printf("%s\n", find_unique_abbrev(sha1, DEFAULT_ABBREV));
|
||||
printf("%s\n", find_unique_abbrev(oid->hash, DEFAULT_ABBREV));
|
||||
else
|
||||
die("cannot describe '%s'", sha1_to_hex(sha1));
|
||||
die("cannot describe '%s'", oid_to_hex(oid));
|
||||
}
|
||||
|
||||
static char const * const name_rev_usage[] = {
|
||||
|
|
|
@ -707,7 +707,7 @@ static int merge_commit(struct notes_merge_options *o)
|
|||
die("Could not parse commit from NOTES_MERGE_PARTIAL.");
|
||||
|
||||
if (partial->parents)
|
||||
hashcpy(parent_sha1, partial->parents->item->object.sha1);
|
||||
hashcpy(parent_sha1, partial->parents->item->object.oid.hash);
|
||||
else
|
||||
hashclr(parent_sha1);
|
||||
|
||||
|
|
|
@ -2277,7 +2277,7 @@ static void read_object_list_from_stdin(void)
|
|||
|
||||
static void show_commit(struct commit *commit, void *data)
|
||||
{
|
||||
add_object_entry(commit->object.sha1, OBJ_COMMIT, NULL, 0);
|
||||
add_object_entry(commit->object.oid.hash, OBJ_COMMIT, NULL, 0);
|
||||
commit->object.flags |= OBJECT_ADDED;
|
||||
|
||||
if (write_bitmap_index)
|
||||
|
@ -2291,7 +2291,7 @@ static void show_object(struct object *obj,
|
|||
char *name = path_name(path, last);
|
||||
|
||||
add_preferred_base_object(name);
|
||||
add_object_entry(obj->sha1, obj->type, name, 0);
|
||||
add_object_entry(obj->oid.hash, obj->type, name, 0);
|
||||
obj->flags |= OBJECT_ADDED;
|
||||
|
||||
/*
|
||||
|
@ -2303,7 +2303,7 @@ static void show_object(struct object *obj,
|
|||
|
||||
static void show_edge(struct commit *commit)
|
||||
{
|
||||
add_preferred_base(commit->object.sha1);
|
||||
add_preferred_base(commit->object.oid.hash);
|
||||
}
|
||||
|
||||
struct in_pack_object {
|
||||
|
@ -2319,7 +2319,7 @@ struct in_pack {
|
|||
|
||||
static void mark_in_pack_object(struct object *object, struct packed_git *p, struct in_pack *in_pack)
|
||||
{
|
||||
in_pack->array[in_pack->nr].offset = find_pack_entry_one(object->sha1, p);
|
||||
in_pack->array[in_pack->nr].offset = find_pack_entry_one(object->oid.hash, p);
|
||||
in_pack->array[in_pack->nr].object = object;
|
||||
in_pack->nr++;
|
||||
}
|
||||
|
@ -2338,7 +2338,7 @@ static int ofscmp(const void *a_, const void *b_)
|
|||
else if (a->offset > b->offset)
|
||||
return 1;
|
||||
else
|
||||
return hashcmp(a->object->sha1, b->object->sha1);
|
||||
return oidcmp(&a->object->oid, &b->object->oid);
|
||||
}
|
||||
|
||||
static void add_objects_in_unpacked_packs(struct rev_info *revs)
|
||||
|
@ -2376,7 +2376,7 @@ static void add_objects_in_unpacked_packs(struct rev_info *revs)
|
|||
ofscmp);
|
||||
for (i = 0; i < in_pack.nr; i++) {
|
||||
struct object *o = in_pack.array[i].object;
|
||||
add_object_entry(o->sha1, o->type, "", 0);
|
||||
add_object_entry(o->oid.hash, o->type, "", 0);
|
||||
}
|
||||
}
|
||||
free(in_pack.array);
|
||||
|
@ -2484,12 +2484,12 @@ static void record_recent_object(struct object *obj,
|
|||
const char *last,
|
||||
void *data)
|
||||
{
|
||||
sha1_array_append(&recent_objects, obj->sha1);
|
||||
sha1_array_append(&recent_objects, obj->oid.hash);
|
||||
}
|
||||
|
||||
static void record_recent_commit(struct commit *commit, void *data)
|
||||
{
|
||||
sha1_array_append(&recent_objects, commit->object.sha1);
|
||||
sha1_array_append(&recent_objects, commit->object.oid.hash);
|
||||
}
|
||||
|
||||
static void get_object_list(int ac, const char **av)
|
||||
|
|
|
@ -743,7 +743,7 @@ static int get_octopus_merge_base(unsigned char *merge_base,
|
|||
if (!result)
|
||||
return 1;
|
||||
|
||||
hashcpy(merge_base, result->item->object.sha1);
|
||||
hashcpy(merge_base, result->item->object.oid.hash);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -246,7 +246,7 @@ static void show_one_alternate_sha1(const unsigned char sha1[20], void *unused)
|
|||
static void collect_one_alternate_ref(const struct ref *ref, void *data)
|
||||
{
|
||||
struct sha1_array *sa = data;
|
||||
sha1_array_append(sa, ref->old_sha1);
|
||||
sha1_array_append(sa, ref->old_oid.hash);
|
||||
}
|
||||
|
||||
static void write_head_info(void)
|
||||
|
|
|
@ -126,7 +126,7 @@ static int commit_is_complete(struct commit *commit)
|
|||
struct commit_list *parent;
|
||||
|
||||
c = (struct commit *)study.objects[--study.nr].item;
|
||||
if (!c->object.parsed && !parse_object(c->object.sha1))
|
||||
if (!c->object.parsed && !parse_object(c->object.oid.hash))
|
||||
c->object.flags |= INCOMPLETE;
|
||||
|
||||
if (c->object.flags & INCOMPLETE) {
|
||||
|
@ -152,7 +152,7 @@ static int commit_is_complete(struct commit *commit)
|
|||
for (i = 0; i < found.nr; i++) {
|
||||
struct commit *c =
|
||||
(struct commit *)found.objects[i].item;
|
||||
if (!tree_is_complete(c->tree->object.sha1)) {
|
||||
if (!tree_is_complete(c->tree->object.oid.hash)) {
|
||||
is_incomplete = 1;
|
||||
c->object.flags |= INCOMPLETE;
|
||||
}
|
||||
|
|
|
@ -401,7 +401,7 @@ static int get_push_ref_states(const struct ref *remote_refs,
|
|||
|
||||
if (!ref->peer_ref)
|
||||
continue;
|
||||
hashcpy(ref->new_sha1, ref->peer_ref->new_sha1);
|
||||
oidcpy(&ref->new_oid, &ref->peer_ref->new_oid);
|
||||
|
||||
item = string_list_append(&states->push,
|
||||
abbrev_branch(ref->peer_ref->name));
|
||||
|
@ -410,14 +410,14 @@ static int get_push_ref_states(const struct ref *remote_refs,
|
|||
info->forced = ref->force;
|
||||
info->dest = xstrdup(abbrev_branch(ref->name));
|
||||
|
||||
if (is_null_sha1(ref->new_sha1)) {
|
||||
if (is_null_oid(&ref->new_oid)) {
|
||||
info->status = PUSH_STATUS_DELETE;
|
||||
} else if (!hashcmp(ref->old_sha1, ref->new_sha1))
|
||||
} else if (!oidcmp(&ref->old_oid, &ref->new_oid))
|
||||
info->status = PUSH_STATUS_UPTODATE;
|
||||
else if (is_null_sha1(ref->old_sha1))
|
||||
else if (is_null_oid(&ref->old_oid))
|
||||
info->status = PUSH_STATUS_CREATE;
|
||||
else if (has_sha1_file(ref->old_sha1) &&
|
||||
ref_newer(ref->new_sha1, ref->old_sha1))
|
||||
else if (has_object_file(&ref->old_oid) &&
|
||||
ref_newer(&ref->new_oid, &ref->old_oid))
|
||||
info->status = PUSH_STATUS_FASTFORWARD;
|
||||
else
|
||||
info->status = PUSH_STATUS_OUTOFDATE;
|
||||
|
|
|
@ -358,10 +358,10 @@ static void check_one_mergetag(struct commit *commit,
|
|||
|
||||
/* iterate over new parents */
|
||||
for (i = 1; i < mergetag_data->argc; i++) {
|
||||
unsigned char sha1[20];
|
||||
if (get_sha1(mergetag_data->argv[i], sha1) < 0)
|
||||
struct object_id oid;
|
||||
if (get_sha1(mergetag_data->argv[i], oid.hash) < 0)
|
||||
die(_("Not a valid object name: '%s'"), mergetag_data->argv[i]);
|
||||
if (!hashcmp(tag->tagged->sha1, sha1))
|
||||
if (!oidcmp(&tag->tagged->oid, &oid))
|
||||
return; /* found */
|
||||
}
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ static void print_new_head_line(struct commit *commit)
|
|||
const char *hex, *body;
|
||||
const char *msg;
|
||||
|
||||
hex = find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV);
|
||||
hex = find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV);
|
||||
printf(_("HEAD is now at %s"), hex);
|
||||
msg = logmsg_reencode(commit, NULL, get_log_output_encoding());
|
||||
body = strstr(msg, "\n\n");
|
||||
|
@ -269,7 +269,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
|
|||
int reset_type = NONE, update_ref_status = 0, quiet = 0;
|
||||
int patch_mode = 0, unborn;
|
||||
const char *rev;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
struct pathspec pathspec;
|
||||
int intent_to_add = 0;
|
||||
const struct option options[] = {
|
||||
|
@ -295,26 +295,26 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
|
|||
PARSE_OPT_KEEP_DASHDASH);
|
||||
parse_args(&pathspec, argv, prefix, patch_mode, &rev);
|
||||
|
||||
unborn = !strcmp(rev, "HEAD") && get_sha1("HEAD", sha1);
|
||||
unborn = !strcmp(rev, "HEAD") && get_sha1("HEAD", oid.hash);
|
||||
if (unborn) {
|
||||
/* reset on unborn branch: treat as reset to empty tree */
|
||||
hashcpy(sha1, EMPTY_TREE_SHA1_BIN);
|
||||
hashcpy(oid.hash, EMPTY_TREE_SHA1_BIN);
|
||||
} else if (!pathspec.nr) {
|
||||
struct commit *commit;
|
||||
if (get_sha1_committish(rev, sha1))
|
||||
if (get_sha1_committish(rev, oid.hash))
|
||||
die(_("Failed to resolve '%s' as a valid revision."), rev);
|
||||
commit = lookup_commit_reference(sha1);
|
||||
commit = lookup_commit_reference(oid.hash);
|
||||
if (!commit)
|
||||
die(_("Could not parse object '%s'."), rev);
|
||||
hashcpy(sha1, commit->object.sha1);
|
||||
oidcpy(&oid, &commit->object.oid);
|
||||
} else {
|
||||
struct tree *tree;
|
||||
if (get_sha1_treeish(rev, sha1))
|
||||
if (get_sha1_treeish(rev, oid.hash))
|
||||
die(_("Failed to resolve '%s' as a valid tree."), rev);
|
||||
tree = parse_tree_indirect(sha1);
|
||||
tree = parse_tree_indirect(oid.hash);
|
||||
if (!tree)
|
||||
die(_("Could not parse object '%s'."), rev);
|
||||
hashcpy(sha1, tree->object.sha1);
|
||||
oidcpy(&oid, &tree->object.oid);
|
||||
}
|
||||
|
||||
if (patch_mode) {
|
||||
|
@ -357,15 +357,15 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
|
|||
hold_locked_index(lock, 1);
|
||||
if (reset_type == MIXED) {
|
||||
int flags = quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN;
|
||||
if (read_from_tree(&pathspec, sha1, intent_to_add))
|
||||
if (read_from_tree(&pathspec, oid.hash, intent_to_add))
|
||||
return 1;
|
||||
if (get_git_work_tree())
|
||||
refresh_index(&the_index, flags, NULL, NULL,
|
||||
_("Unstaged changes after reset:"));
|
||||
} else {
|
||||
int err = reset_index(sha1, reset_type, quiet);
|
||||
int err = reset_index(oid.hash, reset_type, quiet);
|
||||
if (reset_type == KEEP && !err)
|
||||
err = reset_index(sha1, MIXED, quiet);
|
||||
err = reset_index(oid.hash, MIXED, quiet);
|
||||
if (err)
|
||||
die(_("Could not reset index file to revision '%s'."), rev);
|
||||
}
|
||||
|
@ -377,10 +377,10 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
|
|||
if (!pathspec.nr && !unborn) {
|
||||
/* Any resets without paths update HEAD to the head being
|
||||
* switched to, saving the previous head in ORIG_HEAD before. */
|
||||
update_ref_status = reset_refs(rev, sha1);
|
||||
update_ref_status = reset_refs(rev, oid.hash);
|
||||
|
||||
if (reset_type == HARD && !update_ref_status && !quiet)
|
||||
print_new_head_line(lookup_commit_reference(sha1));
|
||||
print_new_head_line(lookup_commit_reference(oid.hash));
|
||||
}
|
||||
if (!pathspec.nr)
|
||||
remove_branch_state();
|
||||
|
|
|
@ -81,14 +81,14 @@ static void show_commit(struct commit *commit, void *data)
|
|||
if (!revs->graph)
|
||||
fputs(get_revision_mark(revs, commit), stdout);
|
||||
if (revs->abbrev_commit && revs->abbrev)
|
||||
fputs(find_unique_abbrev(commit->object.sha1, revs->abbrev),
|
||||
fputs(find_unique_abbrev(commit->object.oid.hash, revs->abbrev),
|
||||
stdout);
|
||||
else
|
||||
fputs(sha1_to_hex(commit->object.sha1), stdout);
|
||||
fputs(oid_to_hex(&commit->object.oid), stdout);
|
||||
if (revs->print_parents) {
|
||||
struct commit_list *parents = commit->parents;
|
||||
while (parents) {
|
||||
printf(" %s", sha1_to_hex(parents->item->object.sha1));
|
||||
printf(" %s", oid_to_hex(&parents->item->object.oid));
|
||||
parents = parents->next;
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ static void show_commit(struct commit *commit, void *data)
|
|||
|
||||
children = lookup_decoration(&revs->children, &commit->object);
|
||||
while (children) {
|
||||
printf(" %s", sha1_to_hex(children->item->object.sha1));
|
||||
printf(" %s", oid_to_hex(&children->item->object.oid));
|
||||
children = children->next;
|
||||
}
|
||||
}
|
||||
|
@ -182,10 +182,10 @@ static void finish_object(struct object *obj,
|
|||
void *cb_data)
|
||||
{
|
||||
struct rev_list_info *info = cb_data;
|
||||
if (obj->type == OBJ_BLOB && !has_sha1_file(obj->sha1))
|
||||
die("missing blob object '%s'", sha1_to_hex(obj->sha1));
|
||||
if (obj->type == OBJ_BLOB && !has_object_file(&obj->oid))
|
||||
die("missing blob object '%s'", oid_to_hex(&obj->oid));
|
||||
if (info->revs->verify_objects && !obj->parsed && obj->type != OBJ_COMMIT)
|
||||
parse_object(obj->sha1);
|
||||
parse_object(obj->oid.hash);
|
||||
}
|
||||
|
||||
static void show_object(struct object *obj,
|
||||
|
@ -201,7 +201,7 @@ static void show_object(struct object *obj,
|
|||
|
||||
static void show_edge(struct commit *commit)
|
||||
{
|
||||
printf("-%s\n", sha1_to_hex(commit->object.sha1));
|
||||
printf("-%s\n", oid_to_hex(&commit->object.oid));
|
||||
}
|
||||
|
||||
static void print_var_str(const char *var, const char *val)
|
||||
|
@ -242,7 +242,7 @@ static int show_bisect_vars(struct rev_list_info *info, int reaches, int all)
|
|||
cnt = reaches;
|
||||
|
||||
if (revs->commits)
|
||||
sha1_to_hex_r(hex, revs->commits->item->object.sha1);
|
||||
sha1_to_hex_r(hex, revs->commits->item->object.oid.hash);
|
||||
|
||||
if (flags & BISECT_SHOW_ALL) {
|
||||
traverse_commit_list(revs, show_commit, show_object, info);
|
||||
|
|
|
@ -282,7 +282,7 @@ static int try_difference(const char *arg)
|
|||
exclude = get_merge_bases(a, b);
|
||||
while (exclude) {
|
||||
struct commit *commit = pop_commit(&exclude);
|
||||
show_rev(REVERSED, commit->object.sha1, NULL);
|
||||
show_rev(REVERSED, commit->object.oid.hash, NULL);
|
||||
}
|
||||
}
|
||||
*dotdot = '.';
|
||||
|
@ -319,7 +319,7 @@ static int try_parent_shorthands(const char *arg)
|
|||
commit = lookup_commit_reference(sha1);
|
||||
for (parents = commit->parents; parents; parents = parents->next)
|
||||
show_rev(parents_only ? NORMAL : REVERSED,
|
||||
parents->item->object.sha1, arg);
|
||||
parents->item->object.oid.hash, arg);
|
||||
|
||||
*dotdot = '^';
|
||||
return 1;
|
||||
|
|
|
@ -129,7 +129,7 @@ void shortlog_add_commit(struct shortlog *log, struct commit *commit)
|
|||
}
|
||||
if (!author) {
|
||||
warning(_("Missing author: %s"),
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
return;
|
||||
}
|
||||
if (log->user_format) {
|
||||
|
|
|
@ -291,7 +291,7 @@ static void show_one_commit(struct commit *commit, int no_name)
|
|||
}
|
||||
else
|
||||
printf("[%s] ",
|
||||
find_unique_abbrev(commit->object.sha1,
|
||||
find_unique_abbrev(commit->object.oid.hash,
|
||||
DEFAULT_ABBREV));
|
||||
}
|
||||
puts(pretty_str);
|
||||
|
@ -496,7 +496,7 @@ static int show_merge_base(struct commit_list *seen, int num_rev)
|
|||
int flags = commit->object.flags & all_mask;
|
||||
if (!(flags & UNINTERESTING) &&
|
||||
((flags & all_revs) == all_revs)) {
|
||||
puts(sha1_to_hex(commit->object.sha1));
|
||||
puts(oid_to_hex(&commit->object.oid));
|
||||
exit_status = 0;
|
||||
commit->object.flags |= UNINTERESTING;
|
||||
}
|
||||
|
@ -516,7 +516,7 @@ static int show_independent(struct commit **rev,
|
|||
unsigned int flag = rev_mask[i];
|
||||
|
||||
if (commit->object.flags == flag)
|
||||
puts(sha1_to_hex(commit->object.sha1));
|
||||
puts(oid_to_hex(&commit->object.oid));
|
||||
commit->object.flags |= UNINTERESTING;
|
||||
}
|
||||
return 0;
|
||||
|
@ -867,7 +867,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
|
|||
head_len,
|
||||
ref_name[i],
|
||||
head_oid.hash,
|
||||
rev[i]->object.sha1);
|
||||
rev[i]->object.oid.hash);
|
||||
if (extra < 0)
|
||||
printf("%c [%s] ",
|
||||
is_head ? '*' : ' ', ref_name[i]);
|
||||
|
|
|
@ -46,7 +46,7 @@ static void add_object_buffer(struct object *object, char *buffer, unsigned long
|
|||
obj->buffer = buffer;
|
||||
obj->size = size;
|
||||
if (add_decoration(&obj_decorate, object, obj))
|
||||
die("object %s tried to add buffer twice!", sha1_to_hex(object->sha1));
|
||||
die("object %s tried to add buffer twice!", oid_to_hex(&object->oid));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -170,7 +170,7 @@ static void write_cached_object(struct object *obj, struct obj_buffer *obj_buf)
|
|||
unsigned char sha1[20];
|
||||
|
||||
if (write_sha1_file(obj_buf->buffer, obj_buf->size, typename(obj->type), sha1) < 0)
|
||||
die("failed to write object %s", sha1_to_hex(obj->sha1));
|
||||
die("failed to write object %s", oid_to_hex(&obj->oid));
|
||||
obj->flags |= FLAG_WRITTEN;
|
||||
}
|
||||
|
||||
|
@ -194,7 +194,7 @@ static int check_object(struct object *obj, int type, void *data, struct fsck_op
|
|||
|
||||
if (!(obj->flags & FLAG_OPEN)) {
|
||||
unsigned long size;
|
||||
int type = sha1_object_info(obj->sha1, &size);
|
||||
int type = sha1_object_info(obj->oid.hash, &size);
|
||||
if (type != obj->type || type <= 0)
|
||||
die("object of unexpected type");
|
||||
obj->flags |= FLAG_WRITTEN;
|
||||
|
@ -203,12 +203,12 @@ static int check_object(struct object *obj, int type, void *data, struct fsck_op
|
|||
|
||||
obj_buf = lookup_object_buffer(obj);
|
||||
if (!obj_buf)
|
||||
die("Whoops! Cannot find object '%s'", sha1_to_hex(obj->sha1));
|
||||
die("Whoops! Cannot find object '%s'", oid_to_hex(&obj->oid));
|
||||
if (fsck_object(obj, obj_buf->buffer, obj_buf->size, &fsck_options))
|
||||
die("Error in object");
|
||||
fsck_options.walk = check_object;
|
||||
if (fsck_walk(obj, NULL, &fsck_options))
|
||||
die("Error on reachable objects of %s", sha1_to_hex(obj->sha1));
|
||||
die("Error on reachable objects of %s", oid_to_hex(&obj->oid));
|
||||
write_cached_object(obj, obj_buf);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -277,7 +277,7 @@ static int add_worktree(const char *path, const char *refname,
|
|||
|
||||
if (commit)
|
||||
argv_array_pushl(&cp.args, "update-ref", "HEAD",
|
||||
sha1_to_hex(commit->object.sha1), NULL);
|
||||
oid_to_hex(&commit->object.oid), NULL);
|
||||
else
|
||||
argv_array_pushl(&cp.args, "symbolic-ref", "HEAD",
|
||||
symref.buf, NULL);
|
||||
|
|
20
bundle.c
20
bundle.c
|
@ -171,7 +171,7 @@ int verify_bundle(struct bundle_header *header, int verbose)
|
|||
if (!(refs.objects[i].item->flags & SHOWN)) {
|
||||
if (++ret == 1)
|
||||
error("%s", message);
|
||||
error("%s %s", sha1_to_hex(refs.objects[i].item->sha1),
|
||||
error("%s %s", oid_to_hex(&refs.objects[i].item->oid),
|
||||
refs.objects[i].name);
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs)
|
|||
if (revs->max_age == -1 && revs->min_age == -1)
|
||||
goto out;
|
||||
|
||||
buf = read_sha1_file(tag->sha1, &type, &size);
|
||||
buf = read_sha1_file(tag->oid.hash, &type, &size);
|
||||
if (!buf)
|
||||
goto out;
|
||||
line = memmem(buf, size, "\ntagger ", 8);
|
||||
|
@ -256,7 +256,7 @@ static int write_pack_data(int bundle_fd, struct rev_info *revs)
|
|||
struct object *object = revs->pending.objects[i].item;
|
||||
if (object->flags & UNINTERESTING)
|
||||
write_or_die(pack_objects.in, "^", 1);
|
||||
write_or_die(pack_objects.in, sha1_to_hex(object->sha1), 40);
|
||||
write_or_die(pack_objects.in, oid_to_hex(&object->oid), GIT_SHA1_HEXSZ);
|
||||
write_or_die(pack_objects.in, "\n", 1);
|
||||
}
|
||||
close(pack_objects.in);
|
||||
|
@ -321,16 +321,16 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
|
|||
|
||||
for (i = 0; i < revs->pending.nr; i++) {
|
||||
struct object_array_entry *e = revs->pending.objects + i;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
char *ref;
|
||||
const char *display_ref;
|
||||
int flag;
|
||||
|
||||
if (e->item->flags & UNINTERESTING)
|
||||
continue;
|
||||
if (dwim_ref(e->name, strlen(e->name), sha1, &ref) != 1)
|
||||
if (dwim_ref(e->name, strlen(e->name), oid.hash, &ref) != 1)
|
||||
goto skip_write_ref;
|
||||
if (read_ref_full(e->name, RESOLVE_REF_READING, sha1, &flag))
|
||||
if (read_ref_full(e->name, RESOLVE_REF_READING, oid.hash, &flag))
|
||||
flag = 0;
|
||||
display_ref = (flag & REF_ISSYMREF) ? e->name : ref;
|
||||
|
||||
|
@ -360,13 +360,13 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
|
|||
* commit that is referenced by the tag, and not the tag
|
||||
* itself.
|
||||
*/
|
||||
if (hashcmp(sha1, e->item->sha1)) {
|
||||
if (oidcmp(&oid, &e->item->oid)) {
|
||||
/*
|
||||
* Is this the positive end of a range expressed
|
||||
* in terms of a tag (e.g. v2.0 from the range
|
||||
* "v1.0..v2.0")?
|
||||
*/
|
||||
struct commit *one = lookup_commit_reference(sha1);
|
||||
struct commit *one = lookup_commit_reference(oid.hash);
|
||||
struct object *obj;
|
||||
|
||||
if (e->item == &(one->object)) {
|
||||
|
@ -378,7 +378,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
|
|||
* end up triggering "empty bundle"
|
||||
* error.
|
||||
*/
|
||||
obj = parse_object_or_die(sha1, e->name);
|
||||
obj = parse_object_or_die(oid.hash, e->name);
|
||||
obj->flags |= SHOWN;
|
||||
add_pending_object(revs, obj, e->name);
|
||||
}
|
||||
|
@ -386,7 +386,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
|
|||
}
|
||||
|
||||
ref_count++;
|
||||
write_or_die(bundle_fd, sha1_to_hex(e->item->sha1), 40);
|
||||
write_or_die(bundle_fd, oid_to_hex(&e->item->oid), 40);
|
||||
write_or_die(bundle_fd, " ", 1);
|
||||
write_or_die(bundle_fd, display_ref, strlen(display_ref));
|
||||
write_or_die(bundle_fd, "\n", 1);
|
||||
|
|
|
@ -657,7 +657,7 @@ static void prime_cache_tree_rec(struct cache_tree *it, struct tree *tree)
|
|||
struct name_entry entry;
|
||||
int cnt;
|
||||
|
||||
hashcpy(it->sha1, tree->object.sha1);
|
||||
hashcpy(it->sha1, tree->object.oid.hash);
|
||||
init_tree_desc(&desc, tree->buffer, tree->size);
|
||||
cnt = 0;
|
||||
while (tree_entry(&desc, &entry)) {
|
||||
|
|
3
cache.h
3
cache.h
|
@ -1048,6 +1048,9 @@ static inline int has_sha1_file(const unsigned char *sha1)
|
|||
return has_sha1_file_with_flags(sha1, 0);
|
||||
}
|
||||
|
||||
/* Same as the above, except for struct object_id. */
|
||||
extern int has_object_file(const struct object_id *oid);
|
||||
|
||||
/*
|
||||
* Return true iff an alternate object database has a loose object
|
||||
* with the specified name. This function does not respect replace
|
||||
|
|
|
@ -1540,9 +1540,9 @@ void diff_tree_combined_merge(const struct commit *commit, int dense,
|
|||
struct sha1_array parents = SHA1_ARRAY_INIT;
|
||||
|
||||
while (parent) {
|
||||
sha1_array_append(&parents, parent->item->object.sha1);
|
||||
sha1_array_append(&parents, parent->item->object.oid.hash);
|
||||
parent = parent->next;
|
||||
}
|
||||
diff_tree_combined(commit->object.sha1, &parents, dense, rev);
|
||||
diff_tree_combined(commit->object.oid.hash, &parents, dense, rev);
|
||||
sha1_array_clear(&parents);
|
||||
}
|
||||
|
|
32
commit.c
32
commit.c
|
@ -38,7 +38,7 @@ struct commit *lookup_commit_or_die(const unsigned char *sha1, const char *ref_n
|
|||
struct commit *c = lookup_commit_reference(sha1);
|
||||
if (!c)
|
||||
die(_("could not parse %s"), ref_name);
|
||||
if (hashcmp(sha1, c->object.sha1)) {
|
||||
if (hashcmp(sha1, c->object.oid.hash)) {
|
||||
warning(_("%s %s is not a commit!"),
|
||||
ref_name, sha1_to_hex(sha1));
|
||||
}
|
||||
|
@ -262,13 +262,13 @@ const void *get_commit_buffer(const struct commit *commit, unsigned long *sizep)
|
|||
if (!ret) {
|
||||
enum object_type type;
|
||||
unsigned long size;
|
||||
ret = read_sha1_file(commit->object.sha1, &type, &size);
|
||||
ret = read_sha1_file(commit->object.oid.hash, &type, &size);
|
||||
if (!ret)
|
||||
die("cannot read commit object %s",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
if (type != OBJ_COMMIT)
|
||||
die("expected commit for %s, got %s",
|
||||
sha1_to_hex(commit->object.sha1), typename(type));
|
||||
oid_to_hex(&commit->object.oid), typename(type));
|
||||
if (sizep)
|
||||
*sizep = size;
|
||||
}
|
||||
|
@ -327,22 +327,22 @@ int parse_commit_buffer(struct commit *item, const void *buffer, unsigned long s
|
|||
tail += size;
|
||||
if (tail <= bufptr + tree_entry_len + 1 || memcmp(bufptr, "tree ", 5) ||
|
||||
bufptr[tree_entry_len] != '\n')
|
||||
return error("bogus commit object %s", sha1_to_hex(item->object.sha1));
|
||||
return error("bogus commit object %s", oid_to_hex(&item->object.oid));
|
||||
if (get_sha1_hex(bufptr + 5, parent.hash) < 0)
|
||||
return error("bad tree pointer in commit %s",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
item->tree = lookup_tree(parent.hash);
|
||||
bufptr += tree_entry_len + 1; /* "tree " + "hex sha1" + "\n" */
|
||||
pptr = &item->parents;
|
||||
|
||||
graft = lookup_commit_graft(item->object.sha1);
|
||||
graft = lookup_commit_graft(item->object.oid.hash);
|
||||
while (bufptr + parent_entry_len < tail && !memcmp(bufptr, "parent ", 7)) {
|
||||
struct commit *new_parent;
|
||||
|
||||
if (tail <= bufptr + parent_entry_len + 1 ||
|
||||
get_sha1_hex(bufptr + 7, parent.hash) ||
|
||||
bufptr[parent_entry_len] != '\n')
|
||||
return error("bad parents in commit %s", sha1_to_hex(item->object.sha1));
|
||||
return error("bad parents in commit %s", oid_to_hex(&item->object.oid));
|
||||
bufptr += parent_entry_len + 1;
|
||||
/*
|
||||
* The clone is shallow if nr_parent < 0, and we must
|
||||
|
@ -380,15 +380,15 @@ int parse_commit_gently(struct commit *item, int quiet_on_missing)
|
|||
return -1;
|
||||
if (item->object.parsed)
|
||||
return 0;
|
||||
buffer = read_sha1_file(item->object.sha1, &type, &size);
|
||||
buffer = read_sha1_file(item->object.oid.hash, &type, &size);
|
||||
if (!buffer)
|
||||
return quiet_on_missing ? -1 :
|
||||
error("Could not read %s",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
if (type != OBJ_COMMIT) {
|
||||
free(buffer);
|
||||
return error("Object %s not a commit",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
}
|
||||
ret = parse_commit_buffer(item, buffer, size);
|
||||
if (save_commit_buffer && !ret) {
|
||||
|
@ -403,7 +403,7 @@ void parse_commit_or_die(struct commit *item)
|
|||
{
|
||||
if (parse_commit(item))
|
||||
die("unable to parse commit %s",
|
||||
item ? sha1_to_hex(item->object.sha1) : "(null)");
|
||||
item ? oid_to_hex(&item->object.oid) : "(null)");
|
||||
}
|
||||
|
||||
int find_commit_subject(const char *commit_buffer, const char **subject)
|
||||
|
@ -563,7 +563,7 @@ void clear_commit_marks_for_object_array(struct object_array *a, unsigned mark)
|
|||
|
||||
for (i = 0; i < a->nr; i++) {
|
||||
object = a->objects[i].item;
|
||||
commit = lookup_commit_reference_gently(object->sha1, 1);
|
||||
commit = lookup_commit_reference_gently(object->oid.hash, 1);
|
||||
if (commit)
|
||||
clear_commit_marks(commit, mark);
|
||||
}
|
||||
|
@ -1206,7 +1206,7 @@ static void handle_signed_tag(struct commit *parent, struct commit_extra_header
|
|||
desc = merge_remote_util(parent);
|
||||
if (!desc || !desc->obj)
|
||||
return;
|
||||
buf = read_sha1_file(desc->obj->sha1, &type, &size);
|
||||
buf = read_sha1_file(desc->obj->oid.hash, &type, &size);
|
||||
if (!buf || type != OBJ_TAG)
|
||||
goto free_return;
|
||||
len = parse_signature(buf, size);
|
||||
|
@ -1539,7 +1539,7 @@ int commit_tree_extended(const char *msg, size_t msg_len,
|
|||
while (parents) {
|
||||
struct commit *parent = pop_commit(&parents);
|
||||
strbuf_addf(&buffer, "parent %s\n",
|
||||
sha1_to_hex(parent->object.sha1));
|
||||
oid_to_hex(&parent->object.oid));
|
||||
}
|
||||
|
||||
/* Person/date information */
|
||||
|
@ -1623,7 +1623,7 @@ void print_commit_list(struct commit_list *list,
|
|||
{
|
||||
for ( ; list; list = list->next) {
|
||||
const char *format = list->next ? format_cur : format_last;
|
||||
printf(format, sha1_to_hex(list->item->object.sha1));
|
||||
printf(format, oid_to_hex(&list->item->object.oid));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
22
connect.c
22
connect.c
|
@ -120,7 +120,7 @@ struct ref **get_remote_heads(int in, char *src_buf, size_t src_len,
|
|||
*list = NULL;
|
||||
for (;;) {
|
||||
struct ref *ref;
|
||||
unsigned char old_sha1[20];
|
||||
struct object_id old_oid;
|
||||
char *name;
|
||||
int len, name_len;
|
||||
char *buffer = packet_buffer;
|
||||
|
@ -139,34 +139,36 @@ struct ref **get_remote_heads(int in, char *src_buf, size_t src_len,
|
|||
if (len > 4 && skip_prefix(buffer, "ERR ", &arg))
|
||||
die("remote error: %s", arg);
|
||||
|
||||
if (len == 48 && skip_prefix(buffer, "shallow ", &arg)) {
|
||||
if (get_sha1_hex(arg, old_sha1))
|
||||
if (len == GIT_SHA1_HEXSZ + strlen("shallow ") &&
|
||||
skip_prefix(buffer, "shallow ", &arg)) {
|
||||
if (get_oid_hex(arg, &old_oid))
|
||||
die("protocol error: expected shallow sha-1, got '%s'", arg);
|
||||
if (!shallow_points)
|
||||
die("repository on the other end cannot be shallow");
|
||||
sha1_array_append(shallow_points, old_sha1);
|
||||
sha1_array_append(shallow_points, old_oid.hash);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (len < 42 || get_sha1_hex(buffer, old_sha1) || buffer[40] != ' ')
|
||||
if (len < GIT_SHA1_HEXSZ + 2 || get_oid_hex(buffer, &old_oid) ||
|
||||
buffer[GIT_SHA1_HEXSZ] != ' ')
|
||||
die("protocol error: expected sha/ref, got '%s'", buffer);
|
||||
name = buffer + 41;
|
||||
name = buffer + GIT_SHA1_HEXSZ + 1;
|
||||
|
||||
name_len = strlen(name);
|
||||
if (len != name_len + 41) {
|
||||
if (len != name_len + GIT_SHA1_HEXSZ + 1) {
|
||||
free(server_capabilities);
|
||||
server_capabilities = xstrdup(name + name_len + 1);
|
||||
}
|
||||
|
||||
if (extra_have && !strcmp(name, ".have")) {
|
||||
sha1_array_append(extra_have, old_sha1);
|
||||
sha1_array_append(extra_have, old_oid.hash);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!check_ref(name, flags))
|
||||
continue;
|
||||
ref = alloc_ref(buffer + 41);
|
||||
hashcpy(ref->old_sha1, old_sha1);
|
||||
ref = alloc_ref(buffer + GIT_SHA1_HEXSZ + 1);
|
||||
oidcpy(&ref->old_oid, &old_oid);
|
||||
*list = ref;
|
||||
list = &ref->next;
|
||||
got_at_least_one_head = 1;
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
static unsigned int hash_obj(const struct object *obj, unsigned int n)
|
||||
{
|
||||
return sha1hash(obj->sha1) % n;
|
||||
return sha1hash(obj->oid.hash) % n;
|
||||
}
|
||||
|
||||
static void *insert_decoration(struct decoration *n, const struct object *base, void *decoration)
|
||||
|
|
|
@ -493,7 +493,7 @@ int run_diff_index(struct rev_info *revs, int cached)
|
|||
struct object_array_entry *ent;
|
||||
|
||||
ent = revs->pending.objects;
|
||||
if (diff_cache(revs, ent->item->sha1, ent->name, cached))
|
||||
if (diff_cache(revs, ent->item->oid.hash, ent->name, cached))
|
||||
exit(128);
|
||||
|
||||
diff_set_mnemonic_prefix(&revs->diffopt, "c/", cached ? "i/" : "w/");
|
||||
|
|
24
fetch-pack.c
24
fetch-pack.c
|
@ -169,7 +169,7 @@ static const unsigned char *get_rev(void)
|
|||
}
|
||||
}
|
||||
|
||||
return commit->object.sha1;
|
||||
return commit->object.oid.hash;
|
||||
}
|
||||
|
||||
enum ack_type {
|
||||
|
@ -238,7 +238,7 @@ static void send_request(struct fetch_pack_args *args,
|
|||
|
||||
static void insert_one_alternate_ref(const struct ref *ref, void *unused)
|
||||
{
|
||||
rev_list_insert_ref(NULL, ref->old_sha1);
|
||||
rev_list_insert_ref(NULL, ref->old_oid.hash);
|
||||
}
|
||||
|
||||
#define INITIAL_FLUSH 16
|
||||
|
@ -280,7 +280,7 @@ static int find_common(struct fetch_pack_args *args,
|
|||
|
||||
fetching = 0;
|
||||
for ( ; refs ; refs = refs->next) {
|
||||
unsigned char *remote = refs->old_sha1;
|
||||
unsigned char *remote = refs->old_oid.hash;
|
||||
const char *remote_hex;
|
||||
struct object *o;
|
||||
|
||||
|
@ -487,7 +487,7 @@ static int mark_complete(const unsigned char *sha1)
|
|||
if (!t->tagged)
|
||||
break; /* broken repository */
|
||||
o->flags |= COMPLETE;
|
||||
o = parse_object(t->tagged->sha1);
|
||||
o = parse_object(t->tagged->oid.hash);
|
||||
}
|
||||
if (o && o->type == OBJ_COMMIT) {
|
||||
struct commit *commit = (struct commit *)o;
|
||||
|
@ -511,7 +511,7 @@ static void mark_recent_complete_commits(struct fetch_pack_args *args,
|
|||
while (complete && cutoff <= complete->item->date) {
|
||||
if (args->verbose)
|
||||
fprintf(stderr, "Marking %s as complete\n",
|
||||
sha1_to_hex(complete->item->object.sha1));
|
||||
oid_to_hex(&complete->item->object.oid));
|
||||
pop_most_recent_commit(&complete, COMPLETE);
|
||||
}
|
||||
}
|
||||
|
@ -570,7 +570,7 @@ static void filter_refs(struct fetch_pack_args *args,
|
|||
continue;
|
||||
if (get_sha1_hex(ref->name, sha1) ||
|
||||
ref->name[40] != '\0' ||
|
||||
hashcmp(sha1, ref->old_sha1))
|
||||
hashcmp(sha1, ref->old_oid.hash))
|
||||
continue;
|
||||
|
||||
ref->matched = 1;
|
||||
|
@ -583,7 +583,7 @@ static void filter_refs(struct fetch_pack_args *args,
|
|||
|
||||
static void mark_alternate_complete(const struct ref *ref, void *unused)
|
||||
{
|
||||
mark_complete(ref->old_sha1);
|
||||
mark_complete(ref->old_oid.hash);
|
||||
}
|
||||
|
||||
static int everything_local(struct fetch_pack_args *args,
|
||||
|
@ -599,10 +599,10 @@ static int everything_local(struct fetch_pack_args *args,
|
|||
for (ref = *refs; ref; ref = ref->next) {
|
||||
struct object *o;
|
||||
|
||||
if (!has_sha1_file(ref->old_sha1))
|
||||
if (!has_object_file(&ref->old_oid))
|
||||
continue;
|
||||
|
||||
o = parse_object(ref->old_sha1);
|
||||
o = parse_object(ref->old_oid.hash);
|
||||
if (!o)
|
||||
continue;
|
||||
|
||||
|
@ -630,7 +630,7 @@ static int everything_local(struct fetch_pack_args *args,
|
|||
* Don't mark them common yet; the server has to be told so first.
|
||||
*/
|
||||
for (ref = *refs; ref; ref = ref->next) {
|
||||
struct object *o = deref_tag(lookup_object(ref->old_sha1),
|
||||
struct object *o = deref_tag(lookup_object(ref->old_oid.hash),
|
||||
NULL, 0);
|
||||
|
||||
if (!o || o->type != OBJ_COMMIT || !(o->flags & COMPLETE))
|
||||
|
@ -646,7 +646,7 @@ static int everything_local(struct fetch_pack_args *args,
|
|||
filter_refs(args, refs, sought, nr_sought);
|
||||
|
||||
for (retval = 1, ref = *refs; ref ; ref = ref->next) {
|
||||
const unsigned char *remote = ref->old_sha1;
|
||||
const unsigned char *remote = ref->old_oid.hash;
|
||||
struct object *o;
|
||||
|
||||
o = lookup_object(remote);
|
||||
|
@ -985,7 +985,7 @@ static void update_shallow(struct fetch_pack_args *args,
|
|||
if (!si->nr_ours && !si->nr_theirs)
|
||||
return;
|
||||
for (i = 0; i < nr_sought; i++)
|
||||
sha1_array_append(&ref, sought[i]->old_sha1);
|
||||
sha1_array_append(&ref, sought[i]->old_oid.hash);
|
||||
si->ref = &ref;
|
||||
|
||||
if (args->update_shallow) {
|
||||
|
|
14
fsck.c
14
fsck.c
|
@ -276,7 +276,7 @@ static int report(struct fsck_options *options, struct object *object,
|
|||
return 0;
|
||||
|
||||
if (options->skiplist && object &&
|
||||
sha1_array_lookup(options->skiplist, object->sha1) >= 0)
|
||||
sha1_array_lookup(options->skiplist, object->oid.hash) >= 0)
|
||||
return 0;
|
||||
|
||||
if (msg_type == FSCK_FATAL)
|
||||
|
@ -316,7 +316,7 @@ static int fsck_walk_tree(struct tree *tree, void *data, struct fsck_options *op
|
|||
result = options->walk(&lookup_blob(entry.sha1)->object, OBJ_BLOB, data, options);
|
||||
else {
|
||||
result = error("in tree %s: entry %s has bad mode %.6o",
|
||||
sha1_to_hex(tree->object.sha1), entry.path, entry.mode);
|
||||
oid_to_hex(&tree->object.oid), entry.path, entry.mode);
|
||||
}
|
||||
if (result < 0)
|
||||
return result;
|
||||
|
@ -373,7 +373,7 @@ int fsck_walk(struct object *obj, void *data, struct fsck_options *options)
|
|||
case OBJ_TAG:
|
||||
return fsck_walk_tag((struct tag *)obj, data, options);
|
||||
default:
|
||||
error("Unknown object type for %s", sha1_to_hex(obj->sha1));
|
||||
error("Unknown object type for %s", oid_to_hex(&obj->oid));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -630,7 +630,7 @@ static int fsck_commit_buffer(struct commit *commit, const char *buffer,
|
|||
buffer += 41;
|
||||
parent_line_count++;
|
||||
}
|
||||
graft = lookup_commit_graft(commit->object.sha1);
|
||||
graft = lookup_commit_graft(commit->object.oid.hash);
|
||||
parent_count = commit_list_count(commit->parents);
|
||||
if (graft) {
|
||||
if (graft->nr_parent == -1 && !parent_count)
|
||||
|
@ -696,7 +696,7 @@ static int fsck_tag_buffer(struct tag *tag, const char *data,
|
|||
enum object_type type;
|
||||
|
||||
buffer = to_free =
|
||||
read_sha1_file(tag->object.sha1, &type, &size);
|
||||
read_sha1_file(tag->object.oid.hash, &type, &size);
|
||||
if (!buffer)
|
||||
return report(options, &tag->object,
|
||||
FSCK_MSG_MISSING_TAG_OBJECT,
|
||||
|
@ -810,9 +810,9 @@ int fsck_object(struct object *obj, void *data, unsigned long size,
|
|||
int fsck_error_function(struct object *obj, int msg_type, const char *message)
|
||||
{
|
||||
if (msg_type == FSCK_WARN) {
|
||||
warning("object %s: %s", sha1_to_hex(obj->sha1), message);
|
||||
warning("object %s: %s", oid_to_hex(&obj->oid), message);
|
||||
return 0;
|
||||
}
|
||||
error("object %s: %s", sha1_to_hex(obj->sha1), message);
|
||||
error("object %s: %s", oid_to_hex(&obj->oid), message);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -436,7 +436,7 @@ static int show_text_ref(const char *name, const struct object_id *oid,
|
|||
o = deref_tag(o, name, 0);
|
||||
if (!o)
|
||||
return 0;
|
||||
strbuf_addf(buf, "%s\t%s^{}\n", sha1_to_hex(o->sha1),
|
||||
strbuf_addf(buf, "%s\t%s^{}\n", oid_to_hex(&o->oid),
|
||||
name_nons);
|
||||
}
|
||||
return 0;
|
||||
|
|
86
http-push.c
86
http-push.c
|
@ -251,7 +251,7 @@ static void start_fetch_loose(struct transfer_request *request)
|
|||
struct active_request_slot *slot;
|
||||
struct http_object_request *obj_req;
|
||||
|
||||
obj_req = new_http_object_request(repo->url, request->obj->sha1);
|
||||
obj_req = new_http_object_request(repo->url, request->obj->oid.hash);
|
||||
if (obj_req == NULL) {
|
||||
request->state = ABORTED;
|
||||
return;
|
||||
|
@ -275,7 +275,7 @@ static void start_fetch_loose(struct transfer_request *request)
|
|||
|
||||
static void start_mkcol(struct transfer_request *request)
|
||||
{
|
||||
char *hex = sha1_to_hex(request->obj->sha1);
|
||||
char *hex = oid_to_hex(&request->obj->oid);
|
||||
struct active_request_slot *slot;
|
||||
|
||||
request->url = get_remote_object_url(repo->url, hex, 1);
|
||||
|
@ -304,16 +304,16 @@ static void start_fetch_packed(struct transfer_request *request)
|
|||
struct transfer_request *check_request = request_queue_head;
|
||||
struct http_pack_request *preq;
|
||||
|
||||
target = find_sha1_pack(request->obj->sha1, repo->packs);
|
||||
target = find_sha1_pack(request->obj->oid.hash, repo->packs);
|
||||
if (!target) {
|
||||
fprintf(stderr, "Unable to fetch %s, will not be able to update server info refs\n", sha1_to_hex(request->obj->sha1));
|
||||
fprintf(stderr, "Unable to fetch %s, will not be able to update server info refs\n", oid_to_hex(&request->obj->oid));
|
||||
repo->can_update_info_refs = 0;
|
||||
release_request(request);
|
||||
return;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Fetching pack %s\n", sha1_to_hex(target->sha1));
|
||||
fprintf(stderr, " which contains %s\n", sha1_to_hex(request->obj->sha1));
|
||||
fprintf(stderr, " which contains %s\n", oid_to_hex(&request->obj->oid));
|
||||
|
||||
preq = new_http_pack_request(target, repo->url);
|
||||
if (preq == NULL) {
|
||||
|
@ -350,7 +350,7 @@ static void start_fetch_packed(struct transfer_request *request)
|
|||
|
||||
static void start_put(struct transfer_request *request)
|
||||
{
|
||||
char *hex = sha1_to_hex(request->obj->sha1);
|
||||
char *hex = oid_to_hex(&request->obj->oid);
|
||||
struct active_request_slot *slot;
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
enum object_type type;
|
||||
|
@ -361,7 +361,7 @@ static void start_put(struct transfer_request *request)
|
|||
ssize_t size;
|
||||
git_zstream stream;
|
||||
|
||||
unpacked = read_sha1_file(request->obj->sha1, &type, &len);
|
||||
unpacked = read_sha1_file(request->obj->oid.hash, &type, &len);
|
||||
hdrlen = xsnprintf(hdr, sizeof(hdr), "%s %lu", typename(type), len) + 1;
|
||||
|
||||
/* Set it up */
|
||||
|
@ -533,11 +533,11 @@ static void finish_request(struct transfer_request *request)
|
|||
if (request->state == RUN_MKCOL) {
|
||||
if (request->curl_result == CURLE_OK ||
|
||||
request->http_code == 405) {
|
||||
remote_dir_exists[request->obj->sha1[0]] = 1;
|
||||
remote_dir_exists[request->obj->oid.hash[0]] = 1;
|
||||
start_put(request);
|
||||
} else {
|
||||
fprintf(stderr, "MKCOL %s failed, aborting (%d/%ld)\n",
|
||||
sha1_to_hex(request->obj->sha1),
|
||||
oid_to_hex(&request->obj->oid),
|
||||
request->curl_result, request->http_code);
|
||||
request->state = ABORTED;
|
||||
aborted = 1;
|
||||
|
@ -547,7 +547,7 @@ static void finish_request(struct transfer_request *request)
|
|||
start_move(request);
|
||||
} else {
|
||||
fprintf(stderr, "PUT %s failed, aborting (%d/%ld)\n",
|
||||
sha1_to_hex(request->obj->sha1),
|
||||
oid_to_hex(&request->obj->oid),
|
||||
request->curl_result, request->http_code);
|
||||
request->state = ABORTED;
|
||||
aborted = 1;
|
||||
|
@ -556,12 +556,12 @@ static void finish_request(struct transfer_request *request)
|
|||
if (request->curl_result == CURLE_OK) {
|
||||
if (push_verbosely)
|
||||
fprintf(stderr, " sent %s\n",
|
||||
sha1_to_hex(request->obj->sha1));
|
||||
oid_to_hex(&request->obj->oid));
|
||||
request->obj->flags |= REMOTE;
|
||||
release_request(request);
|
||||
} else {
|
||||
fprintf(stderr, "MOVE %s failed, aborting (%d/%ld)\n",
|
||||
sha1_to_hex(request->obj->sha1),
|
||||
oid_to_hex(&request->obj->oid),
|
||||
request->curl_result, request->http_code);
|
||||
request->state = ABORTED;
|
||||
aborted = 1;
|
||||
|
@ -614,7 +614,7 @@ static int fill_active_slot(void *unused)
|
|||
start_fetch_loose(request);
|
||||
return 1;
|
||||
} else if (pushing && request->state == NEED_PUSH) {
|
||||
if (remote_dir_exists[request->obj->sha1[0]] == 1) {
|
||||
if (remote_dir_exists[request->obj->oid.hash[0]] == 1) {
|
||||
start_put(request);
|
||||
} else {
|
||||
start_mkcol(request);
|
||||
|
@ -638,8 +638,8 @@ static void add_fetch_request(struct object *obj)
|
|||
* Don't fetch the object if it's known to exist locally
|
||||
* or is already in the request queue
|
||||
*/
|
||||
if (remote_dir_exists[obj->sha1[0]] == -1)
|
||||
get_remote_object_list(obj->sha1[0]);
|
||||
if (remote_dir_exists[obj->oid.hash[0]] == -1)
|
||||
get_remote_object_list(obj->oid.hash[0]);
|
||||
if (obj->flags & (LOCAL | FETCHING))
|
||||
return;
|
||||
|
||||
|
@ -671,11 +671,11 @@ static int add_send_request(struct object *obj, struct remote_lock *lock)
|
|||
* Don't push the object if it's known to exist on the remote
|
||||
* or is already in the request queue
|
||||
*/
|
||||
if (remote_dir_exists[obj->sha1[0]] == -1)
|
||||
get_remote_object_list(obj->sha1[0]);
|
||||
if (remote_dir_exists[obj->oid.hash[0]] == -1)
|
||||
get_remote_object_list(obj->oid.hash[0]);
|
||||
if (obj->flags & (REMOTE | PUSHING))
|
||||
return 0;
|
||||
target = find_sha1_pack(obj->sha1, repo->packs);
|
||||
target = find_sha1_pack(obj->oid.hash, repo->packs);
|
||||
if (target) {
|
||||
obj->flags |= REMOTE;
|
||||
return 0;
|
||||
|
@ -1307,7 +1307,7 @@ static struct object_list **process_tree(struct tree *tree,
|
|||
if (obj->flags & (UNINTERESTING | SEEN))
|
||||
return p;
|
||||
if (parse_tree(tree) < 0)
|
||||
die("bad tree object %s", sha1_to_hex(obj->sha1));
|
||||
die("bad tree object %s", oid_to_hex(&obj->oid));
|
||||
|
||||
obj->flags |= SEEN;
|
||||
name = xstrdup(name);
|
||||
|
@ -1369,7 +1369,7 @@ static int get_delta(struct rev_info *revs, struct remote_lock *lock)
|
|||
p = process_blob((struct blob *)obj, p, NULL, name);
|
||||
continue;
|
||||
}
|
||||
die("unknown pending object %s (%s)", sha1_to_hex(obj->sha1), name);
|
||||
die("unknown pending object %s (%s)", oid_to_hex(&obj->oid), name);
|
||||
}
|
||||
|
||||
while (objects) {
|
||||
|
@ -1438,11 +1438,11 @@ static void one_remote_ref(const char *refname)
|
|||
* Fetch a copy of the object if it doesn't exist locally - it
|
||||
* may be required for updating server info later.
|
||||
*/
|
||||
if (repo->can_update_info_refs && !has_sha1_file(ref->old_sha1)) {
|
||||
obj = lookup_unknown_object(ref->old_sha1);
|
||||
if (repo->can_update_info_refs && !has_object_file(&ref->old_oid)) {
|
||||
obj = lookup_unknown_object(ref->old_oid.hash);
|
||||
if (obj) {
|
||||
fprintf(stderr, " fetch %s for %s\n",
|
||||
sha1_to_hex(ref->old_sha1), refname);
|
||||
oid_to_hex(&ref->old_oid), refname);
|
||||
add_fetch_request(obj);
|
||||
}
|
||||
}
|
||||
|
@ -1473,24 +1473,24 @@ static void add_remote_info_ref(struct remote_ls_ctx *ls)
|
|||
return;
|
||||
}
|
||||
|
||||
o = parse_object(ref->old_sha1);
|
||||
o = parse_object(ref->old_oid.hash);
|
||||
if (!o) {
|
||||
fprintf(stderr,
|
||||
"Unable to parse object %s for remote ref %s\n",
|
||||
sha1_to_hex(ref->old_sha1), ls->dentry_name);
|
||||
oid_to_hex(&ref->old_oid), ls->dentry_name);
|
||||
aborted = 1;
|
||||
free(ref);
|
||||
return;
|
||||
}
|
||||
|
||||
strbuf_addf(buf, "%s\t%s\n",
|
||||
sha1_to_hex(ref->old_sha1), ls->dentry_name);
|
||||
oid_to_hex(&ref->old_oid), ls->dentry_name);
|
||||
|
||||
if (o->type == OBJ_TAG) {
|
||||
o = deref_tag(o, ls->dentry_name, 0);
|
||||
if (o)
|
||||
strbuf_addf(buf, "%s\t%s^{}\n",
|
||||
sha1_to_hex(o->sha1), ls->dentry_name);
|
||||
oid_to_hex(&o->oid), ls->dentry_name);
|
||||
}
|
||||
free(ref);
|
||||
}
|
||||
|
@ -1581,7 +1581,7 @@ static void fetch_symref(const char *path, char **symref, unsigned char *sha1)
|
|||
static int verify_merge_base(unsigned char *head_sha1, struct ref *remote)
|
||||
{
|
||||
struct commit *head = lookup_commit_or_die(head_sha1, "HEAD");
|
||||
struct commit *branch = lookup_commit_or_die(remote->old_sha1, remote->name);
|
||||
struct commit *branch = lookup_commit_or_die(remote->old_oid.hash, remote->name);
|
||||
|
||||
return in_merge_bases(branch, head);
|
||||
}
|
||||
|
@ -1644,11 +1644,11 @@ static int delete_remote_branch(const char *pattern, int force)
|
|||
return error("Remote HEAD resolves to object %s\nwhich does not exist locally, perhaps you need to fetch?", sha1_to_hex(head_sha1));
|
||||
|
||||
/* Remote branch must resolve to a known object */
|
||||
if (is_null_sha1(remote_ref->old_sha1))
|
||||
if (is_null_oid(&remote_ref->old_oid))
|
||||
return error("Unable to resolve remote branch %s",
|
||||
remote_ref->name);
|
||||
if (!has_sha1_file(remote_ref->old_sha1))
|
||||
return error("Remote branch %s resolves to object %s\nwhich does not exist locally, perhaps you need to fetch?", remote_ref->name, sha1_to_hex(remote_ref->old_sha1));
|
||||
if (!has_object_file(&remote_ref->old_oid))
|
||||
return error("Remote branch %s resolves to object %s\nwhich does not exist locally, perhaps you need to fetch?", remote_ref->name, oid_to_hex(&remote_ref->old_oid));
|
||||
|
||||
/* Remote branch must be an ancestor of remote HEAD */
|
||||
if (!verify_merge_base(head_sha1, remote_ref)) {
|
||||
|
@ -1861,7 +1861,7 @@ int main(int argc, char **argv)
|
|||
if (!ref->peer_ref)
|
||||
continue;
|
||||
|
||||
if (is_null_sha1(ref->peer_ref->new_sha1)) {
|
||||
if (is_null_oid(&ref->peer_ref->new_oid)) {
|
||||
if (delete_remote_branch(ref->name, 1) == -1) {
|
||||
error("Could not remove %s", ref->name);
|
||||
if (helper_status)
|
||||
|
@ -1874,7 +1874,7 @@ int main(int argc, char **argv)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!hashcmp(ref->old_sha1, ref->peer_ref->new_sha1)) {
|
||||
if (!oidcmp(&ref->old_oid, &ref->peer_ref->new_oid)) {
|
||||
if (push_verbosely)
|
||||
fprintf(stderr, "'%s': up-to-date\n", ref->name);
|
||||
if (helper_status)
|
||||
|
@ -1883,11 +1883,11 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
if (!force_all &&
|
||||
!is_null_sha1(ref->old_sha1) &&
|
||||
!is_null_oid(&ref->old_oid) &&
|
||||
!ref->force) {
|
||||
if (!has_sha1_file(ref->old_sha1) ||
|
||||
!ref_newer(ref->peer_ref->new_sha1,
|
||||
ref->old_sha1)) {
|
||||
if (!has_object_file(&ref->old_oid) ||
|
||||
!ref_newer(&ref->peer_ref->new_oid,
|
||||
&ref->old_oid)) {
|
||||
/*
|
||||
* We do not have the remote ref, or
|
||||
* we know that the remote ref is not
|
||||
|
@ -1908,14 +1908,14 @@ int main(int argc, char **argv)
|
|||
continue;
|
||||
}
|
||||
}
|
||||
hashcpy(ref->new_sha1, ref->peer_ref->new_sha1);
|
||||
oidcpy(&ref->new_oid, &ref->peer_ref->new_oid);
|
||||
new_refs++;
|
||||
|
||||
fprintf(stderr, "updating '%s'", ref->name);
|
||||
if (strcmp(ref->name, ref->peer_ref->name))
|
||||
fprintf(stderr, " using '%s'", ref->peer_ref->name);
|
||||
fprintf(stderr, "\n from %s\n to %s\n",
|
||||
sha1_to_hex(ref->old_sha1), sha1_to_hex(ref->new_sha1));
|
||||
oid_to_hex(&ref->old_oid), oid_to_hex(&ref->new_oid));
|
||||
if (dry_run) {
|
||||
if (helper_status)
|
||||
printf("ok %s\n", ref->name);
|
||||
|
@ -1936,10 +1936,10 @@ int main(int argc, char **argv)
|
|||
/* Set up revision info for this refspec */
|
||||
argv_array_push(&commit_argv, ""); /* ignored */
|
||||
argv_array_push(&commit_argv, "--objects");
|
||||
argv_array_push(&commit_argv, sha1_to_hex(ref->new_sha1));
|
||||
if (!push_all && !is_null_sha1(ref->old_sha1))
|
||||
argv_array_push(&commit_argv, oid_to_hex(&ref->new_oid));
|
||||
if (!push_all && !is_null_oid(&ref->old_oid))
|
||||
argv_array_pushf(&commit_argv, "^%s",
|
||||
sha1_to_hex(ref->old_sha1));
|
||||
oid_to_hex(&ref->old_oid));
|
||||
init_revisions(&revs, setup_git_directory());
|
||||
setup_revisions(commit_argv.argc, commit_argv.argv, &revs, NULL);
|
||||
revs.edge_hint = 0; /* just in case */
|
||||
|
@ -1962,7 +1962,7 @@ int main(int argc, char **argv)
|
|||
run_request_queue();
|
||||
|
||||
/* Update the remote branch if all went well */
|
||||
if (aborted || !update_remote(ref->new_sha1, ref_lock))
|
||||
if (aborted || !update_remote(ref->new_oid.hash, ref_lock))
|
||||
rc = 1;
|
||||
|
||||
if (!rc)
|
||||
|
|
2
http.c
2
http.c
|
@ -1402,7 +1402,7 @@ int http_fetch_ref(const char *base, struct ref *ref)
|
|||
if (http_get_strbuf(url, &buffer, &options) == HTTP_OK) {
|
||||
strbuf_rtrim(&buffer);
|
||||
if (buffer.len == 40)
|
||||
ret = get_sha1_hex(buffer.buf, ref->old_sha1);
|
||||
ret = get_oid_hex(buffer.buf, &ref->old_oid);
|
||||
else if (starts_with(buffer.buf, "ref: ")) {
|
||||
ref->symref = xstrdup(buffer.buf + 5);
|
||||
ret = 0;
|
||||
|
|
|
@ -502,7 +502,7 @@ static void fill_blob_sha1(struct commit *commit, struct diff_filespec *spec)
|
|||
unsigned mode;
|
||||
unsigned char sha1[20];
|
||||
|
||||
if (get_tree_entry(commit->object.sha1, spec->path,
|
||||
if (get_tree_entry(commit->object.oid.hash, spec->path,
|
||||
sha1, &mode))
|
||||
die("There is no path %s in the commit", spec->path);
|
||||
fill_filespec(spec, sha1, 1, mode);
|
||||
|
@ -824,8 +824,8 @@ static void queue_diffs(struct line_log_data *range,
|
|||
assert(commit);
|
||||
|
||||
DIFF_QUEUE_CLEAR(&diff_queued_diff);
|
||||
diff_tree_sha1(parent ? parent->tree->object.sha1 : NULL,
|
||||
commit->tree->object.sha1, "", opt);
|
||||
diff_tree_sha1(parent ? parent->tree->object.oid.hash : NULL,
|
||||
commit->tree->object.oid.hash, "", opt);
|
||||
if (opt->detect_rename) {
|
||||
filter_diffs_for_paths(range, 1);
|
||||
if (diff_might_be_rename())
|
||||
|
|
|
@ -84,7 +84,7 @@ static void process_tree(struct rev_info *revs,
|
|||
if (parse_tree_gently(tree, revs->ignore_missing_links) < 0) {
|
||||
if (revs->ignore_missing_links)
|
||||
return;
|
||||
die("bad tree object %s", sha1_to_hex(obj->sha1));
|
||||
die("bad tree object %s", oid_to_hex(&obj->oid));
|
||||
}
|
||||
obj->flags |= SEEN;
|
||||
show(obj, path, name, cb_data);
|
||||
|
@ -229,7 +229,7 @@ void traverse_commit_list(struct rev_info *revs,
|
|||
continue;
|
||||
}
|
||||
die("unknown pending object %s (%s)",
|
||||
sha1_to_hex(obj->sha1), name);
|
||||
oid_to_hex(&obj->oid), name);
|
||||
}
|
||||
object_array_clear(&revs->pending);
|
||||
strbuf_release(&base);
|
||||
|
|
40
log-tree.c
40
log-tree.c
|
@ -133,7 +133,7 @@ static int add_ref_decoration(const char *refname, const struct object_id *oid,
|
|||
if (!obj)
|
||||
break;
|
||||
if (!obj->parsed)
|
||||
parse_object(obj->sha1);
|
||||
parse_object(obj->oid.hash);
|
||||
add_name_decoration(DECORATION_REF_TAG, refname, obj);
|
||||
}
|
||||
return 0;
|
||||
|
@ -165,7 +165,7 @@ static void show_parents(struct commit *commit, int abbrev)
|
|||
struct commit_list *p;
|
||||
for (p = commit->parents; p ; p = p->next) {
|
||||
struct commit *parent = p->item;
|
||||
printf(" %s", find_unique_abbrev(parent->object.sha1, abbrev));
|
||||
printf(" %s", find_unique_abbrev(parent->object.oid.hash, abbrev));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,7 @@ static void show_children(struct rev_info *opt, struct commit *commit, int abbre
|
|||
{
|
||||
struct commit_list *p = lookup_decoration(&opt->children, &commit->object);
|
||||
for ( ; p; p = p->next) {
|
||||
printf(" %s", find_unique_abbrev(p->item->object.sha1, abbrev));
|
||||
printf(" %s", find_unique_abbrev(p->item->object.oid.hash, abbrev));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -342,7 +342,7 @@ void log_write_email_headers(struct rev_info *opt, struct commit *commit,
|
|||
{
|
||||
const char *subject = NULL;
|
||||
const char *extra_headers = opt->extra_headers;
|
||||
const char *name = sha1_to_hex(commit->object.sha1);
|
||||
const char *name = oid_to_hex(&commit->object.oid);
|
||||
|
||||
*need_8bit_cte_p = 0; /* unknown */
|
||||
if (opt->total > 0) {
|
||||
|
@ -469,7 +469,7 @@ static int which_parent(const unsigned char *sha1, const struct commit *commit)
|
|||
const struct commit_list *parent;
|
||||
|
||||
for (nth = 0, parent = commit->parents; parent; parent = parent->next) {
|
||||
if (!hashcmp(parent->item->object.sha1, sha1))
|
||||
if (!hashcmp(parent->item->object.oid.hash, sha1))
|
||||
return nth;
|
||||
nth++;
|
||||
}
|
||||
|
@ -503,13 +503,13 @@ static void show_one_mergetag(struct commit *commit,
|
|||
if (parse_tag_buffer(tag, extra->value, extra->len))
|
||||
strbuf_addstr(&verify_message, "malformed mergetag\n");
|
||||
else if (is_common_merge(commit) &&
|
||||
!hashcmp(tag->tagged->sha1,
|
||||
commit->parents->next->item->object.sha1))
|
||||
!oidcmp(&tag->tagged->oid,
|
||||
&commit->parents->next->item->object.oid))
|
||||
strbuf_addf(&verify_message,
|
||||
"merged tag '%s'\n", tag->tag);
|
||||
else if ((nth = which_parent(tag->tagged->sha1, commit)) < 0)
|
||||
else if ((nth = which_parent(tag->tagged->oid.hash, commit)) < 0)
|
||||
strbuf_addf(&verify_message, "tag %s names a non-parent %s\n",
|
||||
tag->tag, tag->tagged->sha1);
|
||||
tag->tag, tag->tagged->oid.hash);
|
||||
else
|
||||
strbuf_addf(&verify_message,
|
||||
"parent #%d, tagged '%s'\n", nth + 1, tag->tag);
|
||||
|
@ -553,7 +553,7 @@ void show_log(struct rev_info *opt)
|
|||
|
||||
if (!opt->graph)
|
||||
put_revision_mark(opt, commit);
|
||||
fputs(find_unique_abbrev(commit->object.sha1, abbrev_commit), stdout);
|
||||
fputs(find_unique_abbrev(commit->object.oid.hash, abbrev_commit), stdout);
|
||||
if (opt->print_parents)
|
||||
show_parents(commit, abbrev_commit);
|
||||
if (opt->children.name)
|
||||
|
@ -613,7 +613,7 @@ void show_log(struct rev_info *opt)
|
|||
|
||||
if (!opt->graph)
|
||||
put_revision_mark(opt, commit);
|
||||
fputs(find_unique_abbrev(commit->object.sha1, abbrev_commit),
|
||||
fputs(find_unique_abbrev(commit->object.oid.hash, abbrev_commit),
|
||||
stdout);
|
||||
if (opt->print_parents)
|
||||
show_parents(commit, abbrev_commit);
|
||||
|
@ -621,7 +621,7 @@ void show_log(struct rev_info *opt)
|
|||
show_children(opt, commit, abbrev_commit);
|
||||
if (parent)
|
||||
printf(" (from %s)",
|
||||
find_unique_abbrev(parent->object.sha1,
|
||||
find_unique_abbrev(parent->object.oid.hash,
|
||||
abbrev_commit));
|
||||
fputs(diff_get_color_opt(&opt->diffopt, DIFF_RESET), stdout);
|
||||
show_decorations(opt, commit);
|
||||
|
@ -660,7 +660,7 @@ void show_log(struct rev_info *opt)
|
|||
struct strbuf notebuf = STRBUF_INIT;
|
||||
|
||||
raw = (opt->commit_format == CMIT_FMT_USERFORMAT);
|
||||
format_display_notes(commit->object.sha1, ¬ebuf,
|
||||
format_display_notes(commit->object.oid.hash, ¬ebuf,
|
||||
get_log_output_encoding(), raw);
|
||||
ctx.notes_message = notebuf.len
|
||||
? strbuf_detach(¬ebuf, NULL)
|
||||
|
@ -796,19 +796,19 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
|
|||
{
|
||||
int showed_log;
|
||||
struct commit_list *parents;
|
||||
unsigned const char *sha1;
|
||||
struct object_id *oid;
|
||||
|
||||
if (!opt->diff && !DIFF_OPT_TST(&opt->diffopt, EXIT_WITH_STATUS))
|
||||
return 0;
|
||||
|
||||
parse_commit_or_die(commit);
|
||||
sha1 = commit->tree->object.sha1;
|
||||
oid = &commit->tree->object.oid;
|
||||
|
||||
/* Root commit? */
|
||||
parents = get_saved_parents(opt, commit);
|
||||
if (!parents) {
|
||||
if (opt->show_root_diff) {
|
||||
diff_root_tree_sha1(sha1, "", &opt->diffopt);
|
||||
diff_root_tree_sha1(oid->hash, "", &opt->diffopt);
|
||||
log_tree_diff_flush(opt);
|
||||
}
|
||||
return !opt->loginfo;
|
||||
|
@ -827,8 +827,8 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
|
|||
* we merged _in_.
|
||||
*/
|
||||
parse_commit_or_die(parents->item);
|
||||
diff_tree_sha1(parents->item->tree->object.sha1,
|
||||
sha1, "", &opt->diffopt);
|
||||
diff_tree_sha1(parents->item->tree->object.oid.hash,
|
||||
oid->hash, "", &opt->diffopt);
|
||||
log_tree_diff_flush(opt);
|
||||
return !opt->loginfo;
|
||||
}
|
||||
|
@ -842,8 +842,8 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
|
|||
struct commit *parent = parents->item;
|
||||
|
||||
parse_commit_or_die(parent);
|
||||
diff_tree_sha1(parent->tree->object.sha1,
|
||||
sha1, "", &opt->diffopt);
|
||||
diff_tree_sha1(parent->tree->object.oid.hash,
|
||||
oid->hash, "", &opt->diffopt);
|
||||
log_tree_diff_flush(opt);
|
||||
|
||||
showed_log |= !opt->loginfo;
|
||||
|
|
|
@ -11,7 +11,7 @@ static int fill_mmfile_blob(mmfile_t *f, struct blob *obj)
|
|||
unsigned long size;
|
||||
enum object_type type;
|
||||
|
||||
buf = read_sha1_file(obj->object.sha1, &type, &size);
|
||||
buf = read_sha1_file(obj->object.oid.hash, &type, &size);
|
||||
if (!buf)
|
||||
return -1;
|
||||
if (type != OBJ_BLOB) {
|
||||
|
@ -100,7 +100,7 @@ void *merge_blobs(const char *path, struct blob *base, struct blob *our, struct
|
|||
return NULL;
|
||||
if (!our)
|
||||
our = their;
|
||||
return read_sha1_file(our->object.sha1, &type, size);
|
||||
return read_sha1_file(our->object.oid.hash, &type, size);
|
||||
}
|
||||
|
||||
if (fill_mmfile_blob(&f1, our) < 0)
|
||||
|
|
|
@ -26,17 +26,17 @@
|
|||
static struct tree *shift_tree_object(struct tree *one, struct tree *two,
|
||||
const char *subtree_shift)
|
||||
{
|
||||
unsigned char shifted[20];
|
||||
struct object_id shifted;
|
||||
|
||||
if (!*subtree_shift) {
|
||||
shift_tree(one->object.sha1, two->object.sha1, shifted, 0);
|
||||
shift_tree(one->object.oid.hash, two->object.oid.hash, shifted.hash, 0);
|
||||
} else {
|
||||
shift_tree_by(one->object.sha1, two->object.sha1, shifted,
|
||||
shift_tree_by(one->object.oid.hash, two->object.oid.hash, shifted.hash,
|
||||
subtree_shift);
|
||||
}
|
||||
if (!hashcmp(two->object.sha1, shifted))
|
||||
if (!oidcmp(&two->object.oid, &shifted))
|
||||
return two;
|
||||
return lookup_tree(shifted);
|
||||
return lookup_tree(shifted.hash);
|
||||
}
|
||||
|
||||
static struct commit *make_virtual_commit(struct tree *tree, const char *comment)
|
||||
|
@ -184,7 +184,7 @@ static void output_commit_title(struct merge_options *o, struct commit *commit)
|
|||
if (commit->util)
|
||||
printf("virtual %s\n", merge_remote_util(commit)->name);
|
||||
else {
|
||||
printf("%s ", find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV));
|
||||
printf("%s ", find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV));
|
||||
if (parse_commit(commit) != 0)
|
||||
printf(_("(bad commit)\n"));
|
||||
else {
|
||||
|
@ -313,11 +313,11 @@ static struct stage_data *insert_stage_data(const char *path,
|
|||
{
|
||||
struct string_list_item *item;
|
||||
struct stage_data *e = xcalloc(1, sizeof(struct stage_data));
|
||||
get_tree_entry(o->object.sha1, path,
|
||||
get_tree_entry(o->object.oid.hash, path,
|
||||
e->stages[1].sha, &e->stages[1].mode);
|
||||
get_tree_entry(a->object.sha1, path,
|
||||
get_tree_entry(a->object.oid.hash, path,
|
||||
e->stages[2].sha, &e->stages[2].mode);
|
||||
get_tree_entry(b->object.sha1, path,
|
||||
get_tree_entry(b->object.oid.hash, path,
|
||||
e->stages[3].sha, &e->stages[3].mode);
|
||||
item = string_list_insert(entries, path);
|
||||
item->util = e;
|
||||
|
@ -493,7 +493,7 @@ static struct string_list *get_renames(struct merge_options *o,
|
|||
opts.show_rename_progress = o->show_rename_progress;
|
||||
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
|
||||
diff_setup_done(&opts);
|
||||
diff_tree_sha1(o_tree->object.sha1, tree->object.sha1, "", &opts);
|
||||
diff_tree_sha1(o_tree->object.oid.hash, tree->object.oid.hash, "", &opts);
|
||||
diffcore_std(&opts);
|
||||
if (opts.needed_rename_limit > o->needed_rename_limit)
|
||||
o->needed_rename_limit = opts.needed_rename_limit;
|
||||
|
@ -1812,7 +1812,7 @@ int merge_trees(struct merge_options *o,
|
|||
common = shift_tree_object(head, common, o->subtree_shift);
|
||||
}
|
||||
|
||||
if (sha_eq(common->object.sha1, merge->object.sha1)) {
|
||||
if (sha_eq(common->object.oid.hash, merge->object.oid.hash)) {
|
||||
output(o, 0, _("Already up-to-date!"));
|
||||
*result = head;
|
||||
return 1;
|
||||
|
@ -1823,8 +1823,8 @@ int merge_trees(struct merge_options *o,
|
|||
if (code != 0) {
|
||||
if (show(o, 4) || o->call_depth)
|
||||
die(_("merging of trees %s and %s failed"),
|
||||
sha1_to_hex(head->object.sha1),
|
||||
sha1_to_hex(merge->object.sha1));
|
||||
oid_to_hex(&head->object.oid),
|
||||
oid_to_hex(&merge->object.oid));
|
||||
else
|
||||
exit(128);
|
||||
}
|
||||
|
|
2
merge.c
2
merge.c
|
@ -10,7 +10,7 @@
|
|||
static const char *merge_argument(struct commit *commit)
|
||||
{
|
||||
if (commit)
|
||||
return sha1_to_hex(commit->object.sha1);
|
||||
return oid_to_hex(&commit->object.oid);
|
||||
else
|
||||
return EMPTY_TREE_SHA1_HEX;
|
||||
}
|
||||
|
|
|
@ -602,15 +602,15 @@ int notes_merge(struct notes_merge_options *o,
|
|||
if (o->verbosity >= 4)
|
||||
printf("No merge base found; doing history-less merge\n");
|
||||
} else if (!bases->next) {
|
||||
base_sha1 = bases->item->object.sha1;
|
||||
base_tree_sha1 = bases->item->tree->object.sha1;
|
||||
base_sha1 = bases->item->object.oid.hash;
|
||||
base_tree_sha1 = bases->item->tree->object.oid.hash;
|
||||
if (o->verbosity >= 4)
|
||||
printf("One merge base found (%.7s)\n",
|
||||
sha1_to_hex(base_sha1));
|
||||
} else {
|
||||
/* TODO: How to handle multiple merge-bases? */
|
||||
base_sha1 = bases->item->object.sha1;
|
||||
base_tree_sha1 = bases->item->tree->object.sha1;
|
||||
base_sha1 = bases->item->object.oid.hash;
|
||||
base_tree_sha1 = bases->item->tree->object.oid.hash;
|
||||
if (o->verbosity >= 3)
|
||||
printf("Multiple merge bases found. Using the first "
|
||||
"(%.7s)\n", sha1_to_hex(base_sha1));
|
||||
|
@ -618,27 +618,27 @@ int notes_merge(struct notes_merge_options *o,
|
|||
|
||||
if (o->verbosity >= 4)
|
||||
printf("Merging remote commit %.7s into local commit %.7s with "
|
||||
"merge-base %.7s\n", sha1_to_hex(remote->object.sha1),
|
||||
sha1_to_hex(local->object.sha1),
|
||||
"merge-base %.7s\n", oid_to_hex(&remote->object.oid),
|
||||
oid_to_hex(&local->object.oid),
|
||||
sha1_to_hex(base_sha1));
|
||||
|
||||
if (!hashcmp(remote->object.sha1, base_sha1)) {
|
||||
if (!hashcmp(remote->object.oid.hash, base_sha1)) {
|
||||
/* Already merged; result == local commit */
|
||||
if (o->verbosity >= 2)
|
||||
printf("Already up-to-date!\n");
|
||||
hashcpy(result_sha1, local->object.sha1);
|
||||
hashcpy(result_sha1, local->object.oid.hash);
|
||||
goto found_result;
|
||||
}
|
||||
if (!hashcmp(local->object.sha1, base_sha1)) {
|
||||
if (!hashcmp(local->object.oid.hash, base_sha1)) {
|
||||
/* Fast-forward; result == remote commit */
|
||||
if (o->verbosity >= 2)
|
||||
printf("Fast-forward\n");
|
||||
hashcpy(result_sha1, remote->object.sha1);
|
||||
hashcpy(result_sha1, remote->object.oid.hash);
|
||||
goto found_result;
|
||||
}
|
||||
|
||||
result = merge_from_diffs(o, base_tree_sha1, local->tree->object.sha1,
|
||||
remote->tree->object.sha1, local_tree);
|
||||
result = merge_from_diffs(o, base_tree_sha1, local->tree->object.oid.hash,
|
||||
remote->tree->object.oid.hash, local_tree);
|
||||
|
||||
if (result != 0) { /* non-trivial merge (with or without conflicts) */
|
||||
/* Commit (partial) result */
|
||||
|
|
8
object.c
8
object.c
|
@ -68,7 +68,7 @@ static unsigned int hash_obj(const unsigned char *sha1, unsigned int n)
|
|||
*/
|
||||
static void insert_obj_hash(struct object *obj, struct object **hash, unsigned int size)
|
||||
{
|
||||
unsigned int j = hash_obj(obj->sha1, size);
|
||||
unsigned int j = hash_obj(obj->oid.hash, size);
|
||||
|
||||
while (hash[j]) {
|
||||
j++;
|
||||
|
@ -92,7 +92,7 @@ struct object *lookup_object(const unsigned char *sha1)
|
|||
|
||||
first = i = hash_obj(sha1, obj_hash_size);
|
||||
while ((obj = obj_hash[i]) != NULL) {
|
||||
if (!hashcmp(sha1, obj->sha1))
|
||||
if (!hashcmp(sha1, obj->oid.hash))
|
||||
break;
|
||||
i++;
|
||||
if (i == obj_hash_size)
|
||||
|
@ -145,7 +145,7 @@ void *create_object(const unsigned char *sha1, void *o)
|
|||
obj->parsed = 0;
|
||||
obj->used = 0;
|
||||
obj->flags = 0;
|
||||
hashcpy(obj->sha1, sha1);
|
||||
hashcpy(obj->oid.hash, sha1);
|
||||
|
||||
if (obj_hash_size - 1 <= nr_objs * 2)
|
||||
grow_object_hash();
|
||||
|
@ -168,7 +168,7 @@ void *object_as_type(struct object *obj, enum object_type type, int quiet)
|
|||
else {
|
||||
if (!quiet)
|
||||
error("object %s is a %s, not a %s",
|
||||
sha1_to_hex(obj->sha1),
|
||||
oid_to_hex(&obj->oid),
|
||||
typename(obj->type), typename(type));
|
||||
return NULL;
|
||||
}
|
||||
|
|
2
object.h
2
object.h
|
@ -49,7 +49,7 @@ struct object {
|
|||
unsigned used : 1;
|
||||
unsigned type : TYPE_BITS;
|
||||
unsigned flags : FLAG_BITS;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
};
|
||||
|
||||
extern const char *typename(unsigned int type);
|
||||
|
|
|
@ -152,7 +152,7 @@ static void show_object(struct object *object, const struct name_path *path,
|
|||
const char *last, void *data)
|
||||
{
|
||||
struct bitmap *base = data;
|
||||
bitmap_set(base, find_object_pos(object->sha1));
|
||||
bitmap_set(base, find_object_pos(object->oid.hash));
|
||||
mark_as_seen(object);
|
||||
}
|
||||
|
||||
|
@ -165,12 +165,12 @@ static int
|
|||
add_to_include_set(struct bitmap *base, struct commit *commit)
|
||||
{
|
||||
khiter_t hash_pos;
|
||||
uint32_t bitmap_pos = find_object_pos(commit->object.sha1);
|
||||
uint32_t bitmap_pos = find_object_pos(commit->object.oid.hash);
|
||||
|
||||
if (bitmap_get(base, bitmap_pos))
|
||||
return 0;
|
||||
|
||||
hash_pos = kh_get_sha1(writer.bitmaps, commit->object.sha1);
|
||||
hash_pos = kh_get_sha1(writer.bitmaps, commit->object.oid.hash);
|
||||
if (hash_pos < kh_end(writer.bitmaps)) {
|
||||
struct bitmapped_commit *bc = kh_value(writer.bitmaps, hash_pos);
|
||||
bitmap_or_ewah(base, bc->bitmap);
|
||||
|
@ -308,10 +308,10 @@ void bitmap_writer_build(struct packing_data *to_pack)
|
|||
if (i >= reuse_after)
|
||||
stored->flags |= BITMAP_FLAG_REUSE;
|
||||
|
||||
hash_pos = kh_put_sha1(writer.bitmaps, object->sha1, &hash_ret);
|
||||
hash_pos = kh_put_sha1(writer.bitmaps, object->oid.hash, &hash_ret);
|
||||
if (hash_ret == 0)
|
||||
die("Duplicate entry when writing index: %s",
|
||||
sha1_to_hex(object->sha1));
|
||||
oid_to_hex(&object->oid));
|
||||
|
||||
kh_value(writer.bitmaps, hash_pos) = stored;
|
||||
display_progress(writer.progress, writer.selected_nr - i);
|
||||
|
@ -414,14 +414,14 @@ void bitmap_writer_select_commits(struct commit **indexed_commits,
|
|||
|
||||
if (next == 0) {
|
||||
chosen = indexed_commits[i];
|
||||
reused_bitmap = find_reused_bitmap(chosen->object.sha1);
|
||||
reused_bitmap = find_reused_bitmap(chosen->object.oid.hash);
|
||||
} else {
|
||||
chosen = indexed_commits[i + next];
|
||||
|
||||
for (j = 0; j <= next; ++j) {
|
||||
struct commit *cm = indexed_commits[i + j];
|
||||
|
||||
reused_bitmap = find_reused_bitmap(cm->object.sha1);
|
||||
reused_bitmap = find_reused_bitmap(cm->object.oid.hash);
|
||||
if (reused_bitmap || (cm->object.flags & NEEDS_BITMAP) != 0) {
|
||||
chosen = cm;
|
||||
break;
|
||||
|
@ -474,7 +474,7 @@ static void write_selected_commits_v1(struct sha1file *f,
|
|||
struct bitmapped_commit *stored = &writer.selected[i];
|
||||
|
||||
int commit_pos =
|
||||
sha1_pos(stored->commit->object.sha1, index, index_nr, sha1_access);
|
||||
sha1_pos(stored->commit->object.oid.hash, index, index_nr, sha1_access);
|
||||
|
||||
if (commit_pos < 0)
|
||||
die("BUG: trying to write commit not in index");
|
||||
|
|
|
@ -397,7 +397,7 @@ static int ext_index_add_object(struct object *object, const char *name)
|
|||
int hash_ret;
|
||||
int bitmap_pos;
|
||||
|
||||
hash_pos = kh_put_sha1_pos(eindex->positions, object->sha1, &hash_ret);
|
||||
hash_pos = kh_put_sha1_pos(eindex->positions, object->oid.hash, &hash_ret);
|
||||
if (hash_ret > 0) {
|
||||
if (eindex->count >= eindex->alloc) {
|
||||
eindex->alloc = (eindex->alloc + 16) * 3 / 2;
|
||||
|
@ -423,7 +423,7 @@ static void show_object(struct object *object, const struct name_path *path,
|
|||
struct bitmap *base = data;
|
||||
int bitmap_pos;
|
||||
|
||||
bitmap_pos = bitmap_position(object->sha1);
|
||||
bitmap_pos = bitmap_position(object->oid.hash);
|
||||
|
||||
if (bitmap_pos < 0) {
|
||||
char *name = path_name(path, last);
|
||||
|
@ -466,11 +466,11 @@ static int should_include(struct commit *commit, void *_data)
|
|||
struct include_data *data = _data;
|
||||
int bitmap_pos;
|
||||
|
||||
bitmap_pos = bitmap_position(commit->object.sha1);
|
||||
bitmap_pos = bitmap_position(commit->object.oid.hash);
|
||||
if (bitmap_pos < 0)
|
||||
bitmap_pos = ext_index_add_object((struct object *)commit, NULL);
|
||||
|
||||
if (!add_to_include_set(data, commit->object.sha1, bitmap_pos)) {
|
||||
if (!add_to_include_set(data, commit->object.oid.hash, bitmap_pos)) {
|
||||
struct commit_list *parent = commit->parents;
|
||||
|
||||
while (parent) {
|
||||
|
@ -506,7 +506,7 @@ static struct bitmap *find_objects(struct rev_info *revs,
|
|||
roots = roots->next;
|
||||
|
||||
if (object->type == OBJ_COMMIT) {
|
||||
khiter_t pos = kh_get_sha1(bitmap_git.bitmaps, object->sha1);
|
||||
khiter_t pos = kh_get_sha1(bitmap_git.bitmaps, object->oid.hash);
|
||||
|
||||
if (pos < kh_end(bitmap_git.bitmaps)) {
|
||||
struct stored_bitmap *st = kh_value(bitmap_git.bitmaps, pos);
|
||||
|
@ -548,7 +548,7 @@ static struct bitmap *find_objects(struct rev_info *revs,
|
|||
int pos;
|
||||
|
||||
roots = roots->next;
|
||||
pos = bitmap_position(object->sha1);
|
||||
pos = bitmap_position(object->oid.hash);
|
||||
|
||||
if (pos < 0 || base == NULL || !bitmap_get(base, pos)) {
|
||||
object->flags &= ~UNINTERESTING;
|
||||
|
@ -593,7 +593,7 @@ static void show_extended_objects(struct bitmap *objects,
|
|||
continue;
|
||||
|
||||
obj = eindex->objects[i];
|
||||
show_reach(obj->sha1, obj->type, 0, eindex->hashes[i], NULL, 0);
|
||||
show_reach(obj->oid.hash, obj->type, 0, eindex->hashes[i], NULL, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -650,7 +650,7 @@ static int in_bitmapped_pack(struct object_list *roots)
|
|||
struct object *object = roots->item;
|
||||
roots = roots->next;
|
||||
|
||||
if (find_pack_entry_one(object->sha1, bitmap_git.pack) > 0)
|
||||
if (find_pack_entry_one(object->oid.hash, bitmap_git.pack) > 0)
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -680,7 +680,7 @@ int prepare_bitmap_walk(struct rev_info *revs)
|
|||
struct object *object = pending_e[i].item;
|
||||
|
||||
if (object->type == OBJ_NONE)
|
||||
parse_object_or_die(object->sha1, NULL);
|
||||
parse_object_or_die(object->oid.hash, NULL);
|
||||
|
||||
while (object->type == OBJ_TAG) {
|
||||
struct tag *tag = (struct tag *) object;
|
||||
|
@ -692,7 +692,7 @@ int prepare_bitmap_walk(struct rev_info *revs)
|
|||
|
||||
if (!tag->tagged)
|
||||
die("bad tag");
|
||||
object = parse_object_or_die(tag->tagged->sha1, NULL);
|
||||
object = parse_object_or_die(tag->tagged->oid.hash, NULL);
|
||||
}
|
||||
|
||||
if (object->flags & UNINTERESTING)
|
||||
|
@ -904,9 +904,9 @@ static void test_show_object(struct object *object,
|
|||
struct bitmap_test_data *tdata = data;
|
||||
int bitmap_pos;
|
||||
|
||||
bitmap_pos = bitmap_position(object->sha1);
|
||||
bitmap_pos = bitmap_position(object->oid.hash);
|
||||
if (bitmap_pos < 0)
|
||||
die("Object not in bitmap: %s\n", sha1_to_hex(object->sha1));
|
||||
die("Object not in bitmap: %s\n", oid_to_hex(&object->oid));
|
||||
|
||||
bitmap_set(tdata->base, bitmap_pos);
|
||||
display_progress(tdata->prg, ++tdata->seen);
|
||||
|
@ -917,9 +917,9 @@ static void test_show_commit(struct commit *commit, void *data)
|
|||
struct bitmap_test_data *tdata = data;
|
||||
int bitmap_pos;
|
||||
|
||||
bitmap_pos = bitmap_position(commit->object.sha1);
|
||||
bitmap_pos = bitmap_position(commit->object.oid.hash);
|
||||
if (bitmap_pos < 0)
|
||||
die("Object not in bitmap: %s\n", sha1_to_hex(commit->object.sha1));
|
||||
die("Object not in bitmap: %s\n", oid_to_hex(&commit->object.oid));
|
||||
|
||||
bitmap_set(tdata->base, bitmap_pos);
|
||||
display_progress(tdata->prg, ++tdata->seen);
|
||||
|
@ -943,20 +943,20 @@ void test_bitmap_walk(struct rev_info *revs)
|
|||
bitmap_git.version, bitmap_git.entry_count);
|
||||
|
||||
root = revs->pending.objects[0].item;
|
||||
pos = kh_get_sha1(bitmap_git.bitmaps, root->sha1);
|
||||
pos = kh_get_sha1(bitmap_git.bitmaps, root->oid.hash);
|
||||
|
||||
if (pos < kh_end(bitmap_git.bitmaps)) {
|
||||
struct stored_bitmap *st = kh_value(bitmap_git.bitmaps, pos);
|
||||
struct ewah_bitmap *bm = lookup_stored_bitmap(st);
|
||||
|
||||
fprintf(stderr, "Found bitmap for %s. %d bits / %08x checksum\n",
|
||||
sha1_to_hex(root->sha1), (int)bm->bit_size, ewah_checksum(bm));
|
||||
oid_to_hex(&root->oid), (int)bm->bit_size, ewah_checksum(bm));
|
||||
|
||||
result = ewah_to_bitmap(bm);
|
||||
}
|
||||
|
||||
if (result == NULL)
|
||||
die("Commit %s doesn't have an indexed bitmap", sha1_to_hex(root->sha1));
|
||||
die("Commit %s doesn't have an indexed bitmap", oid_to_hex(&root->oid));
|
||||
|
||||
revs->tag_objects = 1;
|
||||
revs->tree_objects = 1;
|
||||
|
|
|
@ -8,10 +8,10 @@ static int commit_patch_id(struct commit *commit, struct diff_options *options,
|
|||
unsigned char *sha1)
|
||||
{
|
||||
if (commit->parents)
|
||||
diff_tree_sha1(commit->parents->item->object.sha1,
|
||||
commit->object.sha1, "", options);
|
||||
diff_tree_sha1(commit->parents->item->object.oid.hash,
|
||||
commit->object.oid.hash, "", options);
|
||||
else
|
||||
diff_root_tree_sha1(commit->object.sha1, "", options);
|
||||
diff_root_tree_sha1(commit->object.oid.hash, "", options);
|
||||
diffcore_std(options);
|
||||
return diff_flush_patch_id(options, sha1);
|
||||
}
|
||||
|
|
18
pretty.c
18
pretty.c
|
@ -543,9 +543,9 @@ static void add_merge_info(const struct pretty_print_context *pp,
|
|||
struct commit *p = parent->item;
|
||||
const char *hex = NULL;
|
||||
if (pp->abbrev)
|
||||
hex = find_unique_abbrev(p->object.sha1, pp->abbrev);
|
||||
hex = find_unique_abbrev(p->object.oid.hash, pp->abbrev);
|
||||
if (!hex)
|
||||
hex = sha1_to_hex(p->object.sha1);
|
||||
hex = oid_to_hex(&p->object.oid);
|
||||
parent = parent->next;
|
||||
|
||||
strbuf_addf(sb, " %s", hex);
|
||||
|
@ -1119,12 +1119,12 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
|
|||
|
||||
/* these depend on the commit */
|
||||
if (!commit->object.parsed)
|
||||
parse_object(commit->object.sha1);
|
||||
parse_object(commit->object.oid.hash);
|
||||
|
||||
switch (placeholder[0]) {
|
||||
case 'H': /* commit hash */
|
||||
strbuf_addstr(sb, diff_get_color(c->auto_color, DIFF_COMMIT));
|
||||
strbuf_addstr(sb, sha1_to_hex(commit->object.sha1));
|
||||
strbuf_addstr(sb, oid_to_hex(&commit->object.oid));
|
||||
strbuf_addstr(sb, diff_get_color(c->auto_color, DIFF_RESET));
|
||||
return 1;
|
||||
case 'h': /* abbreviated commit hash */
|
||||
|
@ -1133,18 +1133,18 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
|
|||
strbuf_addstr(sb, diff_get_color(c->auto_color, DIFF_RESET));
|
||||
return 1;
|
||||
}
|
||||
strbuf_addstr(sb, find_unique_abbrev(commit->object.sha1,
|
||||
strbuf_addstr(sb, find_unique_abbrev(commit->object.oid.hash,
|
||||
c->pretty_ctx->abbrev));
|
||||
strbuf_addstr(sb, diff_get_color(c->auto_color, DIFF_RESET));
|
||||
c->abbrev_commit_hash.len = sb->len - c->abbrev_commit_hash.off;
|
||||
return 1;
|
||||
case 'T': /* tree hash */
|
||||
strbuf_addstr(sb, sha1_to_hex(commit->tree->object.sha1));
|
||||
strbuf_addstr(sb, oid_to_hex(&commit->tree->object.oid));
|
||||
return 1;
|
||||
case 't': /* abbreviated tree hash */
|
||||
if (add_again(sb, &c->abbrev_tree_hash))
|
||||
return 1;
|
||||
strbuf_addstr(sb, find_unique_abbrev(commit->tree->object.sha1,
|
||||
strbuf_addstr(sb, find_unique_abbrev(commit->tree->object.oid.hash,
|
||||
c->pretty_ctx->abbrev));
|
||||
c->abbrev_tree_hash.len = sb->len - c->abbrev_tree_hash.off;
|
||||
return 1;
|
||||
|
@ -1152,7 +1152,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
|
|||
for (p = commit->parents; p; p = p->next) {
|
||||
if (p != commit->parents)
|
||||
strbuf_addch(sb, ' ');
|
||||
strbuf_addstr(sb, sha1_to_hex(p->item->object.sha1));
|
||||
strbuf_addstr(sb, oid_to_hex(&p->item->object.oid));
|
||||
}
|
||||
return 1;
|
||||
case 'p': /* abbreviated parent hashes */
|
||||
|
@ -1162,7 +1162,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
|
|||
if (p != commit->parents)
|
||||
strbuf_addch(sb, ' ');
|
||||
strbuf_addstr(sb, find_unique_abbrev(
|
||||
p->item->object.sha1,
|
||||
p->item->object.oid.hash,
|
||||
c->pretty_ctx->abbrev));
|
||||
}
|
||||
c->abbrev_parent_hashes.len = sb->len -
|
||||
|
|
14
ref-filter.c
14
ref-filter.c
|
@ -372,7 +372,7 @@ static void grab_common_values(struct atom_value *val, int deref, struct object
|
|||
v->s = xstrfmt("%lu", sz);
|
||||
}
|
||||
else if (deref)
|
||||
grab_objectname(name, obj->sha1, v);
|
||||
grab_objectname(name, obj->oid.hash, v);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -394,7 +394,7 @@ static void grab_tag_values(struct atom_value *val, int deref, struct object *ob
|
|||
else if (!strcmp(name, "type") && tag->tagged)
|
||||
v->s = typename(tag->tagged->type);
|
||||
else if (!strcmp(name, "object") && tag->tagged)
|
||||
v->s = xstrdup(sha1_to_hex(tag->tagged->sha1));
|
||||
v->s = xstrdup(oid_to_hex(&tag->tagged->oid));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -412,7 +412,7 @@ static void grab_commit_values(struct atom_value *val, int deref, struct object
|
|||
if (deref)
|
||||
name++;
|
||||
if (!strcmp(name, "tree")) {
|
||||
v->s = xstrdup(sha1_to_hex(commit->tree->object.sha1));
|
||||
v->s = xstrdup(oid_to_hex(&commit->tree->object.oid));
|
||||
}
|
||||
else if (!strcmp(name, "numparent")) {
|
||||
v->ul = commit_list_count(commit->parents);
|
||||
|
@ -425,7 +425,7 @@ static void grab_commit_values(struct atom_value *val, int deref, struct object
|
|||
struct commit *parent = parents->item;
|
||||
if (parents != commit->parents)
|
||||
strbuf_addch(&s, ' ');
|
||||
strbuf_addstr(&s, sha1_to_hex(parent->object.sha1));
|
||||
strbuf_addstr(&s, oid_to_hex(&parent->object.oid));
|
||||
}
|
||||
v->s = strbuf_detach(&s, NULL);
|
||||
}
|
||||
|
@ -992,7 +992,7 @@ static void populate_value(struct ref_array_item *ref)
|
|||
* If it is a tag object, see if we use a value that derefs
|
||||
* the object, and if we do grab the object it refers to.
|
||||
*/
|
||||
tagged = ((struct tag *)obj)->tagged->sha1;
|
||||
tagged = ((struct tag *)obj)->tagged->oid.hash;
|
||||
|
||||
/*
|
||||
* NEEDSWORK: This derefs tag only once, which
|
||||
|
@ -1049,7 +1049,7 @@ struct contains_stack {
|
|||
static int in_commit_list(const struct commit_list *want, struct commit *c)
|
||||
{
|
||||
for (; want; want = want->next)
|
||||
if (!hashcmp(want->item->object.sha1, c->object.sha1))
|
||||
if (!oidcmp(&want->item->object.oid, &c->object.oid))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
@ -1218,7 +1218,7 @@ static const unsigned char *match_points_at(struct sha1_array *points_at,
|
|||
if (!obj)
|
||||
die(_("malformed object at '%s'"), refname);
|
||||
if (obj->type == OBJ_TAG)
|
||||
tagged_sha1 = ((struct tag *)obj)->tagged->sha1;
|
||||
tagged_sha1 = ((struct tag *)obj)->tagged->oid.hash;
|
||||
if (tagged_sha1 && sha1_array_lookup(points_at, tagged_sha1) >= 0)
|
||||
return tagged_sha1;
|
||||
return NULL;
|
||||
|
|
2
refs.c
2
refs.c
|
@ -201,7 +201,7 @@ enum peel_status peel_object(const unsigned char *name, unsigned char *sha1)
|
|||
if (!o)
|
||||
return PEEL_INVALID;
|
||||
|
||||
hashcpy(sha1, o->sha1);
|
||||
hashcpy(sha1, o->oid.hash);
|
||||
return PEEL_PEELED;
|
||||
}
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ static struct ref *parse_info_refs(struct discovery *heads)
|
|||
data[i] = 0;
|
||||
ref_name = mid + 1;
|
||||
ref = alloc_ref(ref_name);
|
||||
get_sha1_hex(start, ref->old_sha1);
|
||||
get_oid_hex(start, &ref->old_oid);
|
||||
if (!refs)
|
||||
refs = ref;
|
||||
if (last_ref)
|
||||
|
@ -348,7 +348,7 @@ static void output_refs(struct ref *refs)
|
|||
if (posn->symref)
|
||||
printf("@%s %s\n", posn->symref, posn->name);
|
||||
else
|
||||
printf("%s %s\n", sha1_to_hex(posn->old_sha1), posn->name);
|
||||
printf("%s %s\n", oid_to_hex(&posn->old_oid), posn->name);
|
||||
}
|
||||
printf("\n");
|
||||
fflush(stdout);
|
||||
|
@ -702,7 +702,7 @@ static int fetch_dumb(int nr_heads, struct ref **to_fetch)
|
|||
if (options.depth)
|
||||
die("dumb http transport does not support --depth");
|
||||
for (i = 0; i < nr_heads; i++)
|
||||
targets[i] = xstrdup(sha1_to_hex(to_fetch[i]->old_sha1));
|
||||
targets[i] = xstrdup(oid_to_hex(&to_fetch[i]->old_oid));
|
||||
|
||||
walker = get_http_walker(url.buf);
|
||||
walker->get_all = 1;
|
||||
|
@ -763,7 +763,7 @@ static int fetch_git(struct discovery *heads,
|
|||
if (!*ref->name)
|
||||
die("cannot fetch by sha1 over smart http");
|
||||
packet_buf_write(&preamble, "%s %s\n",
|
||||
sha1_to_hex(ref->old_sha1), ref->name);
|
||||
oid_to_hex(&ref->old_oid), ref->name);
|
||||
}
|
||||
packet_buf_flush(&preamble);
|
||||
|
||||
|
@ -803,19 +803,19 @@ static void parse_fetch(struct strbuf *buf)
|
|||
if (skip_prefix(buf->buf, "fetch ", &p)) {
|
||||
const char *name;
|
||||
struct ref *ref;
|
||||
unsigned char old_sha1[20];
|
||||
struct object_id old_oid;
|
||||
|
||||
if (strlen(p) < 40 || get_sha1_hex(p, old_sha1))
|
||||
if (get_oid_hex(p, &old_oid))
|
||||
die("protocol error: expected sha/ref, got %s'", p);
|
||||
if (p[40] == ' ')
|
||||
name = p + 41;
|
||||
else if (!p[40])
|
||||
if (p[GIT_SHA1_HEXSZ] == ' ')
|
||||
name = p + GIT_SHA1_HEXSZ + 1;
|
||||
else if (!p[GIT_SHA1_HEXSZ])
|
||||
name = "";
|
||||
else
|
||||
die("protocol error: expected sha/ref, got %s'", p);
|
||||
|
||||
ref = alloc_ref(name);
|
||||
hashcpy(ref->old_sha1, old_sha1);
|
||||
oidcpy(&ref->old_oid, &old_oid);
|
||||
|
||||
*list = ref;
|
||||
list = &ref->next;
|
||||
|
|
116
remote.c
116
remote.c
|
@ -456,7 +456,7 @@ static void alias_all_urls(void)
|
|||
static void read_config(void)
|
||||
{
|
||||
static int loaded;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
const char *head_ref;
|
||||
int flag;
|
||||
|
||||
|
@ -465,7 +465,7 @@ static void read_config(void)
|
|||
loaded = 1;
|
||||
|
||||
current_branch = NULL;
|
||||
head_ref = resolve_ref_unsafe("HEAD", 0, sha1, &flag);
|
||||
head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag);
|
||||
if (head_ref && (flag & REF_ISSYMREF) &&
|
||||
skip_prefix(head_ref, "refs/heads/", &head_ref)) {
|
||||
current_branch = make_branch(head_ref, 0);
|
||||
|
@ -544,12 +544,12 @@ static struct refspec *parse_refspec_internal(int nr_refspec, const char **refsp
|
|||
flags = REFNAME_ALLOW_ONELEVEL | (is_glob ? REFNAME_REFSPEC_PATTERN : 0);
|
||||
|
||||
if (fetch) {
|
||||
unsigned char unused[40];
|
||||
struct object_id unused;
|
||||
|
||||
/* LHS */
|
||||
if (!*rs[i].src)
|
||||
; /* empty is ok; it means "HEAD" */
|
||||
else if (llen == 40 && !get_sha1_hex(rs[i].src, unused))
|
||||
else if (llen == GIT_SHA1_HEXSZ && !get_oid_hex(rs[i].src, &unused))
|
||||
rs[i].exact_sha1 = 1; /* ok */
|
||||
else if (!check_refname_format(rs[i].src, flags))
|
||||
; /* valid looking ref is ok */
|
||||
|
@ -1075,14 +1075,14 @@ static void tail_link_ref(struct ref *ref, struct ref ***tail)
|
|||
static struct ref *alloc_delete_ref(void)
|
||||
{
|
||||
struct ref *ref = alloc_ref("(delete)");
|
||||
hashclr(ref->new_sha1);
|
||||
oidclr(&ref->new_oid);
|
||||
return ref;
|
||||
}
|
||||
|
||||
static int try_explicit_object_name(const char *name,
|
||||
struct ref **match)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
|
||||
if (!*name) {
|
||||
if (match)
|
||||
|
@ -1090,12 +1090,12 @@ static int try_explicit_object_name(const char *name,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (get_sha1(name, sha1))
|
||||
if (get_sha1(name, oid.hash))
|
||||
return -1;
|
||||
|
||||
if (match) {
|
||||
*match = alloc_ref(name);
|
||||
hashcpy((*match)->new_sha1, sha1);
|
||||
oidcpy(&(*match)->new_oid, &oid);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -1110,10 +1110,10 @@ static struct ref *make_linked_ref(const char *name, struct ref ***tail)
|
|||
static char *guess_ref(const char *name, struct ref *peer)
|
||||
{
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
|
||||
const char *r = resolve_ref_unsafe(peer->name, RESOLVE_REF_READING,
|
||||
sha1, NULL);
|
||||
oid.hash, NULL);
|
||||
if (!r)
|
||||
return NULL;
|
||||
|
||||
|
@ -1171,12 +1171,12 @@ static int match_explicit(struct ref *src, struct ref *dst,
|
|||
return -1;
|
||||
|
||||
if (!dst_value) {
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
int flag;
|
||||
|
||||
dst_value = resolve_ref_unsafe(matched_src->name,
|
||||
RESOLVE_REF_READING,
|
||||
sha1, &flag);
|
||||
oid.hash, &flag);
|
||||
if (!dst_value ||
|
||||
((flag & REF_ISSYMREF) &&
|
||||
!starts_with(dst_value, "refs/heads/")))
|
||||
|
@ -1190,7 +1190,7 @@ static int match_explicit(struct ref *src, struct ref *dst,
|
|||
case 0:
|
||||
if (starts_with(dst_value, "refs/"))
|
||||
matched_dst = make_linked_ref(dst_value, dst_tail);
|
||||
else if (is_null_sha1(matched_src->new_sha1))
|
||||
else if (is_null_oid(&matched_src->new_oid))
|
||||
error("unable to delete '%s': remote ref does not exist",
|
||||
dst_value);
|
||||
else if ((dst_guess = guess_ref(dst_value, matched_src)))
|
||||
|
@ -1292,13 +1292,13 @@ struct tips {
|
|||
int nr, alloc;
|
||||
};
|
||||
|
||||
static void add_to_tips(struct tips *tips, const unsigned char *sha1)
|
||||
static void add_to_tips(struct tips *tips, const struct object_id *oid)
|
||||
{
|
||||
struct commit *commit;
|
||||
|
||||
if (is_null_sha1(sha1))
|
||||
if (is_null_oid(oid))
|
||||
return;
|
||||
commit = lookup_commit_reference_gently(sha1, 1);
|
||||
commit = lookup_commit_reference_gently(oid->hash, 1);
|
||||
if (!commit || (commit->object.flags & TMP_MARK))
|
||||
return;
|
||||
commit->object.flags |= TMP_MARK;
|
||||
|
@ -1321,10 +1321,10 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
|||
memset(&sent_tips, 0, sizeof(sent_tips));
|
||||
for (ref = *dst; ref; ref = ref->next) {
|
||||
if (ref->peer_ref &&
|
||||
!is_null_sha1(ref->peer_ref->new_sha1))
|
||||
add_to_tips(&sent_tips, ref->peer_ref->new_sha1);
|
||||
!is_null_oid(&ref->peer_ref->new_oid))
|
||||
add_to_tips(&sent_tips, &ref->peer_ref->new_oid);
|
||||
else
|
||||
add_to_tips(&sent_tips, ref->old_sha1);
|
||||
add_to_tips(&sent_tips, &ref->old_oid);
|
||||
if (starts_with(ref->name, "refs/tags/"))
|
||||
string_list_append(&dst_tag, ref->name);
|
||||
}
|
||||
|
@ -1338,7 +1338,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
|||
continue; /* not a tag */
|
||||
if (string_list_has_string(&dst_tag, ref->name))
|
||||
continue; /* they already have it */
|
||||
if (sha1_object_info(ref->new_sha1, NULL) != OBJ_TAG)
|
||||
if (sha1_object_info(ref->new_oid.hash, NULL) != OBJ_TAG)
|
||||
continue; /* be conservative */
|
||||
item = string_list_append(&src_tag, ref->name);
|
||||
item->util = ref;
|
||||
|
@ -1358,9 +1358,9 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
|||
struct ref *dst_ref;
|
||||
struct commit *commit;
|
||||
|
||||
if (is_null_sha1(ref->new_sha1))
|
||||
if (is_null_oid(&ref->new_oid))
|
||||
continue;
|
||||
commit = lookup_commit_reference_gently(ref->new_sha1, 1);
|
||||
commit = lookup_commit_reference_gently(ref->new_oid.hash, 1);
|
||||
if (!commit)
|
||||
/* not pushing a commit, which is not an error */
|
||||
continue;
|
||||
|
@ -1374,7 +1374,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
|||
|
||||
/* Add it in */
|
||||
dst_ref = make_linked_ref(ref->name, dst_tail);
|
||||
hashcpy(dst_ref->new_sha1, ref->new_sha1);
|
||||
oidcpy(&dst_ref->new_oid, &ref->new_oid);
|
||||
dst_ref->peer_ref = copy_ref(ref);
|
||||
}
|
||||
}
|
||||
|
@ -1481,7 +1481,7 @@ int match_push_refs(struct ref *src, struct ref **dst,
|
|||
|
||||
/* Create a new one and link it */
|
||||
dst_peer = make_linked_ref(dst_name, &dst_tail);
|
||||
hashcpy(dst_peer->new_sha1, ref->new_sha1);
|
||||
oidcpy(&dst_peer->new_oid, &ref->new_oid);
|
||||
string_list_insert(&dst_ref_index,
|
||||
dst_peer->name)->util = dst_peer;
|
||||
}
|
||||
|
@ -1533,13 +1533,13 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
|
|||
int reject_reason = 0;
|
||||
|
||||
if (ref->peer_ref)
|
||||
hashcpy(ref->new_sha1, ref->peer_ref->new_sha1);
|
||||
oidcpy(&ref->new_oid, &ref->peer_ref->new_oid);
|
||||
else if (!send_mirror)
|
||||
continue;
|
||||
|
||||
ref->deletion = is_null_sha1(ref->new_sha1);
|
||||
ref->deletion = is_null_oid(&ref->new_oid);
|
||||
if (!ref->deletion &&
|
||||
!hashcmp(ref->old_sha1, ref->new_sha1)) {
|
||||
!oidcmp(&ref->old_oid, &ref->new_oid)) {
|
||||
ref->status = REF_STATUS_UPTODATE;
|
||||
continue;
|
||||
}
|
||||
|
@ -1558,7 +1558,7 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
|
|||
*/
|
||||
if (ref->expect_old_sha1) {
|
||||
if (ref->expect_old_no_trackback ||
|
||||
hashcmp(ref->old_sha1, ref->old_sha1_expect))
|
||||
oidcmp(&ref->old_oid, &ref->old_oid_expect))
|
||||
reject_reason = REF_STATUS_REJECT_STALE;
|
||||
}
|
||||
|
||||
|
@ -1582,15 +1582,15 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
|
|||
* passing the --force argument
|
||||
*/
|
||||
|
||||
else if (!ref->deletion && !is_null_sha1(ref->old_sha1)) {
|
||||
else if (!ref->deletion && !is_null_oid(&ref->old_oid)) {
|
||||
if (starts_with(ref->name, "refs/tags/"))
|
||||
reject_reason = REF_STATUS_REJECT_ALREADY_EXISTS;
|
||||
else if (!has_sha1_file(ref->old_sha1))
|
||||
else if (!has_object_file(&ref->old_oid))
|
||||
reject_reason = REF_STATUS_REJECT_FETCH_FIRST;
|
||||
else if (!lookup_commit_reference_gently(ref->old_sha1, 1) ||
|
||||
!lookup_commit_reference_gently(ref->new_sha1, 1))
|
||||
else if (!lookup_commit_reference_gently(ref->old_oid.hash, 1) ||
|
||||
!lookup_commit_reference_gently(ref->new_oid.hash, 1))
|
||||
reject_reason = REF_STATUS_REJECT_NEEDS_FORCE;
|
||||
else if (!ref_newer(ref->new_sha1, ref->old_sha1))
|
||||
else if (!ref_newer(&ref->new_oid, &ref->old_oid))
|
||||
reject_reason = REF_STATUS_REJECT_NONFASTFORWARD;
|
||||
}
|
||||
|
||||
|
@ -1609,7 +1609,7 @@ static void set_merge(struct branch *ret)
|
|||
{
|
||||
struct remote *remote;
|
||||
char *ref;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
int i;
|
||||
|
||||
if (!ret)
|
||||
|
@ -1635,7 +1635,7 @@ static void set_merge(struct branch *ret)
|
|||
strcmp(ret->remote_name, "."))
|
||||
continue;
|
||||
if (dwim_ref(ret->merge_name[i], strlen(ret->merge_name[i]),
|
||||
sha1, &ref) == 1)
|
||||
oid.hash, &ref) == 1)
|
||||
ret->merge[i]->dst = ref;
|
||||
else
|
||||
ret->merge[i]->dst = xstrdup(ret->merge_name[i]);
|
||||
|
@ -1795,10 +1795,10 @@ const char *branch_get_push(struct branch *branch, struct strbuf *err)
|
|||
|
||||
static int ignore_symref_update(const char *refname)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
int flag;
|
||||
|
||||
if (!resolve_ref_unsafe(refname, 0, sha1, &flag))
|
||||
if (!resolve_ref_unsafe(refname, 0, oid.hash, &flag))
|
||||
return 0; /* non-existing refs are OK */
|
||||
return (flag & REF_ISSYMREF);
|
||||
}
|
||||
|
@ -1889,7 +1889,7 @@ int get_fetch_map(const struct ref *remote_refs,
|
|||
|
||||
if (refspec->exact_sha1) {
|
||||
ref_map = alloc_ref(name);
|
||||
get_sha1_hex(name, ref_map->old_sha1);
|
||||
get_oid_hex(name, &ref_map->old_oid);
|
||||
} else {
|
||||
ref_map = get_remote_ref(remote_refs, name);
|
||||
}
|
||||
|
@ -1930,7 +1930,7 @@ int resolve_remote_symref(struct ref *ref, struct ref *list)
|
|||
return 0;
|
||||
for (; list; list = list->next)
|
||||
if (!strcmp(ref->symref, list->name)) {
|
||||
hashcpy(ref->old_sha1, list->old_sha1);
|
||||
oidcpy(&ref->old_oid, &list->old_oid);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
|
@ -1944,7 +1944,7 @@ static void unmark_and_free(struct commit_list *list, unsigned int mark)
|
|||
}
|
||||
}
|
||||
|
||||
int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1)
|
||||
int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid)
|
||||
{
|
||||
struct object *o;
|
||||
struct commit *old, *new;
|
||||
|
@ -1955,12 +1955,12 @@ int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1)
|
|||
* Both new and old must be commit-ish and new is descendant of
|
||||
* old. Otherwise we require --force.
|
||||
*/
|
||||
o = deref_tag(parse_object(old_sha1), NULL, 0);
|
||||
o = deref_tag(parse_object(old_oid->hash), NULL, 0);
|
||||
if (!o || o->type != OBJ_COMMIT)
|
||||
return 0;
|
||||
old = (struct commit *) o;
|
||||
|
||||
o = deref_tag(parse_object(new_sha1), NULL, 0);
|
||||
o = deref_tag(parse_object(new_oid->hash), NULL, 0);
|
||||
if (!o || o->type != OBJ_COMMIT)
|
||||
return 0;
|
||||
new = (struct commit *) o;
|
||||
|
@ -1995,7 +1995,7 @@ int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1)
|
|||
int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
|
||||
const char **upstream_name)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
struct commit *ours, *theirs;
|
||||
struct rev_info revs;
|
||||
const char *base;
|
||||
|
@ -2009,15 +2009,15 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
|
|||
return -1;
|
||||
|
||||
/* Cannot stat if what we used to build on no longer exists */
|
||||
if (read_ref(base, sha1))
|
||||
if (read_ref(base, oid.hash))
|
||||
return -1;
|
||||
theirs = lookup_commit_reference(sha1);
|
||||
theirs = lookup_commit_reference(oid.hash);
|
||||
if (!theirs)
|
||||
return -1;
|
||||
|
||||
if (read_ref(branch->refname, sha1))
|
||||
if (read_ref(branch->refname, oid.hash))
|
||||
return -1;
|
||||
ours = lookup_commit_reference(sha1);
|
||||
ours = lookup_commit_reference(oid.hash);
|
||||
if (!ours)
|
||||
return -1;
|
||||
|
||||
|
@ -2031,8 +2031,8 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
|
|||
argv_array_push(&argv, ""); /* ignored */
|
||||
argv_array_push(&argv, "--left-right");
|
||||
argv_array_pushf(&argv, "%s...%s",
|
||||
sha1_to_hex(ours->object.sha1),
|
||||
sha1_to_hex(theirs->object.sha1));
|
||||
oid_to_hex(&ours->object.oid),
|
||||
oid_to_hex(&theirs->object.oid));
|
||||
argv_array_push(&argv, "--");
|
||||
|
||||
init_revisions(&revs, NULL);
|
||||
|
@ -2140,7 +2140,7 @@ static int one_local_ref(const char *refname, const struct object_id *oid,
|
|||
|
||||
len = strlen(refname) + 1;
|
||||
ref = xcalloc(1, sizeof(*ref) + len);
|
||||
hashcpy(ref->new_sha1, oid->hash);
|
||||
oidcpy(&ref->new_oid, oid);
|
||||
memcpy(ref->name, refname, len);
|
||||
**local_tail = ref;
|
||||
*local_tail = &ref->next;
|
||||
|
@ -2177,7 +2177,7 @@ struct ref *guess_remote_head(const struct ref *head,
|
|||
/* If refs/heads/master could be right, it is. */
|
||||
if (!all) {
|
||||
r = find_ref_by_name(refs, "refs/heads/master");
|
||||
if (r && !hashcmp(r->old_sha1, head->old_sha1))
|
||||
if (r && !oidcmp(&r->old_oid, &head->old_oid))
|
||||
return copy_ref(r);
|
||||
}
|
||||
|
||||
|
@ -2185,7 +2185,7 @@ struct ref *guess_remote_head(const struct ref *head,
|
|||
for (r = refs; r; r = r->next) {
|
||||
if (r != head &&
|
||||
starts_with(r->name, "refs/heads/") &&
|
||||
!hashcmp(r->old_sha1, head->old_sha1)) {
|
||||
!oidcmp(&r->old_oid, &head->old_oid)) {
|
||||
*tail = copy_ref(r);
|
||||
tail = &((*tail)->next);
|
||||
if (!all)
|
||||
|
@ -2233,7 +2233,7 @@ static int get_stale_heads_cb(const char *refname, const struct object_id *oid,
|
|||
|
||||
if (stale) {
|
||||
struct ref *ref = make_linked_ref(refname, &info->stale_refs_tail);
|
||||
hashcpy(ref->new_sha1, oid->hash);
|
||||
oidcpy(&ref->new_oid, oid);
|
||||
}
|
||||
|
||||
clean_exit:
|
||||
|
@ -2328,14 +2328,14 @@ int is_empty_cas(const struct push_cas_option *cas)
|
|||
* If we cannot do so, return negative to signal an error.
|
||||
*/
|
||||
static int remote_tracking(struct remote *remote, const char *refname,
|
||||
unsigned char sha1[20])
|
||||
struct object_id *oid)
|
||||
{
|
||||
char *dst;
|
||||
|
||||
dst = apply_refspecs(remote->fetch, remote->fetch_refspec_nr, refname);
|
||||
if (!dst)
|
||||
return -1; /* no tracking ref for refname at remote */
|
||||
if (read_ref(dst, sha1))
|
||||
if (read_ref(dst, oid->hash))
|
||||
return -1; /* we know what the tracking ref is but we cannot read it */
|
||||
return 0;
|
||||
}
|
||||
|
@ -2353,8 +2353,8 @@ static void apply_cas(struct push_cas_option *cas,
|
|||
continue;
|
||||
ref->expect_old_sha1 = 1;
|
||||
if (!entry->use_tracking)
|
||||
hashcpy(ref->old_sha1_expect, cas->entry[i].expect);
|
||||
else if (remote_tracking(remote, ref->name, ref->old_sha1_expect))
|
||||
hashcpy(ref->old_oid_expect.hash, cas->entry[i].expect);
|
||||
else if (remote_tracking(remote, ref->name, &ref->old_oid_expect))
|
||||
ref->expect_old_no_trackback = 1;
|
||||
return;
|
||||
}
|
||||
|
@ -2364,7 +2364,7 @@ static void apply_cas(struct push_cas_option *cas,
|
|||
return;
|
||||
|
||||
ref->expect_old_sha1 = 1;
|
||||
if (remote_tracking(remote, ref->name, ref->old_sha1_expect))
|
||||
if (remote_tracking(remote, ref->name, &ref->old_oid_expect))
|
||||
ref->expect_old_no_trackback = 1;
|
||||
}
|
||||
|
||||
|
|
8
remote.h
8
remote.h
|
@ -79,9 +79,9 @@ extern const struct refspec *tag_refspec;
|
|||
|
||||
struct ref {
|
||||
struct ref *next;
|
||||
unsigned char old_sha1[20];
|
||||
unsigned char new_sha1[20];
|
||||
unsigned char old_sha1_expect[20]; /* used by expect-old */
|
||||
struct object_id old_oid;
|
||||
struct object_id new_oid;
|
||||
struct object_id old_oid_expect; /* used by expect-old */
|
||||
char *symref;
|
||||
unsigned int
|
||||
force:1,
|
||||
|
@ -150,7 +150,7 @@ extern struct ref **get_remote_heads(int in, char *src_buf, size_t src_len,
|
|||
struct sha1_array *shallow);
|
||||
|
||||
int resolve_remote_symref(struct ref *ref, struct ref *list);
|
||||
int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1);
|
||||
int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid);
|
||||
|
||||
/*
|
||||
* Remove and free all but the first of any entries in the input list
|
||||
|
|
48
revision.c
48
revision.c
|
@ -86,7 +86,7 @@ void show_object_with_name(FILE *out, struct object *obj,
|
|||
leaf.elem = component;
|
||||
leaf.elem_len = strlen(component);
|
||||
|
||||
fprintf(out, "%s ", sha1_to_hex(obj->sha1));
|
||||
fprintf(out, "%s ", oid_to_hex(&obj->oid));
|
||||
show_path_truncated(out, &leaf);
|
||||
fputc('\n', out);
|
||||
}
|
||||
|
@ -106,10 +106,10 @@ static void mark_tree_contents_uninteresting(struct tree *tree)
|
|||
struct name_entry entry;
|
||||
struct object *obj = &tree->object;
|
||||
|
||||
if (!has_sha1_file(obj->sha1))
|
||||
if (!has_object_file(&obj->oid))
|
||||
return;
|
||||
if (parse_tree(tree) < 0)
|
||||
die("bad tree %s", sha1_to_hex(obj->sha1));
|
||||
die("bad tree %s", oid_to_hex(&obj->oid));
|
||||
|
||||
init_tree_desc(&desc, tree->buffer, tree->size);
|
||||
while (tree_entry(&desc, &entry)) {
|
||||
|
@ -164,7 +164,7 @@ void mark_parents_uninteresting(struct commit *commit)
|
|||
* it is popped next time around, we won't be trying
|
||||
* to parse it and get an error.
|
||||
*/
|
||||
if (!has_sha1_file(commit->object.sha1))
|
||||
if (!has_object_file(&commit->object.oid))
|
||||
commit->object.parsed = 1;
|
||||
|
||||
if (commit->object.flags & UNINTERESTING)
|
||||
|
@ -282,11 +282,11 @@ static struct commit *handle_commit(struct rev_info *revs,
|
|||
add_pending_object(revs, object, tag->tag);
|
||||
if (!tag->tagged)
|
||||
die("bad tag");
|
||||
object = parse_object(tag->tagged->sha1);
|
||||
object = parse_object(tag->tagged->oid.hash);
|
||||
if (!object) {
|
||||
if (flags & UNINTERESTING)
|
||||
return NULL;
|
||||
die("bad object %s", sha1_to_hex(tag->tagged->sha1));
|
||||
die("bad object %s", oid_to_hex(&tag->tagged->oid));
|
||||
}
|
||||
object->flags |= flags;
|
||||
/*
|
||||
|
@ -510,7 +510,7 @@ static int rev_compare_tree(struct rev_info *revs,
|
|||
|
||||
tree_difference = REV_TREE_SAME;
|
||||
DIFF_OPT_CLR(&revs->pruning, HAS_CHANGES);
|
||||
if (diff_tree_sha1(t1->object.sha1, t2->object.sha1, "",
|
||||
if (diff_tree_sha1(t1->object.oid.hash, t2->object.oid.hash, "",
|
||||
&revs->pruning) < 0)
|
||||
return REV_TREE_DIFFERENT;
|
||||
return tree_difference;
|
||||
|
@ -526,7 +526,7 @@ static int rev_same_tree_as_empty(struct rev_info *revs, struct commit *commit)
|
|||
|
||||
tree_difference = REV_TREE_SAME;
|
||||
DIFF_OPT_CLR(&revs->pruning, HAS_CHANGES);
|
||||
retval = diff_tree_sha1(NULL, t1->object.sha1, "", &revs->pruning);
|
||||
retval = diff_tree_sha1(NULL, t1->object.oid.hash, "", &revs->pruning);
|
||||
|
||||
return retval >= 0 && (tree_difference == REV_TREE_SAME);
|
||||
}
|
||||
|
@ -610,7 +610,7 @@ static unsigned update_treesame(struct rev_info *revs, struct commit *commit)
|
|||
|
||||
st = lookup_decoration(&revs->treesame, &commit->object);
|
||||
if (!st)
|
||||
die("update_treesame %s", sha1_to_hex(commit->object.sha1));
|
||||
die("update_treesame %s", oid_to_hex(&commit->object.oid));
|
||||
relevant_parents = 0;
|
||||
relevant_change = irrelevant_change = 0;
|
||||
for (p = commit->parents, n = 0; p; n++, p = p->next) {
|
||||
|
@ -708,8 +708,8 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
|
|||
}
|
||||
if (parse_commit(p) < 0)
|
||||
die("cannot simplify commit %s (because of %s)",
|
||||
sha1_to_hex(commit->object.sha1),
|
||||
sha1_to_hex(p->object.sha1));
|
||||
oid_to_hex(&commit->object.oid),
|
||||
oid_to_hex(&p->object.oid));
|
||||
switch (rev_compare_tree(revs, p, commit)) {
|
||||
case REV_TREE_SAME:
|
||||
if (!revs->simplify_history || !relevant_commit(p)) {
|
||||
|
@ -741,8 +741,8 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
|
|||
*/
|
||||
if (parse_commit(p) < 0)
|
||||
die("cannot simplify commit %s (invalid %s)",
|
||||
sha1_to_hex(commit->object.sha1),
|
||||
sha1_to_hex(p->object.sha1));
|
||||
oid_to_hex(&commit->object.oid),
|
||||
oid_to_hex(&p->object.oid));
|
||||
p->parents = NULL;
|
||||
}
|
||||
/* fallthrough */
|
||||
|
@ -754,7 +754,7 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
|
|||
irrelevant_change = 1;
|
||||
continue;
|
||||
}
|
||||
die("bad tree compare for commit %s", sha1_to_hex(commit->object.sha1));
|
||||
die("bad tree compare for commit %s", oid_to_hex(&commit->object.oid));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1189,7 +1189,7 @@ static void add_rev_cmdline_list(struct rev_info *revs,
|
|||
{
|
||||
while (commit_list) {
|
||||
struct object *object = &commit_list->item->object;
|
||||
add_rev_cmdline(revs, object, sha1_to_hex(object->sha1),
|
||||
add_rev_cmdline(revs, object, oid_to_hex(&object->oid),
|
||||
whence, flags);
|
||||
commit_list = commit_list->next;
|
||||
}
|
||||
|
@ -1378,7 +1378,7 @@ static int add_parents_only(struct rev_info *revs, const char *arg_, int flags)
|
|||
break;
|
||||
if (!((struct tag*)it)->tagged)
|
||||
return 0;
|
||||
hashcpy(sha1, ((struct tag*)it)->tagged->sha1);
|
||||
hashcpy(sha1, ((struct tag*)it)->tagged->oid.hash);
|
||||
}
|
||||
if (it->type != OBJ_COMMIT)
|
||||
return 0;
|
||||
|
@ -1435,7 +1435,7 @@ static void add_pending_commit_list(struct rev_info *revs,
|
|||
while (commit_list) {
|
||||
struct object *object = &commit_list->item->object;
|
||||
object->flags |= flags;
|
||||
add_pending_object(revs, object, sha1_to_hex(object->sha1));
|
||||
add_pending_object(revs, object, oid_to_hex(&object->oid));
|
||||
commit_list = commit_list->next;
|
||||
}
|
||||
}
|
||||
|
@ -1555,10 +1555,10 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
|||
|
||||
a = (a_obj->type == OBJ_COMMIT
|
||||
? (struct commit *)a_obj
|
||||
: lookup_commit_reference(a_obj->sha1));
|
||||
: lookup_commit_reference(a_obj->oid.hash));
|
||||
b = (b_obj->type == OBJ_COMMIT
|
||||
? (struct commit *)b_obj
|
||||
: lookup_commit_reference(b_obj->sha1));
|
||||
: lookup_commit_reference(b_obj->oid.hash));
|
||||
if (!a || !b)
|
||||
goto missing;
|
||||
exclude = get_merge_bases(a, b);
|
||||
|
@ -2938,7 +2938,7 @@ static int commit_match(struct commit *commit, struct rev_info *opt)
|
|||
if (opt->show_notes) {
|
||||
if (!buf.len)
|
||||
strbuf_addstr(&buf, message);
|
||||
format_display_notes(commit->object.sha1, &buf, encoding, 1);
|
||||
format_display_notes(commit->object.oid.hash, &buf, encoding, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2968,7 +2968,7 @@ enum commit_action get_commit_action(struct rev_info *revs, struct commit *commi
|
|||
{
|
||||
if (commit->object.flags & SHOWN)
|
||||
return commit_ignore;
|
||||
if (revs->unpacked && has_sha1_pack(commit->object.sha1))
|
||||
if (revs->unpacked && has_sha1_pack(commit->object.oid.hash))
|
||||
return commit_ignore;
|
||||
if (revs->show_all)
|
||||
return commit_show;
|
||||
|
@ -3094,7 +3094,7 @@ static void track_linear(struct rev_info *revs, struct commit *commit)
|
|||
struct commit_list *p;
|
||||
for (p = revs->previous_parents; p; p = p->next)
|
||||
if (p->item == NULL || /* first commit */
|
||||
!hashcmp(p->item->object.sha1, commit->object.sha1))
|
||||
!oidcmp(&p->item->object.oid, &commit->object.oid))
|
||||
break;
|
||||
revs->linear = p != NULL;
|
||||
}
|
||||
|
@ -3132,7 +3132,7 @@ static struct commit *get_revision_1(struct rev_info *revs)
|
|||
if (add_parents_to_list(revs, commit, &revs->commits, NULL) < 0) {
|
||||
if (!revs->ignore_missing_links)
|
||||
die("Failed to traverse parents of commit %s",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3141,7 +3141,7 @@ static struct commit *get_revision_1(struct rev_info *revs)
|
|||
continue;
|
||||
case commit_error:
|
||||
die("Failed to simplify parents of commit %s",
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
default:
|
||||
if (revs->track_linear)
|
||||
track_linear(revs, commit);
|
||||
|
|
16
send-pack.c
16
send-pack.c
|
@ -102,11 +102,11 @@ static int pack_objects(int fd, struct ref *refs, struct sha1_array *extra, stru
|
|||
break;
|
||||
|
||||
while (refs) {
|
||||
if (!is_null_sha1(refs->old_sha1) &&
|
||||
!feed_object(refs->old_sha1, po.in, 1))
|
||||
if (!is_null_oid(&refs->old_oid) &&
|
||||
!feed_object(refs->old_oid.hash, po.in, 1))
|
||||
break;
|
||||
if (!is_null_sha1(refs->new_sha1) &&
|
||||
!feed_object(refs->new_sha1, po.in, 0))
|
||||
if (!is_null_oid(&refs->new_oid) &&
|
||||
!feed_object(refs->new_oid.hash, po.in, 0))
|
||||
break;
|
||||
refs = refs->next;
|
||||
}
|
||||
|
@ -284,8 +284,8 @@ static int generate_push_cert(struct strbuf *req_buf,
|
|||
continue;
|
||||
update_seen = 1;
|
||||
strbuf_addf(&cert, "%s %s %s\n",
|
||||
sha1_to_hex(ref->old_sha1),
|
||||
sha1_to_hex(ref->new_sha1),
|
||||
oid_to_hex(&ref->old_oid),
|
||||
oid_to_hex(&ref->new_oid),
|
||||
ref->name);
|
||||
}
|
||||
if (!update_seen)
|
||||
|
@ -487,8 +487,8 @@ int send_pack(struct send_pack_args *args,
|
|||
if (check_to_send_update(ref, args) < 0)
|
||||
continue;
|
||||
|
||||
old_hex = sha1_to_hex(ref->old_sha1);
|
||||
new_hex = sha1_to_hex(ref->new_sha1);
|
||||
old_hex = oid_to_hex(&ref->old_oid);
|
||||
new_hex = oid_to_hex(&ref->new_oid);
|
||||
if (!cmds_sent) {
|
||||
packet_buf_write(&req_buf,
|
||||
"%s %s %s%c%s",
|
||||
|
|
40
sequencer.c
40
sequencer.c
|
@ -139,7 +139,7 @@ static int get_message(struct commit *commit, struct commit_message *out)
|
|||
git_commit_encoding = "UTF-8";
|
||||
|
||||
out->message = logmsg_reencode(commit, NULL, git_commit_encoding);
|
||||
abbrev = find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV);
|
||||
abbrev = find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV);
|
||||
abbrev_len = strlen(abbrev);
|
||||
|
||||
subject_len = find_commit_subject(out->message, &subject);
|
||||
|
@ -346,7 +346,7 @@ static int is_index_unchanged(void)
|
|||
if (cache_tree_update(&the_index, 0))
|
||||
return error(_("Unable to update cache tree\n"));
|
||||
|
||||
return !hashcmp(active_cache_tree->sha1, head_commit->tree->object.sha1);
|
||||
return !hashcmp(active_cache_tree->sha1, head_commit->tree->object.oid.hash);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -397,18 +397,18 @@ static int is_original_commit_empty(struct commit *commit)
|
|||
|
||||
if (parse_commit(commit))
|
||||
return error(_("Could not parse commit %s\n"),
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
if (commit->parents) {
|
||||
struct commit *parent = commit->parents->item;
|
||||
if (parse_commit(parent))
|
||||
return error(_("Could not parse parent commit %s\n"),
|
||||
sha1_to_hex(parent->object.sha1));
|
||||
ptree_sha1 = parent->tree->object.sha1;
|
||||
oid_to_hex(&parent->object.oid));
|
||||
ptree_sha1 = parent->tree->object.oid.hash;
|
||||
} else {
|
||||
ptree_sha1 = EMPTY_TREE_SHA1_BIN; /* commit is root */
|
||||
}
|
||||
|
||||
return !hashcmp(ptree_sha1, commit->tree->object.sha1);
|
||||
return !hashcmp(ptree_sha1, commit->tree->object.oid.hash);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -486,7 +486,7 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
|
|||
|
||||
if (!opts->mainline)
|
||||
return error(_("Commit %s is a merge but no -m option was given."),
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
|
||||
for (cnt = 1, p = commit->parents;
|
||||
cnt != opts->mainline && p;
|
||||
|
@ -494,28 +494,28 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
|
|||
p = p->next;
|
||||
if (cnt != opts->mainline || !p)
|
||||
return error(_("Commit %s does not have parent %d"),
|
||||
sha1_to_hex(commit->object.sha1), opts->mainline);
|
||||
oid_to_hex(&commit->object.oid), opts->mainline);
|
||||
parent = p->item;
|
||||
} else if (0 < opts->mainline)
|
||||
return error(_("Mainline was specified but commit %s is not a merge."),
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
else
|
||||
parent = commit->parents->item;
|
||||
|
||||
if (opts->allow_ff &&
|
||||
((parent && !hashcmp(parent->object.sha1, head)) ||
|
||||
((parent && !hashcmp(parent->object.oid.hash, head)) ||
|
||||
(!parent && unborn)))
|
||||
return fast_forward_to(commit->object.sha1, head, unborn, opts);
|
||||
return fast_forward_to(commit->object.oid.hash, head, unborn, opts);
|
||||
|
||||
if (parent && parse_commit(parent) < 0)
|
||||
/* TRANSLATORS: The first %s will be "revert" or
|
||||
"cherry-pick", the second %s a SHA1 */
|
||||
return error(_("%s: cannot parse parent commit %s"),
|
||||
action_name(opts), sha1_to_hex(parent->object.sha1));
|
||||
action_name(opts), oid_to_hex(&parent->object.oid));
|
||||
|
||||
if (get_message(commit, &msg) != 0)
|
||||
return error(_("Cannot get commit message for %s"),
|
||||
sha1_to_hex(commit->object.sha1));
|
||||
oid_to_hex(&commit->object.oid));
|
||||
|
||||
/*
|
||||
* "commit" is an existing commit. We would want to apply
|
||||
|
@ -532,11 +532,11 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
|
|||
strbuf_addstr(&msgbuf, "Revert \"");
|
||||
strbuf_addstr(&msgbuf, msg.subject);
|
||||
strbuf_addstr(&msgbuf, "\"\n\nThis reverts commit ");
|
||||
strbuf_addstr(&msgbuf, sha1_to_hex(commit->object.sha1));
|
||||
strbuf_addstr(&msgbuf, oid_to_hex(&commit->object.oid));
|
||||
|
||||
if (commit->parents && commit->parents->next) {
|
||||
strbuf_addstr(&msgbuf, ", reversing\nchanges made to ");
|
||||
strbuf_addstr(&msgbuf, sha1_to_hex(parent->object.sha1));
|
||||
strbuf_addstr(&msgbuf, oid_to_hex(&parent->object.oid));
|
||||
}
|
||||
strbuf_addstr(&msgbuf, ".\n");
|
||||
} else {
|
||||
|
@ -562,7 +562,7 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
|
|||
if (!has_conforming_footer(&msgbuf, NULL, 0))
|
||||
strbuf_addch(&msgbuf, '\n');
|
||||
strbuf_addstr(&msgbuf, cherry_picked_prefix);
|
||||
strbuf_addstr(&msgbuf, sha1_to_hex(commit->object.sha1));
|
||||
strbuf_addstr(&msgbuf, oid_to_hex(&commit->object.oid));
|
||||
strbuf_addstr(&msgbuf, ")\n");
|
||||
}
|
||||
}
|
||||
|
@ -592,17 +592,17 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
|
|||
* write it at all.
|
||||
*/
|
||||
if (opts->action == REPLAY_PICK && !opts->no_commit && (res == 0 || res == 1))
|
||||
update_ref(NULL, "CHERRY_PICK_HEAD", commit->object.sha1, NULL,
|
||||
update_ref(NULL, "CHERRY_PICK_HEAD", commit->object.oid.hash, NULL,
|
||||
REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
||||
if (opts->action == REPLAY_REVERT && ((opts->no_commit && res == 0) || res == 1))
|
||||
update_ref(NULL, "REVERT_HEAD", commit->object.sha1, NULL,
|
||||
update_ref(NULL, "REVERT_HEAD", commit->object.oid.hash, NULL,
|
||||
REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
|
||||
|
||||
if (res) {
|
||||
error(opts->action == REPLAY_REVERT
|
||||
? _("could not revert %s... %s")
|
||||
: _("could not apply %s... %s"),
|
||||
find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV),
|
||||
find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV),
|
||||
msg.subject);
|
||||
print_advice(res == 1, opts);
|
||||
rerere(opts->allow_rerere_auto);
|
||||
|
@ -664,7 +664,7 @@ static int format_todo(struct strbuf *buf, struct commit_list *todo_list,
|
|||
|
||||
for (cur = todo_list; cur; cur = cur->next) {
|
||||
const char *commit_buffer = get_commit_buffer(cur->item, NULL);
|
||||
sha1_abbrev = find_unique_abbrev(cur->item->object.sha1, DEFAULT_ABBREV);
|
||||
sha1_abbrev = find_unique_abbrev(cur->item->object.oid.hash, DEFAULT_ABBREV);
|
||||
subject_len = find_commit_subject(commit_buffer, &subject);
|
||||
strbuf_addf(buf, "%s %s %.*s\n", action_str, sha1_abbrev,
|
||||
subject_len, subject);
|
||||
|
|
|
@ -62,7 +62,7 @@ static int add_info_ref(const char *path, const struct object_id *oid,
|
|||
o = deref_tag(o, path, 0);
|
||||
if (o)
|
||||
if (fprintf(fp, "%s %s^{}\n",
|
||||
sha1_to_hex(o->sha1), path) < 0)
|
||||
oid_to_hex(&o->oid), path) < 0)
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -3216,6 +3216,11 @@ int has_sha1_file_with_flags(const unsigned char *sha1, int flags)
|
|||
return find_pack_entry(sha1, &e);
|
||||
}
|
||||
|
||||
int has_object_file(const struct object_id *oid)
|
||||
{
|
||||
return has_sha1_file(oid->hash);
|
||||
}
|
||||
|
||||
static void check_tree(const void *buf, size_t size)
|
||||
{
|
||||
struct tree_desc desc;
|
||||
|
|
20
sha1_name.c
20
sha1_name.c
|
@ -616,13 +616,13 @@ static int get_parent(const char *name, int len,
|
|||
if (parse_commit(commit))
|
||||
return -1;
|
||||
if (!idx) {
|
||||
hashcpy(result, commit->object.sha1);
|
||||
hashcpy(result, commit->object.oid.hash);
|
||||
return 0;
|
||||
}
|
||||
p = commit->parents;
|
||||
while (p) {
|
||||
if (!--idx) {
|
||||
hashcpy(result, p->item->object.sha1);
|
||||
hashcpy(result, p->item->object.oid.hash);
|
||||
return 0;
|
||||
}
|
||||
p = p->next;
|
||||
|
@ -649,7 +649,7 @@ static int get_nth_ancestor(const char *name, int len,
|
|||
return -1;
|
||||
commit = commit->parents->item;
|
||||
}
|
||||
hashcpy(result, commit->object.sha1);
|
||||
hashcpy(result, commit->object.oid.hash);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -659,7 +659,7 @@ struct object *peel_to_type(const char *name, int namelen,
|
|||
if (name && !namelen)
|
||||
namelen = strlen(name);
|
||||
while (1) {
|
||||
if (!o || (!o->parsed && !parse_object(o->sha1)))
|
||||
if (!o || (!o->parsed && !parse_object(o->oid.hash)))
|
||||
return NULL;
|
||||
if (expected_type == OBJ_ANY || o->type == expected_type)
|
||||
return o;
|
||||
|
@ -736,9 +736,9 @@ static int peel_onion(const char *name, int len, unsigned char *sha1)
|
|||
return -1;
|
||||
if (!expected_type) {
|
||||
o = deref_tag(o, name, sp - name - 2);
|
||||
if (!o || (!o->parsed && !parse_object(o->sha1)))
|
||||
if (!o || (!o->parsed && !parse_object(o->oid.hash)))
|
||||
return -1;
|
||||
hashcpy(sha1, o->sha1);
|
||||
hashcpy(sha1, o->oid.hash);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -751,7 +751,7 @@ static int peel_onion(const char *name, int len, unsigned char *sha1)
|
|||
if (!o)
|
||||
return -1;
|
||||
|
||||
hashcpy(sha1, o->sha1);
|
||||
hashcpy(sha1, o->oid.hash);
|
||||
if (sp[0] == '/') {
|
||||
/* "$commit^{/foo}" */
|
||||
char *prefix;
|
||||
|
@ -899,7 +899,7 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1,
|
|||
int matches;
|
||||
|
||||
commit = pop_most_recent_commit(&list, ONELINE_SEEN);
|
||||
if (!parse_object(commit->object.sha1))
|
||||
if (!parse_object(commit->object.oid.hash))
|
||||
continue;
|
||||
buf = get_commit_buffer(commit, NULL);
|
||||
p = strstr(buf, "\n\n");
|
||||
|
@ -907,7 +907,7 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1,
|
|||
unuse_commit_buffer(commit, buf);
|
||||
|
||||
if (matches) {
|
||||
hashcpy(sha1, commit->object.sha1);
|
||||
hashcpy(sha1, commit->object.oid.hash);
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1022,7 +1022,7 @@ int get_sha1_mb(const char *name, unsigned char *sha1)
|
|||
st = -1;
|
||||
else {
|
||||
st = 0;
|
||||
hashcpy(sha1, mbs->item->object.sha1);
|
||||
hashcpy(sha1, mbs->item->object.oid.hash);
|
||||
}
|
||||
free_commit_list(mbs);
|
||||
return st;
|
||||
|
|
|
@ -105,7 +105,7 @@ struct commit_list *get_shallow_commits(struct object_array *heads, int depth,
|
|||
cur_depth++;
|
||||
if ((depth != INFINITE_DEPTH && cur_depth >= depth) ||
|
||||
(is_repository_shallow() && !commit->parents &&
|
||||
(graft = lookup_commit_graft(commit->object.sha1)) != NULL &&
|
||||
(graft = lookup_commit_graft(commit->object.oid.hash)) != NULL &&
|
||||
graft->nr_parent < 0)) {
|
||||
commit_list_insert(commit, &result);
|
||||
commit->object.flags |= shallow_flag;
|
||||
|
@ -167,7 +167,7 @@ static int write_one_shallow(const struct commit_graft *graft, void *cb_data)
|
|||
if (!c || !(c->object.flags & SEEN)) {
|
||||
if (data->flags & VERBOSE)
|
||||
printf("Removing %s from .git/shallow\n",
|
||||
sha1_to_hex(c->object.sha1));
|
||||
oid_to_hex(&c->object.oid));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -426,7 +426,7 @@ static void paint_down(struct paint_info *info, const unsigned char *sha1,
|
|||
|
||||
if (parse_commit(c))
|
||||
die("unable to parse commit %s",
|
||||
sha1_to_hex(c->object.sha1));
|
||||
oid_to_hex(&c->object.oid));
|
||||
|
||||
for (p = c->parents; p; p = p->next) {
|
||||
uint32_t **p_refs = ref_bitmap_at(&info->ref_bitmap,
|
||||
|
|
|
@ -249,7 +249,7 @@ static int prepare_submodule_summary(struct rev_info *rev, const char *path,
|
|||
for (list = merge_bases; list; list = list->next) {
|
||||
list->item->object.flags |= UNINTERESTING;
|
||||
add_pending_object(rev, &list->item->object,
|
||||
sha1_to_hex(list->item->object.sha1));
|
||||
oid_to_hex(&list->item->object.oid));
|
||||
}
|
||||
return prepare_revision_walk(rev);
|
||||
}
|
||||
|
@ -597,7 +597,7 @@ static void calculate_changed_submodule_paths(void)
|
|||
diff_opts.output_format |= DIFF_FORMAT_CALLBACK;
|
||||
diff_opts.format_callback = submodule_collect_changed_cb;
|
||||
diff_setup_done(&diff_opts);
|
||||
diff_tree_sha1(parent->item->object.sha1, commit->object.sha1, "", &diff_opts);
|
||||
diff_tree_sha1(parent->item->object.oid.hash, commit->object.oid.hash, "", &diff_opts);
|
||||
diffcore_std(&diff_opts);
|
||||
diff_flush(&diff_opts);
|
||||
parent = parent->next;
|
||||
|
@ -875,7 +875,7 @@ static int find_first_merges(struct object_array *result, const char *path,
|
|||
|
||||
/* get all revisions that merge commit a */
|
||||
snprintf(merged_revision, sizeof(merged_revision), "^%s",
|
||||
sha1_to_hex(a->object.sha1));
|
||||
oid_to_hex(&a->object.oid));
|
||||
init_revisions(&revs, NULL);
|
||||
rev_opts.submodule = path;
|
||||
setup_revisions(ARRAY_SIZE(rev_args)-1, rev_args, &revs, &rev_opts);
|
||||
|
@ -1006,7 +1006,7 @@ int merge_submodule(unsigned char result[20], const char *path,
|
|||
"by using:\n\n"
|
||||
" git update-index --cacheinfo 160000 %s \"%s\"\n\n"
|
||||
"which will accept this suggestion.\n",
|
||||
sha1_to_hex(merges.objects[0].item->sha1), path);
|
||||
oid_to_hex(&merges.objects[0].item->oid), path);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
10
tag.c
10
tag.c
|
@ -10,7 +10,7 @@ struct object *deref_tag(struct object *o, const char *warn, int warnlen)
|
|||
{
|
||||
while (o && o->type == OBJ_TAG)
|
||||
if (((struct tag *)o)->tagged)
|
||||
o = parse_object(((struct tag *)o)->tagged->sha1);
|
||||
o = parse_object(((struct tag *)o)->tagged->oid.hash);
|
||||
else
|
||||
o = NULL;
|
||||
if (!o && warn) {
|
||||
|
@ -24,7 +24,7 @@ struct object *deref_tag(struct object *o, const char *warn, int warnlen)
|
|||
struct object *deref_tag_noverify(struct object *o)
|
||||
{
|
||||
while (o && o->type == OBJ_TAG) {
|
||||
o = parse_object(o->sha1);
|
||||
o = parse_object(o->oid.hash);
|
||||
if (o && o->type == OBJ_TAG && ((struct tag *)o)->tagged)
|
||||
o = ((struct tag *)o)->tagged;
|
||||
else
|
||||
|
@ -127,14 +127,14 @@ int parse_tag(struct tag *item)
|
|||
|
||||
if (item->object.parsed)
|
||||
return 0;
|
||||
data = read_sha1_file(item->object.sha1, &type, &size);
|
||||
data = read_sha1_file(item->object.oid.hash, &type, &size);
|
||||
if (!data)
|
||||
return error("Could not read %s",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
if (type != OBJ_TAG) {
|
||||
free(data);
|
||||
return error("Object %s not a tag",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
}
|
||||
ret = parse_tag_buffer(item, data, size);
|
||||
free(data);
|
||||
|
|
|
@ -17,7 +17,7 @@ int main(int ac, char **av)
|
|||
if (!two)
|
||||
die("not a tree-ish %s", av[2]);
|
||||
|
||||
shift_tree(one->object.sha1, two->object.sha1, shifted, -1);
|
||||
shift_tree(one->object.oid.hash, two->object.oid.hash, shifted, -1);
|
||||
printf("shifted: %s\n", sha1_to_hex(shifted));
|
||||
|
||||
exit(0);
|
||||
|
|
|
@ -346,7 +346,7 @@ static int fetch_with_fetch(struct transport *transport,
|
|||
continue;
|
||||
|
||||
strbuf_addf(&buf, "fetch %s %s\n",
|
||||
sha1_to_hex(posn->old_sha1),
|
||||
oid_to_hex(&posn->old_oid),
|
||||
posn->symref ? posn->symref : posn->name);
|
||||
}
|
||||
|
||||
|
@ -489,7 +489,7 @@ static int fetch_with_import(struct transport *transport,
|
|||
else
|
||||
private = xstrdup(name);
|
||||
if (private) {
|
||||
if (read_ref(private, posn->old_sha1) < 0)
|
||||
if (read_ref(private, posn->old_oid.hash) < 0)
|
||||
die("Could not read ref %s", private);
|
||||
free(private);
|
||||
}
|
||||
|
@ -756,7 +756,7 @@ static int push_update_refs_status(struct helper_data *data,
|
|||
private = apply_refspecs(data->refspecs, data->refspec_nr, ref->name);
|
||||
if (!private)
|
||||
continue;
|
||||
update_ref("update by helper", private, ref->new_sha1, NULL, 0, 0);
|
||||
update_ref("update by helper", private, ref->new_oid.hash, NULL, 0, 0);
|
||||
free(private);
|
||||
}
|
||||
strbuf_release(&buf);
|
||||
|
@ -818,7 +818,7 @@ static int push_refs_with_push(struct transport *transport,
|
|||
if (ref->peer_ref)
|
||||
strbuf_addstr(&buf, ref->peer_ref->name);
|
||||
else
|
||||
strbuf_addstr(&buf, sha1_to_hex(ref->new_sha1));
|
||||
strbuf_addstr(&buf, oid_to_hex(&ref->new_oid));
|
||||
}
|
||||
strbuf_addch(&buf, ':');
|
||||
strbuf_addstr(&buf, ref->name);
|
||||
|
@ -827,14 +827,14 @@ static int push_refs_with_push(struct transport *transport,
|
|||
/*
|
||||
* The "--force-with-lease" options without explicit
|
||||
* values to expect have already been expanded into
|
||||
* the ref->old_sha1_expect[] field; we can ignore
|
||||
* the ref->old_oid_expect[] field; we can ignore
|
||||
* transport->smart_options->cas altogether and instead
|
||||
* can enumerate them from the refs.
|
||||
*/
|
||||
if (ref->expect_old_sha1) {
|
||||
struct strbuf cas = STRBUF_INIT;
|
||||
strbuf_addf(&cas, "%s:%s",
|
||||
ref->name, sha1_to_hex(ref->old_sha1_expect));
|
||||
ref->name, oid_to_hex(&ref->old_oid_expect));
|
||||
string_list_append(&cas_options, strbuf_detach(&cas, NULL));
|
||||
}
|
||||
}
|
||||
|
@ -878,13 +878,13 @@ static int push_refs_with_export(struct transport *transport,
|
|||
|
||||
for (ref = remote_refs; ref; ref = ref->next) {
|
||||
char *private;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
|
||||
private = apply_refspecs(data->refspecs, data->refspec_nr, ref->name);
|
||||
if (private && !get_sha1(private, sha1)) {
|
||||
if (private && !get_sha1(private, oid.hash)) {
|
||||
strbuf_addf(&buf, "^%s", private);
|
||||
string_list_append(&revlist_args, strbuf_detach(&buf, NULL));
|
||||
hashcpy(ref->old_sha1, sha1);
|
||||
oidcpy(&ref->old_oid, &oid);
|
||||
}
|
||||
free(private);
|
||||
|
||||
|
@ -898,7 +898,7 @@ static int push_refs_with_export(struct transport *transport,
|
|||
name = resolve_ref_unsafe(
|
||||
ref->peer_ref->name,
|
||||
RESOLVE_REF_READING,
|
||||
sha1, &flag);
|
||||
oid.hash, &flag);
|
||||
if (!name || !(flag & REF_ISSYMREF))
|
||||
name = ref->peer_ref->name;
|
||||
|
||||
|
@ -1016,12 +1016,12 @@ static struct ref *get_refs_list(struct transport *transport, int for_push)
|
|||
if (buf.buf[0] == '@')
|
||||
(*tail)->symref = xstrdup(buf.buf + 1);
|
||||
else if (buf.buf[0] != '?')
|
||||
get_sha1_hex(buf.buf, (*tail)->old_sha1);
|
||||
get_oid_hex(buf.buf, &(*tail)->old_oid);
|
||||
if (eon) {
|
||||
if (has_attribute(eon + 1, "unchanged")) {
|
||||
(*tail)->status |= REF_STATUS_UPTODATE;
|
||||
if (read_ref((*tail)->name,
|
||||
(*tail)->old_sha1) < 0)
|
||||
(*tail)->old_oid.hash) < 0)
|
||||
die(N_("Could not read ref %s"),
|
||||
(*tail)->name);
|
||||
}
|
||||
|
|
32
transport.c
32
transport.c
|
@ -80,7 +80,7 @@ static int read_loose_refs(struct strbuf *path, int name_offset,
|
|||
continue;
|
||||
next = alloc_ref(path->buf + name_offset);
|
||||
if (read_in_full(fd, buffer, 40) != 40 ||
|
||||
get_sha1_hex(buffer, next->old_sha1)) {
|
||||
get_oid_hex(buffer, &next->old_oid)) {
|
||||
close(fd);
|
||||
free(next);
|
||||
continue;
|
||||
|
@ -132,7 +132,7 @@ static void insert_packed_refs(const char *packed_refs, struct ref **list)
|
|||
if (!(*list)->next || cmp < 0) {
|
||||
struct ref *next = alloc_ref(buffer + 41);
|
||||
buffer[40] = '\0';
|
||||
if (get_sha1_hex(buffer, next->old_sha1)) {
|
||||
if (get_oid_hex(buffer, &next->old_oid)) {
|
||||
warning ("invalid SHA-1: %s", buffer);
|
||||
free(next);
|
||||
continue;
|
||||
|
@ -163,7 +163,7 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
|
|||
continue;
|
||||
if (!ref->peer_ref)
|
||||
continue;
|
||||
if (is_null_sha1(ref->new_sha1))
|
||||
if (is_null_oid(&ref->new_oid))
|
||||
continue;
|
||||
|
||||
/* Follow symbolic refs (mainly for HEAD). */
|
||||
|
@ -413,7 +413,7 @@ static struct ref *get_refs_from_bundle(struct transport *transport, int for_pus
|
|||
for (i = 0; i < data->header.references.nr; i++) {
|
||||
struct ref_list_entry *e = data->header.references.list + i;
|
||||
struct ref *ref = alloc_ref(e->name);
|
||||
hashcpy(ref->old_sha1, e->sha1);
|
||||
hashcpy(ref->old_oid.hash, e->sha1);
|
||||
ref->next = result;
|
||||
result = ref;
|
||||
}
|
||||
|
@ -609,7 +609,7 @@ void transport_update_tracking_ref(struct remote *remote, struct ref *ref, int v
|
|||
delete_ref(rs.dst, NULL, 0);
|
||||
} else
|
||||
update_ref("update by push", rs.dst,
|
||||
ref->new_sha1, NULL, 0, 0);
|
||||
ref->new_oid.hash, NULL, 0, 0);
|
||||
free(rs.dst);
|
||||
}
|
||||
}
|
||||
|
@ -649,7 +649,7 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
|
|||
{
|
||||
if (ref->deletion)
|
||||
print_ref_status('-', "[deleted]", ref, NULL, NULL, porcelain);
|
||||
else if (is_null_sha1(ref->old_sha1))
|
||||
else if (is_null_oid(&ref->old_oid))
|
||||
print_ref_status('*',
|
||||
(starts_with(ref->name, "refs/tags/") ? "[new tag]" :
|
||||
"[new branch]"),
|
||||
|
@ -659,7 +659,7 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
|
|||
char type;
|
||||
const char *msg;
|
||||
|
||||
strbuf_addstr(&quickref, status_abbrev(ref->old_sha1));
|
||||
strbuf_addstr(&quickref, status_abbrev(ref->old_oid.hash));
|
||||
if (ref->forced_update) {
|
||||
strbuf_addstr(&quickref, "...");
|
||||
type = '+';
|
||||
|
@ -669,7 +669,7 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
|
|||
type = ' ';
|
||||
msg = NULL;
|
||||
}
|
||||
strbuf_addstr(&quickref, status_abbrev(ref->new_sha1));
|
||||
strbuf_addstr(&quickref, status_abbrev(ref->new_oid.hash));
|
||||
|
||||
print_ref_status(type, quickref.buf, ref, ref->peer_ref, msg, porcelain);
|
||||
strbuf_release(&quickref);
|
||||
|
@ -1140,8 +1140,8 @@ static int run_pre_push_hook(struct transport *transport,
|
|||
|
||||
strbuf_reset(&buf);
|
||||
strbuf_addf( &buf, "%s %s %s %s\n",
|
||||
r->peer_ref->name, sha1_to_hex(r->new_sha1),
|
||||
r->name, sha1_to_hex(r->old_sha1));
|
||||
r->peer_ref->name, oid_to_hex(&r->new_oid),
|
||||
r->name, oid_to_hex(&r->old_oid));
|
||||
|
||||
if (write_in_full(proc.in, buf.buf, buf.len) < 0) {
|
||||
/* We do not mind if a hook does not read all refs. */
|
||||
|
@ -1225,8 +1225,8 @@ int transport_push(struct transport *transport,
|
|||
if ((flags & TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND) && !is_bare_repository()) {
|
||||
struct ref *ref = remote_refs;
|
||||
for (; ref; ref = ref->next)
|
||||
if (!is_null_sha1(ref->new_sha1) &&
|
||||
!push_unpushed_submodules(ref->new_sha1,
|
||||
if (!is_null_oid(&ref->new_oid) &&
|
||||
!push_unpushed_submodules(ref->new_oid.hash,
|
||||
transport->remote->name))
|
||||
die ("Failed to push all needed submodules!");
|
||||
}
|
||||
|
@ -1237,8 +1237,8 @@ int transport_push(struct transport *transport,
|
|||
struct string_list needs_pushing = STRING_LIST_INIT_DUP;
|
||||
|
||||
for (; ref; ref = ref->next)
|
||||
if (!is_null_sha1(ref->new_sha1) &&
|
||||
find_unpushed_submodules(ref->new_sha1,
|
||||
if (!is_null_oid(&ref->new_oid) &&
|
||||
find_unpushed_submodules(ref->new_oid.hash,
|
||||
transport->remote->name, &needs_pushing))
|
||||
die_with_unpushed_submodules(&needs_pushing);
|
||||
}
|
||||
|
@ -1291,8 +1291,8 @@ int transport_fetch_refs(struct transport *transport, struct ref *refs)
|
|||
for (rm = refs; rm; rm = rm->next) {
|
||||
nr_refs++;
|
||||
if (rm->peer_ref &&
|
||||
!is_null_sha1(rm->old_sha1) &&
|
||||
!hashcmp(rm->peer_ref->old_sha1, rm->old_sha1))
|
||||
!is_null_oid(&rm->old_oid) &&
|
||||
!oidcmp(&rm->peer_ref->old_oid, &rm->old_oid))
|
||||
continue;
|
||||
ALLOC_GROW(heads, nr_heads + 1, nr_alloc);
|
||||
heads[nr_heads++] = rm;
|
||||
|
|
|
@ -74,15 +74,15 @@ struct transport {
|
|||
/**
|
||||
* Push the objects and refs. Send the necessary objects, and
|
||||
* then, for any refs where peer_ref is set and
|
||||
* peer_ref->new_sha1 is different from old_sha1, tell the
|
||||
* remote side to update each ref in the list from old_sha1 to
|
||||
* peer_ref->new_sha1.
|
||||
* peer_ref->new_oid is different from old_oid, tell the
|
||||
* remote side to update each ref in the list from old_oid to
|
||||
* peer_ref->new_oid.
|
||||
*
|
||||
* Where possible, set the status for each ref appropriately.
|
||||
*
|
||||
* The transport must modify new_sha1 in the ref to the new
|
||||
* value if the remote accepted the change. Note that this
|
||||
* could be a different value from peer_ref->new_sha1 if the
|
||||
* could be a different value from peer_ref->new_oid if the
|
||||
* process involved generating new commits.
|
||||
**/
|
||||
int (*push_refs)(struct transport *transport, struct ref *refs, int flags);
|
||||
|
|
10
tree.c
10
tree.c
|
@ -102,7 +102,7 @@ static int read_tree_1(struct tree *tree, struct strbuf *base,
|
|||
sha1_to_hex(entry.sha1),
|
||||
base->buf, entry.path);
|
||||
|
||||
hashcpy(sha1, commit->tree->object.sha1);
|
||||
hashcpy(sha1, commit->tree->object.oid.hash);
|
||||
}
|
||||
else
|
||||
continue;
|
||||
|
@ -212,15 +212,15 @@ int parse_tree_gently(struct tree *item, int quiet_on_missing)
|
|||
|
||||
if (item->object.parsed)
|
||||
return 0;
|
||||
buffer = read_sha1_file(item->object.sha1, &type, &size);
|
||||
buffer = read_sha1_file(item->object.oid.hash, &type, &size);
|
||||
if (!buffer)
|
||||
return quiet_on_missing ? -1 :
|
||||
error("Could not read %s",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
if (type != OBJ_TREE) {
|
||||
free(buffer);
|
||||
return error("Object %s not a tree",
|
||||
sha1_to_hex(item->object.sha1));
|
||||
oid_to_hex(&item->object.oid));
|
||||
}
|
||||
return parse_tree_buffer(item, buffer, size);
|
||||
}
|
||||
|
@ -248,6 +248,6 @@ struct tree *parse_tree_indirect(const unsigned char *sha1)
|
|||
else
|
||||
return NULL;
|
||||
if (!obj->parsed)
|
||||
parse_object(obj->sha1);
|
||||
parse_object(obj->oid.hash);
|
||||
} while (1);
|
||||
}
|
||||
|
|
|
@ -130,14 +130,14 @@ static void create_pack_file(void)
|
|||
|
||||
for (i = 0; i < want_obj.nr; i++)
|
||||
fprintf(pipe_fd, "%s\n",
|
||||
sha1_to_hex(want_obj.objects[i].item->sha1));
|
||||
oid_to_hex(&want_obj.objects[i].item->oid));
|
||||
fprintf(pipe_fd, "--not\n");
|
||||
for (i = 0; i < have_obj.nr; i++)
|
||||
fprintf(pipe_fd, "%s\n",
|
||||
sha1_to_hex(have_obj.objects[i].item->sha1));
|
||||
oid_to_hex(&have_obj.objects[i].item->oid));
|
||||
for (i = 0; i < extra_edge_obj.nr; i++)
|
||||
fprintf(pipe_fd, "%s\n",
|
||||
sha1_to_hex(extra_edge_obj.objects[i].item->sha1));
|
||||
oid_to_hex(&extra_edge_obj.objects[i].item->oid));
|
||||
fprintf(pipe_fd, "\n");
|
||||
fflush(pipe_fd);
|
||||
fclose(pipe_fd);
|
||||
|
@ -324,7 +324,7 @@ static int reachable(struct commit *want)
|
|||
break;
|
||||
}
|
||||
if (!commit->object.parsed)
|
||||
parse_object(commit->object.sha1);
|
||||
parse_object(commit->object.oid.hash);
|
||||
if (commit->object.flags & REACHABLE)
|
||||
continue;
|
||||
commit->object.flags |= REACHABLE;
|
||||
|
@ -491,7 +491,7 @@ static void check_non_tip(void)
|
|||
continue;
|
||||
if (!is_our_ref(o))
|
||||
continue;
|
||||
memcpy(namebuf + 1, sha1_to_hex(o->sha1), 40);
|
||||
memcpy(namebuf + 1, oid_to_hex(&o->oid), GIT_SHA1_HEXSZ);
|
||||
if (write_in_full(cmd.in, namebuf, 42) < 0)
|
||||
goto error;
|
||||
}
|
||||
|
@ -500,7 +500,7 @@ static void check_non_tip(void)
|
|||
o = want_obj.objects[i].item;
|
||||
if (is_our_ref(o))
|
||||
continue;
|
||||
memcpy(namebuf, sha1_to_hex(o->sha1), 40);
|
||||
memcpy(namebuf, oid_to_hex(&o->oid), GIT_SHA1_HEXSZ);
|
||||
if (write_in_full(cmd.in, namebuf, 41) < 0)
|
||||
goto error;
|
||||
}
|
||||
|
@ -534,7 +534,7 @@ error:
|
|||
o = want_obj.objects[i].item;
|
||||
if (!is_our_ref(o))
|
||||
die("git upload-pack: not our ref %s",
|
||||
sha1_to_hex(o->sha1));
|
||||
oid_to_hex(&o->oid));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -646,8 +646,8 @@ static void receive_needs(void)
|
|||
struct object *object = &result->item->object;
|
||||
if (!(object->flags & (CLIENT_SHALLOW|NOT_SHALLOW))) {
|
||||
packet_write(1, "shallow %s",
|
||||
sha1_to_hex(object->sha1));
|
||||
register_shallow(object->sha1);
|
||||
oid_to_hex(&object->oid));
|
||||
register_shallow(object->oid.hash);
|
||||
shallow_nr++;
|
||||
}
|
||||
result = result->next;
|
||||
|
@ -658,10 +658,10 @@ static void receive_needs(void)
|
|||
if (object->flags & NOT_SHALLOW) {
|
||||
struct commit_list *parents;
|
||||
packet_write(1, "unshallow %s",
|
||||
sha1_to_hex(object->sha1));
|
||||
oid_to_hex(&object->oid));
|
||||
object->flags &= ~CLIENT_SHALLOW;
|
||||
/* make sure the real parents are parsed */
|
||||
unregister_shallow(object->sha1);
|
||||
unregister_shallow(object->oid.hash);
|
||||
object->parsed = 0;
|
||||
parse_commit_or_die((struct commit *)object);
|
||||
parents = ((struct commit *)object)->parents;
|
||||
|
@ -673,14 +673,14 @@ static void receive_needs(void)
|
|||
add_object_array(object, NULL, &extra_edge_obj);
|
||||
}
|
||||
/* make sure commit traversal conforms to client */
|
||||
register_shallow(object->sha1);
|
||||
register_shallow(object->oid.hash);
|
||||
}
|
||||
packet_flush(1);
|
||||
} else
|
||||
if (shallows.nr > 0) {
|
||||
int i;
|
||||
for (i = 0; i < shallows.nr; i++)
|
||||
register_shallow(shallows.objects[i].item->sha1);
|
||||
register_shallow(shallows.objects[i].item->oid.hash);
|
||||
}
|
||||
|
||||
shallow_nr += shallows.nr;
|
||||
|
|
18
walker.c
18
walker.c
|
@ -19,7 +19,7 @@ static void report_missing(const struct object *obj)
|
|||
{
|
||||
fprintf(stderr, "Cannot obtain needed %s %s\n",
|
||||
obj->type ? typename(obj->type): "object",
|
||||
sha1_to_hex(obj->sha1));
|
||||
oid_to_hex(&obj->oid));
|
||||
if (!is_null_sha1(current_commit_sha1))
|
||||
fprintf(stderr, "while processing commit %s.\n",
|
||||
sha1_to_hex(current_commit_sha1));
|
||||
|
@ -78,9 +78,9 @@ static int process_commit(struct walker *walker, struct commit *commit)
|
|||
if (commit->object.flags & COMPLETE)
|
||||
return 0;
|
||||
|
||||
hashcpy(current_commit_sha1, commit->object.sha1);
|
||||
hashcpy(current_commit_sha1, commit->object.oid.hash);
|
||||
|
||||
walker_say(walker, "walk %s\n", sha1_to_hex(commit->object.sha1));
|
||||
walker_say(walker, "walk %s\n", oid_to_hex(&commit->object.oid));
|
||||
|
||||
if (walker->get_tree) {
|
||||
if (process(walker, &commit->tree->object))
|
||||
|
@ -130,7 +130,7 @@ static int process_object(struct walker *walker, struct object *obj)
|
|||
}
|
||||
return error("Unable to determine requirements "
|
||||
"of type %s for %s",
|
||||
typename(obj->type), sha1_to_hex(obj->sha1));
|
||||
typename(obj->type), oid_to_hex(&obj->oid));
|
||||
}
|
||||
|
||||
static int process(struct walker *walker, struct object *obj)
|
||||
|
@ -139,14 +139,14 @@ static int process(struct walker *walker, struct object *obj)
|
|||
return 0;
|
||||
obj->flags |= SEEN;
|
||||
|
||||
if (has_sha1_file(obj->sha1)) {
|
||||
if (has_object_file(&obj->oid)) {
|
||||
/* We already have it, so we should scan it now. */
|
||||
obj->flags |= TO_SCAN;
|
||||
}
|
||||
else {
|
||||
if (obj->flags & COMPLETE)
|
||||
return 0;
|
||||
walker->prefetch(walker, obj->sha1);
|
||||
walker->prefetch(walker, obj->oid.hash);
|
||||
}
|
||||
|
||||
object_list_insert(obj, process_queue_end);
|
||||
|
@ -170,13 +170,13 @@ static int loop(struct walker *walker)
|
|||
* the queue because we needed to fetch it first.
|
||||
*/
|
||||
if (! (obj->flags & TO_SCAN)) {
|
||||
if (walker->fetch(walker, obj->sha1)) {
|
||||
if (walker->fetch(walker, obj->oid.hash)) {
|
||||
report_missing(obj);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (!obj->type)
|
||||
parse_object(obj->sha1);
|
||||
parse_object(obj->oid.hash);
|
||||
if (process_object(walker, obj))
|
||||
return -1;
|
||||
}
|
||||
|
@ -190,7 +190,7 @@ static int interpret_target(struct walker *walker, char *target, unsigned char *
|
|||
if (!check_refname_format(target, 0)) {
|
||||
struct ref *ref = alloc_ref(target);
|
||||
if (!walker->fetch_ref(walker, ref)) {
|
||||
hashcpy(sha1, ref->old_sha1);
|
||||
hashcpy(sha1, ref->old_oid.hash);
|
||||
free(ref);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1346,7 +1346,7 @@ static void wt_status_get_detached_from(struct wt_status_state *state)
|
|||
(!hashcmp(cb.nsha1, sha1) ||
|
||||
/* perhaps sha1 is a tag, try to dereference to a commit */
|
||||
((commit = lookup_commit_reference_gently(sha1, 1)) != NULL &&
|
||||
!hashcmp(cb.nsha1, commit->object.sha1)))) {
|
||||
!hashcmp(cb.nsha1, commit->object.oid.hash)))) {
|
||||
const char *from = ref;
|
||||
if (!skip_prefix(from, "refs/tags/", &from))
|
||||
skip_prefix(from, "refs/remotes/", &from);
|
||||
|
|
Загрузка…
Ссылка в новой задаче