1 #ifndef INCLUDE_cl_merge_helpers_h__
2 #define INCLUDE_cl_merge_helpers_h__
5 #include "git2/merge.h"
7 struct merge_index_entry
{
9 char oid_str
[GIT_OID_HEXSZ
+1];
14 struct merge_name_entry
{
15 char ancestor_path
[128];
20 struct merge_index_with_status
{
21 struct merge_index_entry entry
;
25 struct merge_reuc_entry
{
27 unsigned int ancestor_mode
;
28 unsigned int our_mode
;
29 unsigned int their_mode
;
30 char ancestor_oid_str
[GIT_OID_HEXSZ
+1];
31 char our_oid_str
[GIT_OID_HEXSZ
+1];
32 char their_oid_str
[GIT_OID_HEXSZ
+1];
35 struct merge_index_conflict_data
{
36 struct merge_index_with_status ancestor
;
37 struct merge_index_with_status ours
;
38 struct merge_index_with_status theirs
;
39 git_merge_diff_t change_type
;
42 int merge_trees_from_branches(
43 git_index
**index
, git_repository
*repo
,
44 const char *ours_name
, const char *theirs_name
,
45 git_merge_options
*opts
);
47 int merge_commits_from_branches(
48 git_index
**index
, git_repository
*repo
,
49 const char *ours_name
, const char *theirs_name
,
50 git_merge_options
*opts
);
52 int merge_branches(git_repository
*repo
,
53 const char *ours_branch
, const char *theirs_branch
,
54 git_merge_options
*merge_opts
, git_checkout_options
*checkout_opts
);
56 int merge_test_diff_list(git_merge_diff_list
*diff_list
, const struct merge_index_entry expected
[], size_t expected_len
);
58 int merge_test_merge_conflicts(git_vector
*conflicts
, const struct merge_index_conflict_data expected
[], size_t expected_len
);
60 int merge_test_index(git_index
*index
, const struct merge_index_entry expected
[], size_t expected_len
);
62 int merge_test_names(git_index
*index
, const struct merge_name_entry expected
[], size_t expected_len
);
64 int merge_test_reuc(git_index
*index
, const struct merge_reuc_entry expected
[], size_t expected_len
);
66 int merge_test_workdir(git_repository
*repo
, const struct merge_index_entry expected
[], size_t expected_len
);
68 void merge__dump_names(git_index
*index
);
69 void merge__dump_index_entries(git_vector
*index_entries
);
70 void merge__dump_reuc(git_index
*index
);