1 module git2.merge; 2 3 import git2.common; 4 import git2.checkout; 5 import git2.diff; 6 import git2.index; 7 import git2.oid; 8 import git2.util; 9 import git2.types; 10 11 extern (C): 12 13 enum git_merge_tree_flag_t { 14 GIT_MERGE_TREE_FIND_RENAMES = (1 << 0), 15 } 16 mixin _ExportEnumMembers!git_merge_tree_flag_t; 17 18 enum git_merge_automerge_flags { 19 GIT_MERGE_AUTOMERGE_NORMAL = 0, 20 GIT_MERGE_AUTOMERGE_NONE = 1, 21 GIT_MERGE_AUTOMERGE_FAVOR_OURS = 2, 22 GIT_MERGE_AUTOMERGE_FAVOR_THEIRS = 3, 23 } 24 mixin _ExportEnumMembers!git_merge_automerge_flags; 25 26 struct git_merge_tree_opts { 27 uint version_ = GIT_MERGE_TREE_OPTS_VERSION; 28 git_merge_tree_flag_t flags; 29 uint rename_threshold; 30 uint target_limit; 31 git_diff_similarity_metric *metric; 32 git_merge_automerge_flags automerge_flags; 33 } 34 35 enum GIT_MERGE_TREE_OPTS_VERSION = 1; 36 enum git_merge_tree_opts GIT_MERGE_TREE_OPTS_INIT = { GIT_MERGE_TREE_OPTS_VERSION }; 37 38 int git_merge_base( 39 git_oid *out_, 40 git_repository *repo, 41 const(git_oid)* one, 42 const(git_oid)* two); 43 int git_merge_base_many( 44 git_oid *out_, 45 git_repository *repo, 46 const(git_oid)* input_array, 47 size_t length); 48 int git_merge_head_from_ref( 49 git_merge_head **out_, 50 git_repository *repo, 51 git_reference *ref_); 52 int git_merge_head_from_fetchhead( 53 git_merge_head **out_, 54 git_repository *repo, 55 const(char)* branch_name, 56 const(char)* remote_url, 57 const(git_oid)* oid); 58 int git_merge_head_from_oid( 59 git_merge_head **out_, 60 git_repository *repo, 61 const(git_oid)* oid); 62 void git_merge_head_free( 63 git_merge_head *head); 64 int git_merge_trees( 65 git_index **out_, 66 git_repository *repo, 67 const(git_tree)* ancestor_tree, 68 const(git_tree)* our_tree, 69 const(git_tree)* their_tree, 70 const(git_merge_tree_opts)* opts);