Skip to content

Commit

Permalink
submodule: convert merge_submodule to use struct object_id
Browse files Browse the repository at this point in the history
This is a caller of lookup_commit_reference, which we will convert
later.

Signed-off-by: brian m. carlson <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
bk2204 authored and gitster committed May 8, 2017
1 parent 912c13d commit 71f35d5
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 20 deletions.
8 changes: 4 additions & 4 deletions merge-recursive.c
Original file line number Diff line number Diff line change
Expand Up @@ -994,11 +994,11 @@ static int merge_file_1(struct merge_options *o,
return ret;
result->clean = (merge_status == 0);
} else if (S_ISGITLINK(a->mode)) {
result->clean = merge_submodule(result->oid.hash,
result->clean = merge_submodule(&result->oid,
one->path,
one->oid.hash,
a->oid.hash,
b->oid.hash,
&one->oid,
&a->oid,
&b->oid,
!o->call_depth);
} else if (S_ISLNK(a->mode)) {
oidcpy(&result->oid, &a->oid);
Expand Down
24 changes: 12 additions & 12 deletions submodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1566,9 +1566,9 @@ static void print_commit(struct commit *commit)
#define MERGE_WARNING(path, msg) \
warning("Failed to merge submodule %s (%s)", path, msg);

int merge_submodule(unsigned char result[20], const char *path,
const unsigned char base[20], const unsigned char a[20],
const unsigned char b[20], int search)
int merge_submodule(struct object_id *result, const char *path,
const struct object_id *base, const struct object_id *a,
const struct object_id *b, int search)
{
struct commit *commit_base, *commit_a, *commit_b;
int parent_count;
Expand All @@ -1577,24 +1577,24 @@ int merge_submodule(unsigned char result[20], const char *path,
int i;

/* store a in result in case we fail */
hashcpy(result, a);
oidcpy(result, a);

/* we can not handle deletion conflicts */
if (is_null_sha1(base))
if (is_null_oid(base))
return 0;
if (is_null_sha1(a))
if (is_null_oid(a))
return 0;
if (is_null_sha1(b))
if (is_null_oid(b))
return 0;

if (add_submodule_odb(path)) {
MERGE_WARNING(path, "not checked out");
return 0;
}

if (!(commit_base = lookup_commit_reference(base)) ||
!(commit_a = lookup_commit_reference(a)) ||
!(commit_b = lookup_commit_reference(b))) {
if (!(commit_base = lookup_commit_reference(base->hash)) ||
!(commit_a = lookup_commit_reference(a->hash)) ||
!(commit_b = lookup_commit_reference(b->hash))) {
MERGE_WARNING(path, "commits not present");
return 0;
}
Expand All @@ -1608,11 +1608,11 @@ int merge_submodule(unsigned char result[20], const char *path,

/* Case #1: a is contained in b or vice versa */
if (in_merge_bases(commit_a, commit_b)) {
hashcpy(result, b);
oidcpy(result, b);
return 1;
}
if (in_merge_bases(commit_b, commit_a)) {
hashcpy(result, a);
oidcpy(result, a);
return 1;
}

Expand Down
8 changes: 4 additions & 4 deletions submodule.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ extern int submodule_uses_gitfile(const char *path);
#define SUBMODULE_REMOVAL_IGNORE_UNTRACKED (1<<1)
#define SUBMODULE_REMOVAL_IGNORE_IGNORED_UNTRACKED (1<<2)
extern int bad_to_remove_submodule(const char *path, unsigned flags);
extern int merge_submodule(unsigned char result[20], const char *path,
const unsigned char base[20],
const unsigned char a[20],
const unsigned char b[20], int search);
extern int merge_submodule(struct object_id *result, const char *path,
const struct object_id *base,
const struct object_id *a,
const struct object_id *b, int search);
extern int find_unpushed_submodules(struct oid_array *commits,
const char *remotes_name,
struct string_list *needs_pushing);
Expand Down

0 comments on commit 71f35d5

Please sign in to comment.