summaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-01-09 07:22:31 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-01-10 01:57:03 (GMT)
commit03840fc32d783be6750bf7e41a89687b8c3053eb (patch)
tree8653bc787e3eee04d2fad107b32c1fe12e7fe05f /commit.c
parent71dfbf224ff980f4085f75868dc409118418731e (diff)
downloadgit-03840fc32d783be6750bf7e41a89687b8c3053eb.zip
git-03840fc32d783be6750bf7e41a89687b8c3053eb.tar.gz
git-03840fc32d783be6750bf7e41a89687b8c3053eb.tar.bz2
Allow in_merge_bases() to take more than one reference commits.
The internal function in_merge_bases(A, B) is used to make sure that commit A is an ancestor of commit B. This changes the signature of it to take an array of B's and updates its current callers. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/commit.c b/commit.c
index 496d37a..aa14c5a 100644
--- a/commit.c
+++ b/commit.c
@@ -1158,14 +1158,17 @@ struct commit_list *get_merge_bases(struct commit *one,
return result;
}
-int in_merge_bases(struct commit *rev1, struct commit *rev2)
+int in_merge_bases(struct commit *commit, struct commit **reference, int num)
{
struct commit_list *bases, *b;
int ret = 0;
- bases = get_merge_bases(rev1, rev2, 1);
+ if (num == 1)
+ bases = get_merge_bases(commit, *reference, 1);
+ else
+ die("not yet");
for (b = bases; b; b = b->next) {
- if (!hashcmp(rev1->object.sha1, b->item->object.sha1)) {
+ if (!hashcmp(commit->object.sha1, b->item->object.sha1)) {
ret = 1;
break;
}