1 #ifndef INCLUDE_cl_merge_helpers_h__
2 #define INCLUDE_cl_merge_helpers_h__
5 #include "git2/merge.h"
7 struct merge_index_entry
{
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
[41];
32 char their_oid_str
[41];
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_type_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_tree_opts
*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_tree_opts
*opts
);
52 int merge_branches(git_merge_result
**result
, git_repository
*repo
,
53 const char *ours_branch
, const char *theirs_branch
, git_merge_opts
*opts
);
55 int merge_test_diff_list(git_merge_diff_list
*diff_list
, const struct merge_index_entry expected
[], size_t expected_len
);
57 int merge_test_merge_conflicts(git_vector
*conflicts
, const struct merge_index_conflict_data expected
[], size_t expected_len
);
59 int merge_test_index(git_index
*index
, const struct merge_index_entry expected
[], size_t expected_len
);
61 int merge_test_names(git_index
*index
, const struct merge_name_entry expected
[], size_t expected_len
);
63 int merge_test_reuc(git_index
*index
, const struct merge_reuc_entry expected
[], size_t expected_len
);
65 int merge_test_workdir(git_repository
*repo
, const struct merge_index_entry expected
[], size_t expected_len
);