summaryrefslogtreecommitdiff
path: root/src/merge.h
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@microsoft.com>2013-05-16 13:04:37 -0500
committerEdward Thomson <ethomson@edwardthomson.com>2013-05-17 08:26:24 -0500
commit9c06b25054dd43802cbf6620c1082fa5d4498bf5 (patch)
treef8ee4acb25af27bdca84b6eb9bcfc4c4247c75d7 /src/merge.h
parent5b3d52ce37100c1d63229d195041fac3e6f89d28 (diff)
downloadlibgit2-9c06b25054dd43802cbf6620c1082fa5d4498bf5.tar.gz
merge setup
Diffstat (limited to 'src/merge.h')
-rw-r--r--src/merge.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/merge.h b/src/merge.h
index 50538b12b..ba6725de9 100644
--- a/src/merge.h
+++ b/src/merge.h
@@ -107,12 +107,25 @@ typedef struct {
git_delta_t their_status;
} git_merge_diff;
+/** Internal structure for merge inputs */
+struct git_merge_head {
+ char *ref_name;
+ char *remote_url;
+
+ git_oid oid;
+ git_commit *commit;
+};
+
int git_merge__bases_many(
git_commit_list **out,
git_revwalk *walk,
git_commit_list_node *one,
git_vector *twos);
+/*
+ * Three-way tree differencing
+ */
+
git_merge_diff_list *git_merge_diff_list__alloc(git_repository *repo);
int git_merge_diff_list__find_differences(git_merge_diff_list *merge_diff_list,
@@ -124,4 +137,13 @@ int git_merge_diff_list__find_renames(git_repository *repo, git_merge_diff_list
void git_merge_diff_list__free(git_merge_diff_list *diff_list);
+/* Merge metadata setup */
+
+int git_merge__setup(
+ git_repository *repo,
+ const git_merge_head *our_head,
+ const git_merge_head *their_heads[],
+ size_t their_heads_len,
+ unsigned int flags);
+
#endif