]> git.proxmox.com Git - libgit2.git/blobdiff - tests/libgit2/merge/merge_helpers.h
Merge https://salsa.debian.org/debian/libgit2 into proxmox/bullseye
[libgit2.git] / tests / libgit2 / merge / merge_helpers.h
diff --git a/tests/libgit2/merge/merge_helpers.h b/tests/libgit2/merge/merge_helpers.h
new file mode 100644 (file)
index 0000000..339812b
--- /dev/null
@@ -0,0 +1,72 @@
+#ifndef INCLUDE_cl_merge_helpers_h__
+#define INCLUDE_cl_merge_helpers_h__
+
+#include "merge.h"
+#include "git2/merge.h"
+
+struct merge_index_entry {
+       uint16_t mode;
+       char oid_str[GIT_OID_HEXSZ+1];
+       int stage;
+       char path[128];
+};
+
+struct merge_name_entry {
+       char ancestor_path[128];
+       char our_path[128];
+       char their_path[128];
+};
+
+struct merge_index_with_status {
+       struct merge_index_entry entry;
+       unsigned int status;
+};
+
+struct merge_reuc_entry {
+       char path[128];
+       unsigned int ancestor_mode;
+       unsigned int our_mode;
+       unsigned int their_mode;
+       char ancestor_oid_str[GIT_OID_HEXSZ+1];
+       char our_oid_str[GIT_OID_HEXSZ+1];
+       char their_oid_str[GIT_OID_HEXSZ+1];
+};
+
+struct merge_index_conflict_data {
+       struct merge_index_with_status ancestor;
+       struct merge_index_with_status ours;
+       struct merge_index_with_status theirs;
+       git_merge_diff_t change_type;
+};
+
+int merge_trees_from_branches(
+       git_index **index, git_repository *repo,
+       const char *ours_name, const char *theirs_name,
+       git_merge_options *opts);
+
+int merge_commits_from_branches(
+       git_index **index, git_repository *repo,
+       const char *ours_name, const char *theirs_name,
+       git_merge_options *opts);
+
+int merge_branches(git_repository *repo,
+       const char *ours_branch, const char *theirs_branch,
+       git_merge_options *merge_opts, git_checkout_options *checkout_opts);
+
+int merge_test_diff_list(git_merge_diff_list *diff_list, const struct merge_index_entry expected[], size_t expected_len);
+
+int merge_test_merge_conflicts(git_vector *conflicts, const struct merge_index_conflict_data expected[], size_t expected_len);
+
+int merge_test_index(git_index *index, const struct merge_index_entry expected[], size_t expected_len);
+
+int merge_test_names(git_index *index, const struct merge_name_entry expected[], size_t expected_len);
+
+int merge_test_reuc(git_index *index, const struct merge_reuc_entry expected[], size_t expected_len);
+
+int merge_test_workdir(git_repository *repo, const struct merge_index_entry expected[], size_t expected_len);
+
+void merge__dump_names(git_index *index);
+void merge__dump_index_entries(git_vector *index_entries);
+void merge__dump_reuc(git_index *index);
+
+#endif