diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2012-12-11 11:24:09 -0600 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2012-12-11 11:34:25 -0600 |
commit | fa9e0c287bb682912e72777a1b33ce574a166eb0 (patch) | |
tree | 33fc03cc4ff549e0b1eaad171a0eba769fb8d4a8 | |
parent | 187feb5a7d836602adee6c52f77f87550f19587e (diff) | |
download | libgit2-fa9e0c287bb682912e72777a1b33ce574a166eb0.tar.gz |
df conflicts
124 files changed, 735 insertions, 161 deletions
diff --git a/include/git2/diff_tree.h b/include/git2/diff_tree.h index f5e70c6b7..39f5c1a82 100644 --- a/include/git2/diff_tree.h +++ b/include/git2/diff_tree.h @@ -32,6 +32,20 @@ typedef enum { GIT_DIFF_TREE_RETURN_UNMODIFIED = (1 << 0), } git_diff_tree_option_t; +typedef enum { + GIT_DIFF_TREE_CONFLICT_NONE = 0, + GIT_DIFF_TREE_CONFLICT_BOTH_MODIFIED = (1 << 0), + GIT_DIFF_TREE_CONFLICT_BOTH_ADDED = (1 << 1), + GIT_DIFF_TREE_CONFLICT_BOTH_DELETED = (1 << 2), + GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE = (1 << 3), +} git_diff_tree_conflict_t; + +typedef enum { + GIT_DIFF_TREE_DF_NONE = 0, + GIT_DIFF_TREE_DF_DIRECTORY_FILE = (1 << 0), + GIT_DIFF_TREE_DF_CHILD = (1 << 1), +} git_diff_tree_df_conflict_t; + /** * The git_diff_tree_list list object that contains all individual * object deltas. @@ -53,6 +67,8 @@ typedef struct { git_diff_tree_entry ancestor; git_diff_tree_entry ours; git_diff_tree_entry theirs; + git_diff_tree_conflict_t conflict; + git_diff_tree_df_conflict_t df_conflict; } git_diff_tree_delta; /** Callback for the tree difference function. */ diff --git a/src/diff_tree.c b/src/diff_tree.c index ec20d0a84..297ac09dd 100644 --- a/src/diff_tree.c +++ b/src/diff_tree.c @@ -23,6 +23,10 @@ static int index_entry_cmp(git_index_entry *a, git_index_entry *b) int diff; assert (a && b); + + /* Ignore tree changes */ + if (S_ISDIR(a->mode) && S_ISDIR(b->mode)) + return 0; if ((diff = a->mode - b->mode) == 0) diff = git_oid_cmp(&a->oid, &b->oid); @@ -39,9 +43,9 @@ int git_diff_tree_many( void *payload) { git_iterator **iterators; - git_index_entry **items = NULL, *best_next_item, **next_items; + git_index_entry **items = NULL, *best_cur_item, **cur_items; git_vector_cmp entry_compare = git_index_entry__cmp; - int next_item_modified; + int cur_item_modified; size_t i; int error = 0; @@ -53,8 +57,8 @@ int git_diff_tree_many( items = git__calloc(trees_length, sizeof(git_index_entry *)); GITERR_CHECK_ALLOC(items); - next_items = git__calloc(trees_length, sizeof(git_index_entry *)); - GITERR_CHECK_ALLOC(next_items); + cur_items = git__calloc(trees_length, sizeof(git_index_entry *)); + GITERR_CHECK_ALLOC(cur_items); for (i = 0; i < trees_length; i++) { if ((error = git_iterator_for_tree(&iterators[i], repo, trees[i])) < 0) @@ -69,50 +73,49 @@ int git_diff_tree_many( } while (true) { - memset(next_items, 0x0, sizeof(git_index_entry *) * trees_length); - best_next_item = NULL; - next_item_modified = 0; + memset(cur_items, 0x0, sizeof(git_index_entry *) * trees_length); + best_cur_item = NULL; + cur_item_modified = 0; /* Find the next path(s) to consume from each iterator */ for (i = 0; i < trees_length; i++) { if (items[i] == NULL) { - next_item_modified = 1; + cur_item_modified = 1; continue; } - if (best_next_item == NULL) { - best_next_item = items[i]; - next_items[i] = items[i]; + if (best_cur_item == NULL) { + best_cur_item = items[i]; + cur_items[i] = items[i]; } else { - int diff = entry_compare(items[i], best_next_item); - - if (diff < 0) { + int path_diff = entry_compare(items[i], best_cur_item); + + if (path_diff < 0) { /* * Found an item that sorts before our current item, make * our current item this one. */ - memset(next_items, 0x0, - sizeof(git_index_entry *) * trees_length); - next_item_modified = 1; - best_next_item = items[i]; - next_items[i] = items[i]; - } else if (diff > 0) { + memset(cur_items, 0x0, sizeof(git_index_entry *) * trees_length); + cur_item_modified = 1; + best_cur_item = items[i]; + cur_items[i] = items[i]; + } else if (path_diff > 0) { /* No entry for the current item, this is modified */ - next_item_modified = 1; - } else if (diff == 0) { - next_items[i] = items[i]; + cur_item_modified = 1; + } else if (path_diff == 0) { + cur_items[i] = items[i]; - if (!next_item_modified && !(flags & GIT_DIFF_TREE_RETURN_UNMODIFIED)) - next_item_modified = index_entry_cmp(best_next_item, items[i]); + if (!cur_item_modified && !(flags & GIT_DIFF_TREE_RETURN_UNMODIFIED)) + cur_item_modified = index_entry_cmp(best_cur_item, items[i]); } } } - if (best_next_item == NULL) + if (best_cur_item == NULL) break; - if (next_item_modified || (flags & GIT_DIFF_TREE_RETURN_UNMODIFIED)) { - if (callback((const git_index_entry **)next_items, payload)) { + if (cur_item_modified || (flags & GIT_DIFF_TREE_RETURN_UNMODIFIED)) { + if (callback((const git_index_entry **)cur_items, payload)) { error = GIT_EUSER; goto done; } @@ -120,7 +123,7 @@ int git_diff_tree_many( /* Advance each iterator that participated */ for (i = 0; i < trees_length; i++) { - if (next_items[i] != NULL && + if (cur_items[i] != NULL && (error = git_iterator_advance(iterators[i], (const git_index_entry **)&items[i])) < 0) goto done; @@ -133,7 +136,7 @@ done: git__free(iterators); git__free(items); - git__free(next_items); + git__free(cur_items); return error; } @@ -146,7 +149,15 @@ typedef enum { INDEX_ANCESTOR = 0, INDEX_OURS = 1, INDEX_THEIRS = 2 -} threeway_index; +} diff_tree_threeway_index; + +struct diff_tree_threeway_data { + git_diff_tree_list *diff_tree; + + const char *df_path; + const char *prev_path; + git_diff_tree_delta *prev_delta_tree; +}; static git_diff_tree_list *diff_tree__list_alloc(git_repository *repo) { @@ -165,15 +176,103 @@ static git_diff_tree_list *diff_tree__list_alloc(git_repository *repo) return diff_tree; } +GIT_INLINE(const char *) diff_tree__path(const git_diff_tree_delta *delta_tree) +{ + if (GIT_DIFF_TREE_FILE_EXISTS(delta_tree->ancestor)) + return delta_tree->ancestor.file.path; + else if (GIT_DIFF_TREE_FILE_EXISTS(delta_tree->ours)) + return delta_tree->ours.file.path; + else if (GIT_DIFF_TREE_FILE_EXISTS(delta_tree->theirs)) + return delta_tree->theirs.file.path; + + return NULL; +} + +GIT_INLINE(bool) diff_tree__delta_added_or_modified( + const git_diff_tree_delta *delta_tree) +{ + if (delta_tree->ours.status == GIT_DELTA_ADDED || + delta_tree->ours.status == GIT_DELTA_MODIFIED || + delta_tree->theirs.status == GIT_DELTA_ADDED || + delta_tree->theirs.status == GIT_DELTA_MODIFIED) + return true; + + return false; +} + +GIT_INLINE(bool) path_is_prefixed(const char *parent, const char *child) +{ + size_t child_len = strlen(child); + size_t parent_len = strlen(parent); + + if (child_len < parent_len || + strncmp(parent, child, parent_len) != 0) + return 0; + + return (child[parent_len] == '/'); +} + +GIT_INLINE(int) diff_tree__compute_df_conflict( + struct diff_tree_threeway_data *threeway_data, + git_diff_tree_delta *delta_tree) +{ + const char *cur_path = diff_tree__path(delta_tree); + + /* Determine if this is a D/F conflict or the child of one */ + if (threeway_data->df_path && + path_is_prefixed(threeway_data->df_path, cur_path)) + delta_tree->df_conflict = GIT_DIFF_TREE_DF_CHILD; + else if(threeway_data->df_path) + threeway_data->df_path = NULL; + else if (threeway_data->prev_path && + diff_tree__delta_added_or_modified(threeway_data->prev_delta_tree) && + diff_tree__delta_added_or_modified(delta_tree) && + path_is_prefixed(threeway_data->prev_path, cur_path)) { + delta_tree->df_conflict = GIT_DIFF_TREE_DF_CHILD; + + threeway_data->prev_delta_tree->df_conflict = GIT_DIFF_TREE_DF_DIRECTORY_FILE; + threeway_data->df_path = threeway_data->prev_path; + } + + threeway_data->prev_path = cur_path; + threeway_data->prev_delta_tree = delta_tree; + + return 0; +} + +GIT_INLINE(int) diff_tree__compute_conflict( + git_diff_tree_delta *delta_tree) +{ + if (delta_tree->ours.status == GIT_DELTA_ADDED && + delta_tree->theirs.status == GIT_DELTA_ADDED) + delta_tree->conflict = GIT_DIFF_TREE_CONFLICT_BOTH_ADDED; + else if (delta_tree->ours.status == GIT_DELTA_MODIFIED && + delta_tree->theirs.status == GIT_DELTA_MODIFIED) + delta_tree->conflict = GIT_DIFF_TREE_CONFLICT_BOTH_MODIFIED; + else if (delta_tree->ours.status == GIT_DELTA_DELETED && + delta_tree->theirs.status == GIT_DELTA_DELETED) + delta_tree->conflict = GIT_DIFF_TREE_CONFLICT_BOTH_DELETED; + else if (delta_tree->ours.status == GIT_DELTA_MODIFIED && + delta_tree->theirs.status == GIT_DELTA_DELETED) + delta_tree->conflict = GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE; + else if (delta_tree->ours.status == GIT_DELTA_DELETED && + delta_tree->theirs.status == GIT_DELTA_MODIFIED) + delta_tree->conflict = GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE; + else + delta_tree->conflict = GIT_DIFF_TREE_CONFLICT_NONE; + + return 0; +} + static git_diff_tree_delta *diff_tree__delta_from_entries( - git_diff_tree_list *diff_tree, + struct diff_tree_threeway_data *threeway_data, const git_index_entry **entries) { git_diff_tree_delta *delta_tree; git_diff_tree_entry *tree_entries[3]; size_t i; - if ((delta_tree = git_pool_malloc(&diff_tree->pool, sizeof(git_diff_tree_delta))) == NULL) + if ((delta_tree = git_pool_malloc(&threeway_data->diff_tree->pool, sizeof(git_diff_tree_delta))) == NULL) return NULL; tree_entries[INDEX_ANCESTOR] = &delta_tree->ancestor; @@ -183,8 +282,8 @@ static git_diff_tree_delta *diff_tree__delta_from_entries( for (i = 0; i < 3; i++) { if (entries[i] == NULL) continue; - - if ((tree_entries[i]->file.path = git_pool_strdup(&diff_tree->pool, entries[i]->path)) == NULL) + + if ((tree_entries[i]->file.path = git_pool_strdup(&threeway_data->diff_tree->pool, entries[i]->path)) == NULL) return NULL; git_oid_cpy(&tree_entries[i]->file.oid, &entries[i]->oid); @@ -196,16 +295,18 @@ static git_diff_tree_delta *diff_tree__delta_from_entries( for (i = 1; i < 3; i++) { if (entries[INDEX_ANCESTOR] == NULL && entries[i] == NULL) continue; - else if (entries[INDEX_ANCESTOR] == NULL && entries[i] != NULL) - tree_entries[i]->status = GIT_DELTA_ADDED; + + if (entries[INDEX_ANCESTOR] == NULL && entries[i] != NULL) + tree_entries[i]->status |= GIT_DELTA_ADDED; else if (entries[INDEX_ANCESTOR] != NULL && entries[i] == NULL) - tree_entries[i]->status = GIT_DELTA_DELETED; - else if (S_ISDIR(entries[i]->mode) ^ S_ISDIR(entries[i]->mode) || - S_ISLNK(entries[i]->mode) ^ S_ISLNK(entries[i]->mode)) - tree_entries[i]->status = GIT_DELTA_TYPECHANGE; + tree_entries[i]->status |= GIT_DELTA_DELETED; + else if (S_ISDIR(entries[INDEX_ANCESTOR]->mode) ^ S_ISDIR(entries[i]->mode)) + tree_entries[i]->status |= GIT_DELTA_TYPECHANGE; + else if(S_ISLNK(entries[INDEX_ANCESTOR]->mode) ^ S_ISLNK(entries[i]->mode)) + tree_entries[i]->status |= GIT_DELTA_TYPECHANGE; else if (git_oid_cmp(&entries[INDEX_ANCESTOR]->oid, &entries[i]->oid) || - entries[INDEX_ANCESTOR]->mode != entries[i]->mode) - tree_entries[i]->status = GIT_DELTA_MODIFIED; + entries[INDEX_ANCESTOR]->mode != entries[i]->mode) + tree_entries[i]->status |= GIT_DELTA_MODIFIED; } return delta_tree; @@ -213,13 +314,15 @@ static git_diff_tree_delta *diff_tree__delta_from_entries( static int diff_tree__create_delta(const git_index_entry **tree_items, void *payload) { - git_diff_tree_list *diff_tree = payload; - git_diff_tree_delta *delta; + struct diff_tree_threeway_data *threeway_data = payload; + git_diff_tree_delta *delta_tree; - assert(tree_items && diff_tree); + assert(tree_items && threeway_data); - if ((delta = diff_tree__delta_from_entries(diff_tree, tree_items)) == NULL || - git_vector_insert(&diff_tree->deltas, delta) < 0) + if ((delta_tree = diff_tree__delta_from_entries(threeway_data, tree_items)) == NULL || + diff_tree__compute_conflict(delta_tree) < 0 || + diff_tree__compute_df_conflict(threeway_data, delta_tree) < 0 || + git_vector_insert(&threeway_data->diff_tree->deltas, delta_tree) < 0) return -1; return 0; @@ -232,6 +335,7 @@ int git_diff_tree(git_diff_tree_list **out, const git_tree *their_tree, uint32_t flags) { + struct diff_tree_threeway_data threeway_data; git_diff_tree_list *diff_tree; git_tree const *trees[3]; int error = 0; @@ -239,21 +343,24 @@ int git_diff_tree(git_diff_tree_list **out, assert(out && repo && ancestor_tree && our_tree && their_tree); *out = NULL; - + diff_tree = diff_tree__list_alloc(repo); GITERR_CHECK_ALLOC(diff_tree); + memset(&threeway_data, 0x0, sizeof(struct diff_tree_threeway_data)); + threeway_data.diff_tree = diff_tree; + trees[INDEX_ANCESTOR] = ancestor_tree; trees[INDEX_OURS] = our_tree; trees[INDEX_THEIRS] = their_tree; - if ((error = git_diff_tree_many(repo, trees, 3, flags, diff_tree__create_delta, diff_tree)) < 0) { + if ((error = git_diff_tree_many(repo, trees, 3, flags, diff_tree__create_delta, &threeway_data)) < 0) git_diff_tree_list_free(diff_tree); - return error; - } - *out = diff_tree; - return 0; + if (error >= 0) + *out = diff_tree; + + return error; } int git_diff_tree_foreach( diff --git a/src/merge.c b/src/merge.c index 6c11d255c..e900b280e 100644 --- a/src/merge.c +++ b/src/merge.c @@ -705,8 +705,6 @@ static int merge_mark_conflict_unresolved(git_index *index, const git_diff_tree_ assert(index && delta); if ((ancestor_exists = GIT_DIFF_TREE_FILE_EXISTS(delta->ancestor))) { - ancestor_exists = 1; - memset(&ancestor_entry, 0x0, sizeof(git_index_entry)); ancestor_entry.path = (char *)delta->ancestor.file.path; ancestor_entry.mode = delta->ancestor.file.mode; @@ -714,8 +712,6 @@ static int merge_mark_conflict_unresolved(git_index *index, const git_diff_tree_ } if ((ours_exists = GIT_DIFF_TREE_FILE_EXISTS(delta->ours))) { - ours_exists = 1; - memset(&our_entry, 0x0, sizeof(git_index_entry)); our_entry.path = (char *)delta->ours.file.path; our_entry.mode = delta->ours.file.mode; @@ -723,8 +719,6 @@ static int merge_mark_conflict_unresolved(git_index *index, const git_diff_tree_ } if ((theirs_exists = GIT_DIFF_TREE_FILE_EXISTS(delta->theirs))) { - theirs_exists = 1; - memset(&their_entry, 0x0, sizeof(git_index_entry)); their_entry.path = (char *)delta->theirs.file.path; their_entry.mode = delta->theirs.file.mode; @@ -758,7 +752,10 @@ static int merge_conflict_resolve_trivial( *resolved = 0; - /* TODO: reject non-files */ + /* TODO: (optionally) reject children of d/f conflicts */ + + if (delta->df_conflict == GIT_DIFF_TREE_DF_DIRECTORY_FILE) + return 0; ancestor_empty = !GIT_DIFF_TREE_FILE_EXISTS(delta->ancestor); ours_empty = !GIT_DIFF_TREE_FILE_EXISTS(delta->ours); @@ -842,8 +839,11 @@ static int merge_conflict_resolve_removed( if (resolve_flags & GIT_MERGE_RESOLVE_NO_REMOVED) return 0; - /* TODO: reject non-files */ - + /* TODO: (optionally) reject children of d/f conflicts */ + + if (delta->df_conflict == GIT_DIFF_TREE_DF_DIRECTORY_FILE) + return 0; + ours_empty = !GIT_DIFF_TREE_FILE_EXISTS(delta->ours); theirs_empty = !GIT_DIFF_TREE_FILE_EXISTS(delta->theirs); @@ -890,9 +890,18 @@ static int merge_conflict_resolve_automerge( if (resolve_flags & GIT_MERGE_RESOLVE_NO_AUTOMERGE) return 0; - /* TODO: reject non-files */ + /* Reject D/F conflicts */ + if (delta->df_conflict == GIT_DIFF_TREE_DF_DIRECTORY_FILE) + return 0; + + /* Reject link/file conflicts. */ + if ((S_ISLNK(delta->ancestor.file.mode) ^ S_ISLNK(delta->ours.file.mode)) || + (S_ISLNK(delta->ancestor.file.mode) ^ S_ISLNK(delta->theirs.file.mode))) + return 0; + + /* TODO: reject children of d/f conflicts */ + /* TODO: reject name conflicts */ - /* TODO: reject filemode conflicts */ if ((error = git_repository_odb(&odb, repo)) < 0) goto done; @@ -971,10 +980,17 @@ static int merge_conflict_write_diff3(int *conflict_written, if (flags & GIT_MERGE_CONFLICT_NO_DIFF3) return 0; + + /* Reject link/file conflicts. */ + if ((S_ISLNK(delta->ancestor.file.mode) ^ S_ISLNK(delta->ours.file.mode)) || + (S_ISLNK(delta->ancestor.file.mode) ^ S_ISLNK(delta->theirs.file.mode))) + return 0; - /* TODO: reject non-files */ - /* TODO: reject name conflicts */ - /* TODO: reject filemode conflicts */ + /* Reject D/F conflicts */ + if (delta->df_conflict == GIT_DIFF_TREE_DF_DIRECTORY_FILE) + return 0; + + /* TODO: reject name conflicts? */ git_repository_odb(&odb, repo); @@ -998,19 +1014,33 @@ done: return error; } -static int merge_conflict_write_side(git_repository *repo, +static int merge_conflict_write_file( + git_repository *repo, + const git_diff_tree_entry *entry, + const char *path) +{ + git_checkout_opts opts; + + memset(&opts, 0x0, sizeof(git_checkout_opts)); + opts.file_open_flags = O_WRONLY | O_CREAT | O_TRUNC | O_EXCL; + + if (path == NULL) + path = entry->file.path; + + return git_checkout_blob(repo, &entry->file.oid, path, entry->file.mode, &opts); +} + +static int merge_conflict_write_side( + git_repository *repo, const git_merge_head *merge_head, const git_diff_tree_entry *entry) { git_buf path = GIT_BUF_INIT; char oid_str[GIT_OID_HEXSZ]; - git_checkout_opts opts; int error = 0; assert(repo && merge_head && entry); - memset(&opts, 0x0, sizeof(git_checkout_opts)); - /* TODO: what if this file exists? */ git_buf_puts(&path, entry->file.path); @@ -1023,17 +1053,15 @@ static int merge_conflict_write_side(git_repository *repo, git_buf_put(&path, oid_str, GIT_OID_HEXSZ); } - opts.file_open_flags = O_WRONLY | O_CREAT | O_TRUNC | O_EXCL; - - error = git_checkout_blob(repo, &entry->file.oid, git_buf_cstr(&path), - entry->file.mode, &opts); + error = merge_conflict_write_file(repo, entry, git_buf_cstr(&path)); git_buf_free(&path); return error; } -static int merge_conflict_write_sides(int *conflict_written, +static int merge_conflict_write_sides( + int *conflict_written, git_repository *repo, const git_merge_head *ancestor_head, const git_merge_head *our_head, @@ -1049,12 +1077,16 @@ static int merge_conflict_write_sides(int *conflict_written, *conflict_written = 0; - /* TODO: handle trees */ - if (GIT_DIFF_TREE_FILE_EXISTS(delta->ours) && - (error = merge_conflict_write_side(repo, our_head, &delta->ours)) >= 0 && - GIT_DIFF_TREE_FILE_EXISTS(delta->theirs) && - (error = merge_conflict_write_side(repo, their_head, &delta->theirs)) >= 0) + (error = merge_conflict_write_side(repo, our_head, &delta->ours)) < 0) + goto done; + + if (GIT_DIFF_TREE_FILE_EXISTS(delta->theirs) && + (error = merge_conflict_write_side(repo, their_head, &delta->theirs)) < 0) + goto done; + +done: + if (error >= 0) *conflict_written = 1; return error; diff --git a/tests-clar/merge/merge_helpers.c b/tests-clar/merge/merge_helpers.c index 8f1a16c56..db410da0a 100644 --- a/tests-clar/merge/merge_helpers.c +++ b/tests-clar/merge/merge_helpers.c @@ -1,6 +1,29 @@ #include "clar_libgit2.h" #include "merge_helpers.h" +int merge_branches(git_merge_result **result, git_repository *repo, const char *ours_branch, const char *theirs_branch, git_merge_opts *opts) +{ + git_reference *head_ref, *theirs_ref; + git_merge_head *theirs_head; + git_checkout_opts head_checkout_opts = GIT_CHECKOUT_OPTS_INIT; + + head_checkout_opts.checkout_strategy = GIT_CHECKOUT_FORCE; + + cl_git_pass(git_reference_symbolic_create(&head_ref, repo, "HEAD", ours_branch, 1)); + cl_git_pass(git_checkout_head(repo, &head_checkout_opts)); + + cl_git_pass(git_reference_lookup(&theirs_ref, repo, theirs_branch)); + cl_git_pass(git_merge_head_from_ref(&theirs_head, repo, theirs_ref)); + + cl_git_pass(git_merge(result, repo, (const git_merge_head **)&theirs_head, 1, opts)); + + git_reference_free(head_ref); + git_reference_free(theirs_ref); + git_merge_head_free(theirs_head); + + return 0; +} + int merge_test_index(git_index *index, const struct merge_index_entry expected[], size_t expected_len) { size_t i; diff --git a/tests-clar/merge/merge_helpers.h b/tests-clar/merge/merge_helpers.h index 1c48d09d7..574f7bb6e 100644 --- a/tests-clar/merge/merge_helpers.h +++ b/tests-clar/merge/merge_helpers.h @@ -18,6 +18,8 @@ struct merge_reuc_entry { char their_oid_str[41]; }; +int merge_branches(git_merge_result **result, git_repository *repo, const char *ours_branch, const char *theirs_branch, git_merge_opts *opts); + int merge_test_index(git_index *index, const struct merge_index_entry expected[], size_t expected_len); int merge_test_reuc(git_index *index, const struct merge_reuc_entry expected[], size_t expected_len); diff --git a/tests-clar/merge/modeconflict.c b/tests-clar/merge/modeconflict.c new file mode 100644 index 000000000..b33d87213 --- /dev/null +++ b/tests-clar/merge/modeconflict.c @@ -0,0 +1,62 @@ +#include "clar_libgit2.h" +#include "git2/repository.h" +#include "git2/merge.h" +#include "buffer.h" +#include "merge.h" +#include "merge_helpers.h" +#include "fileops.h" + +static git_repository *repo; +static git_index *repo_index; + +#define TEST_REPO_PATH "merge-resolve" + +#define DF_SIDE1_BRANCH "df_side1" +#define DF_SIDE2_BRANCH "df_side2" + + +// Fixture setup and teardown +void test_merge_modeconflict__initialize(void) +{ + repo = cl_git_sandbox_init(TEST_REPO_PATH); + git_repository_index(&repo_index, repo); +} + +void test_merge_modeconflict__cleanup(void) +{ + git_index_free(repo_index); + cl_git_sandbox_cleanup(); +} + +void test_merge_modeconflict__df_conflict(void) +{ + git_merge_result *result; + + struct merge_index_entry merge_index_entries[] = { + { 0100644, "49130a28ef567af9a6a6104c38773fedfa5f9742", 2, "dir-10" }, + { 0100644, "6c06dcd163587c2cc18be44857e0b71116382aeb", 3, "dir-10" }, + { 0100644, "43aafd43bea779ec74317dc361f45ae3f532a505", 0, "dir-6" }, + { 0100644, "a031a28ae70e33a641ce4b8a8f6317f1ab79dee4", 3, "dir-7" }, + { 0100644, "5012fd565b1393bdfda1805d4ec38ce6619e1fd1", 1, "dir-7/file.txt" }, + { 0100644, "a5563304ddf6caba25cb50323a2ea6f7dbfcadca", 2, "dir-7/file.txt" }, + { 0100644, "e9ad6ec3e38364a3d07feda7c4197d4d845c53b5", 0, "dir-8" }, + { 0100644, "3ef4d30382ca33fdeba9fda895a99e0891ba37aa", 2, "dir-9" }, + { 0100644, "fc4c636d6515e9e261f9260dbcf3cc6eca97ea08", 1, "dir-9/file.txt" }, + { 0100644, "76ab0e2868197ec158ddd6c78d8a0d2fd73d38f9", 3, "dir-9/file.txt" }, + { 0100644, "5c2411f8075f48a6b2fdb85ebc0d371747c4df15", 0, "file-1/new" }, + { 0100644, "a39a620dae5bc8b4e771cd4d251b7d080401a21e", 1, "file-2" }, + { 0100644, "d963979c237d08b6ba39062ee7bf64c7d34a27f8", 2, "file-2" }, + { 0100644, "5c341ead2ba6f2af98ce5ec3fe84f6b6d2899c0d", 0, "file-2/new" }, + { 0100644, "9efe7723802d4305142eee177e018fee1572c4f4", 0, "file-3/new" }, + { 0100644, "bacac9b3493509aa15e1730e1545fc0919d1dae0", 1, "file-4" }, + { 0100644, "7663fce0130db092936b137cabd693ec234eb060", 3, "file-4" }, + { 0100644, "e49f917b448d1340b31d76e54ba388268fd4c922", 0, "file-4/new" }, + { 0100644, "cab2cf23998b40f1af2d9d9a756dc9e285a8df4b", 2, "file-5/new" }, + { 0100644, "f5504f36e6f4eb797a56fc5bac6c6c7f32969bf2", 3, "file-5/new" }, + }; + + cl_git_pass(merge_branches(&result, repo, GIT_REFS_HEADS_DIR DF_SIDE1_BRANCH, GIT_REFS_HEADS_DIR DF_SIDE2_BRANCH, NULL)); + + cl_assert(merge_test_index(repo_index, merge_index_entries, 20)); + +}
\ No newline at end of file diff --git a/tests-clar/merge/simple.c b/tests-clar/merge/simple.c index 8a64ff887..974c37c54 100644 --- a/tests-clar/merge/simple.c +++ b/tests-clar/merge/simple.c @@ -208,11 +208,13 @@ void test_merge_simple__no_diff3(void) cl_assert(merge_test_reuc(repo_index, merge_reuc_entries, 3)); cl_assert(!git_path_exists(TEST_REPO_PATH "/conflicting.txt")); + cl_assert(git_path_exists(TEST_REPO_PATH "/conflicting.txt~7cb63eed597130ba4abb87b3e544b85021905520")); + cl_assert(git_path_exists(TEST_REPO_PATH "/conflicting.txt~HEAD")); git_merge_result_free(result); } -void test_merge_simple__ours(void) +void test_merge_simple__favor_ours(void) { git_merge_result *result; @@ -241,7 +243,7 @@ void test_merge_simple__ours(void) git_merge_result_free(result); } -void test_merge_simple__theirs(void) +void test_merge_simple__favor_theirs(void) { git_merge_result *result; diff --git a/tests-clar/resources/merge-resolve/.gitted/COMMIT_EDITMSG b/tests-clar/resources/merge-resolve/.gitted/COMMIT_EDITMSG index d11c5bdaa..bd4f33fa5 100644 --- a/tests-clar/resources/merge-resolve/.gitted/COMMIT_EDITMSG +++ b/tests-clar/resources/merge-resolve/.gitted/COMMIT_EDITMSG @@ -1 +1 @@ -renames2 +df_side2 diff --git a/tests-clar/resources/merge-resolve/.gitted/ORIG_HEAD b/tests-clar/resources/merge-resolve/.gitted/ORIG_HEAD index 7bc1a8d15..29331cf71 100644 --- a/tests-clar/resources/merge-resolve/.gitted/ORIG_HEAD +++ b/tests-clar/resources/merge-resolve/.gitted/ORIG_HEAD @@ -1 +1 @@ -c607fc30883e335def28cd686b51f6cfa02b06ec +9a301fbe6fada7dcb74fcd7c20269b5c743459a7 diff --git a/tests-clar/resources/merge-resolve/.gitted/index b/tests-clar/resources/merge-resolve/.gitted/index Binary files differindex 10bc40d5a..37a73e3e1 100644 --- a/tests-clar/resources/merge-resolve/.gitted/index +++ b/tests-clar/resources/merge-resolve/.gitted/index diff --git a/tests-clar/resources/merge-resolve/.gitted/logs/HEAD b/tests-clar/resources/merge-resolve/.gitted/logs/HEAD index ab8f1c1fe..dd8ae4ac6 100644 --- a/tests-clar/resources/merge-resolve/.gitted/logs/HEAD +++ b/tests-clar/resources/merge-resolve/.gitted/logs/HEAD @@ -133,3 +133,80 @@ bd593285fc7fe4ca18ccdbabf027f5d689101452 bd593285fc7fe4ca18ccdbabf027f5d68910145 bd593285fc7fe4ca18ccdbabf027f5d689101452 c607fc30883e335def28cd686b51f6cfa02b06ec Edward Thomson <ethomson@edwardthomson.com> 1353794677 -0600 reset: moving to c607fc30883e335def28cd686b51f6cfa02b06ec c607fc30883e335def28cd686b51f6cfa02b06ec ab40af3cb8a3ed2e2843e96d9aa7871336b94573 Edward Thomson <ethomson@edwardthomson.com> 1353794852 -0600 commit: renames2 ab40af3cb8a3ed2e2843e96d9aa7871336b94573 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1353794883 -0600 checkout: moving from renames2 to master +bd593285fc7fe4ca18ccdbabf027f5d689101452 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1354574697 -0600 checkout: moving from master to df_side1 +bd593285fc7fe4ca18ccdbabf027f5d689101452 d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1354574962 -0600 commit: df_ancestor +d4207f77243500bec335ab477f9227fcdb1e271a c94b27e41064c521120627e07e2035cca1d24ffa Edward Thomson <ethomson@edwardthomson.com> 1354575027 -0600 commit: df_side1 +c94b27e41064c521120627e07e2035cca1d24ffa d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1354575070 -0600 checkout: moving from df_side1 to df_side2 +d4207f77243500bec335ab477f9227fcdb1e271a f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 Edward Thomson <ethomson@edwardthomson.com> 1354575206 -0600 commit: df_side2 +f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1354575381 -0600 checkout: moving from df_side2 to master +bd593285fc7fe4ca18ccdbabf027f5d689101452 c94b27e41064c521120627e07e2035cca1d24ffa Edward Thomson <ethomson@edwardthomson.com> 1355017614 -0600 checkout: moving from master to df_side1 +c94b27e41064c521120627e07e2035cca1d24ffa a90bc3fb6f15181972a2959a921429efbd81a473 Edward Thomson <ethomson@edwardthomson.com> 1355017650 -0600 commit: df_added +a90bc3fb6f15181972a2959a921429efbd81a473 c94b27e41064c521120627e07e2035cca1d24ffa Edward Thomson <ethomson@edwardthomson.com> 1355017673 -0600 checkout: moving from df_side1 to c94b27e +c94b27e41064c521120627e07e2035cca1d24ffa d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355017673 -0600 rebase -i (squash): updating HEAD +d4207f77243500bec335ab477f9227fcdb1e271a 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355017673 -0600 rebase -i (squash): df_side1 +005b6fcc8fec71d2550bef8462d169b3c26aa14b 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355017676 -0600 rebase -i (finish): returning to refs/heads/df_side1 +005b6fcc8fec71d2550bef8462d169b3c26aa14b f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 Edward Thomson <ethomson@edwardthomson.com> 1355017715 -0600 reset: moving to df_side2 +f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 8c749d9968d4b10dcfb06c9f97d0e5d92d337071 Edward Thomson <ethomson@edwardthomson.com> 1355017744 -0600 commit: df_added +8c749d9968d4b10dcfb06c9f97d0e5d92d337071 f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 Edward Thomson <ethomson@edwardthomson.com> 1355017754 -0600 checkout: moving from df_side1 to f8958bd +f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355017754 -0600 rebase -i (squash): updating HEAD +d4207f77243500bec335ab477f9227fcdb1e271a 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355017754 -0600 rebase -i (squash): df_side2 +0204a84f822acbf6386b36d33f1f6bc68bbbf858 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355017756 -0600 rebase -i (finish): returning to refs/heads/df_side1 +0204a84f822acbf6386b36d33f1f6bc68bbbf858 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355017793 -0600 reset: moving to 005b6fcc8fec71d2550bef8462d169b3c26aa14b +005b6fcc8fec71d2550bef8462d169b3c26aa14b 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355017826 -0600 reset: moving to 0204a84 +0204a84f822acbf6386b36d33f1f6bc68bbbf858 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1355017847 -0600 checkout: moving from df_side1 to master +bd593285fc7fe4ca18ccdbabf027f5d689101452 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355168677 -0600 checkout: moving from master to df_side1 +005b6fcc8fec71d2550bef8462d169b3c26aa14b 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355168829 -0600 checkout: moving from df_side1 to df_side1 +005b6fcc8fec71d2550bef8462d169b3c26aa14b 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355168838 -0600 checkout: moving from df_side1 to df_side1 +005b6fcc8fec71d2550bef8462d169b3c26aa14b e8107f24196736b870a318a0e28f048e29f6feff Edward Thomson <ethomson@edwardthomson.com> 1355169065 -0600 commit: df_side1 +e8107f24196736b870a318a0e28f048e29f6feff 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355169081 -0600 checkout: moving from df_side1 to 005b6fc +005b6fcc8fec71d2550bef8462d169b3c26aa14b d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355169081 -0600 rebase -i (squash): updating HEAD +d4207f77243500bec335ab477f9227fcdb1e271a 80a8fbb3abb1ba423d554e9630b8fc2e5698f86b Edward Thomson <ethomson@edwardthomson.com> 1355169081 -0600 rebase -i (squash): df_side1 +80a8fbb3abb1ba423d554e9630b8fc2e5698f86b 80a8fbb3abb1ba423d554e9630b8fc2e5698f86b Edward Thomson <ethomson@edwardthomson.com> 1355169084 -0600 rebase -i (finish): returning to refs/heads/df_side1 +80a8fbb3abb1ba423d554e9630b8fc2e5698f86b 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355169141 -0600 checkout: moving from df_side1 to df_side2 +0204a84f822acbf6386b36d33f1f6bc68bbbf858 944f5dd1a867cab4c2bbcb896493435cae1dcc1a Edward Thomson <ethomson@edwardthomson.com> 1355169174 -0600 commit: both +944f5dd1a867cab4c2bbcb896493435cae1dcc1a 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355169182 -0600 checkout: moving from df_side2 to 0204a84 +0204a84f822acbf6386b36d33f1f6bc68bbbf858 d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355169182 -0600 rebase -i (squash): updating HEAD +d4207f77243500bec335ab477f9227fcdb1e271a 57079a46233ae2b6df62e9ade71c4948512abefb Edward Thomson <ethomson@edwardthomson.com> 1355169182 -0600 rebase -i (squash): df_side2 +57079a46233ae2b6df62e9ade71c4948512abefb 57079a46233ae2b6df62e9ade71c4948512abefb Edward Thomson <ethomson@edwardthomson.com> 1355169185 -0600 rebase -i (finish): returning to refs/heads/df_side2 +57079a46233ae2b6df62e9ade71c4948512abefb 80a8fbb3abb1ba423d554e9630b8fc2e5698f86b Edward Thomson <ethomson@edwardthomson.com> 1355169241 -0600 checkout: moving from df_side2 to df_side1 +80a8fbb3abb1ba423d554e9630b8fc2e5698f86b e65a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 Edward Thomson <ethomson@edwardthomson.com> 1355169419 -0600 commit: side1 +e65a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 80a8fbb3abb1ba423d554e9630b8fc2e5698f86b Edward Thomson <ethomson@edwardthomson.com> 1355169431 -0600 checkout: moving from df_side1 to 80a8fbb +80a8fbb3abb1ba423d554e9630b8fc2e5698f86b d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355169431 -0600 rebase -i (squash): updating HEAD +d4207f77243500bec335ab477f9227fcdb1e271a 5dc1018e90b19654bee986b7a0c268804d39659d Edward Thomson <ethomson@edwardthomson.com> 1355169431 -0600 rebase -i (squash): df_side1 +5dc1018e90b19654bee986b7a0c268804d39659d 5dc1018e90b19654bee986b7a0c268804d39659d Edward Thomson <ethomson@edwardthomson.com> 1355169435 -0600 rebase -i (finish): returning to refs/heads/df_side1 +5dc1018e90b19654bee986b7a0c268804d39659d 57079a46233ae2b6df62e9ade71c4948512abefb Edward Thomson <ethomson@edwardthomson.com> 1355169439 -0600 checkout: moving from df_side1 to df_side2 +57079a46233ae2b6df62e9ade71c4948512abefb 58e853f66699fd02629fd50bde08082bc005933a Edward Thomson <ethomson@edwardthomson.com> 1355169460 -0600 commit: side2 +58e853f66699fd02629fd50bde08082bc005933a 57079a46233ae2b6df62e9ade71c4948512abefb Edward Thomson <ethomson@edwardthomson.com> 1355169469 -0600 checkout: moving from df_side2 to 57079a4 +57079a46233ae2b6df62e9ade71c4948512abefb d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355169469 -0600 rebase -i (squash): updating HEAD +d4207f77243500bec335ab477f9227fcdb1e271a fada9356aa3f74622327a3038ae9c6f92e1c5c1d Edward Thomson <ethomson@edwardthomson.com> 1355169469 -0600 rebase -i (squash): df_side2 +fada9356aa3f74622327a3038ae9c6f92e1c5c1d fada9356aa3f74622327a3038ae9c6f92e1c5c1d Edward Thomson <ethomson@edwardthomson.com> 1355169471 -0600 rebase -i (finish): returning to refs/heads/df_side2 +fada9356aa3f74622327a3038ae9c6f92e1c5c1d 5dc1018e90b19654bee986b7a0c268804d39659d Edward Thomson <ethomson@edwardthomson.com> 1355169494 -0600 checkout: moving from df_side2 to df_side1 +5dc1018e90b19654bee986b7a0c268804d39659d d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355169663 -0600 checkout: moving from df_side1 to d4207f77243500bec335ab477f9227fcdb1e271a +d4207f77243500bec335ab477f9227fcdb1e271a 849619b03ae540acee4d1edec96b86993da6b497 Edward Thomson <ethomson@edwardthomson.com> 1355169683 -0600 commit: both_dirs +849619b03ae540acee4d1edec96b86993da6b497 d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1355169691 -0600 checkout: moving from 849619b03ae540acee4d1edec96b86993da6b497 to d4207f7 +d4207f77243500bec335ab477f9227fcdb1e271a bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1355169691 -0600 rebase -i (squash): updating HEAD +bd593285fc7fe4ca18ccdbabf027f5d689101452 a765fb87eb2f7a1920b73b2d5a057f8f8476a42b Edward Thomson <ethomson@edwardthomson.com> 1355169691 -0600 rebase -i (squash): df_ancestor +a765fb87eb2f7a1920b73b2d5a057f8f8476a42b 5dc1018e90b19654bee986b7a0c268804d39659d Edward Thomson <ethomson@edwardthomson.com> 1355169706 -0600 checkout: moving from a765fb87eb2f7a1920b73b2d5a057f8f8476a42b to df_side1 +5dc1018e90b19654bee986b7a0c268804d39659d a765fb87eb2f7a1920b73b2d5a057f8f8476a42b Edward Thomson <ethomson@edwardthomson.com> 1355169715 -0600 checkout: moving from df_side1 to a765fb87eb2f7a1920b73b2d5a057f8f8476a42b^0 +a765fb87eb2f7a1920b73b2d5a057f8f8476a42b bc744705e1d8a019993cf88f62bc4020f1b80919 Edward Thomson <ethomson@edwardthomson.com> 1355169801 -0600 commit: df_side1 +bc744705e1d8a019993cf88f62bc4020f1b80919 bc744705e1d8a019993cf88f62bc4020f1b80919 Edward Thomson <ethomson@edwardthomson.com> 1355169822 -0600 checkout: moving from bc744705e1d8a019993cf88f62bc4020f1b80919 to df_side1 +bc744705e1d8a019993cf88f62bc4020f1b80919 fada9356aa3f74622327a3038ae9c6f92e1c5c1d Edward Thomson <ethomson@edwardthomson.com> 1355169826 -0600 checkout: moving from df_side1 to df_side2 +fada9356aa3f74622327a3038ae9c6f92e1c5c1d a765fb87eb2f7a1920b73b2d5a057f8f8476a42b Edward Thomson <ethomson@edwardthomson.com> 1355169866 -0600 checkout: moving from df_side2 to a765fb87eb2f7a1920b73b2d5a057f8f8476a42b^0 +a765fb87eb2f7a1920b73b2d5a057f8f8476a42b 95646149ab6b6ba6edc83cff678582538b457b2b Edward Thomson <ethomson@edwardthomson.com> 1355169897 -0600 rebase: df_side2 +95646149ab6b6ba6edc83cff678582538b457b2b 95646149ab6b6ba6edc83cff678582538b457b2b Edward Thomson <ethomson@edwardthomson.com> 1355169897 -0600 rebase finished: returning to refs/heads/df_side2 +95646149ab6b6ba6edc83cff678582538b457b2b bc744705e1d8a019993cf88f62bc4020f1b80919 Edward Thomson <ethomson@edwardthomson.com> 1355169949 -0600 checkout: moving from df_side2 to df_side1 +bc744705e1d8a019993cf88f62bc4020f1b80919 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1355170046 -0600 checkout: moving from df_side1 to master +bd593285fc7fe4ca18ccdbabf027f5d689101452 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1355181639 -0600 checkout: moving from master to df_ancestor +bd593285fc7fe4ca18ccdbabf027f5d689101452 2da538570bc1e5b2c3e855bf702f35248ad0735f Edward Thomson <ethomson@edwardthomson.com> 1355181673 -0600 commit: df_ancestor +2da538570bc1e5b2c3e855bf702f35248ad0735f a7dbfcbfc1a60709cb80b5ca24539008456531d0 Edward Thomson <ethomson@edwardthomson.com> 1355181715 -0600 commit: df_side1 +a7dbfcbfc1a60709cb80b5ca24539008456531d0 a7dbfcbfc1a60709cb80b5ca24539008456531d0 Edward Thomson <ethomson@edwardthomson.com> 1355181743 -0600 checkout: moving from df_ancestor to df_ancestor +a7dbfcbfc1a60709cb80b5ca24539008456531d0 9a301fbe6fada7dcb74fcd7c20269b5c743459a7 Edward Thomson <ethomson@edwardthomson.com> 1355181775 -0600 commit: df_side2 +9a301fbe6fada7dcb74fcd7c20269b5c743459a7 a7dbfcbfc1a60709cb80b5ca24539008456531d0 Edward Thomson <ethomson@edwardthomson.com> 1355181793 -0600 checkout: moving from df_ancestor to df_side1 +a7dbfcbfc1a60709cb80b5ca24539008456531d0 9a301fbe6fada7dcb74fcd7c20269b5c743459a7 Edward Thomson <ethomson@edwardthomson.com> 1355181797 -0600 checkout: moving from df_side1 to df_side2 +9a301fbe6fada7dcb74fcd7c20269b5c743459a7 9a301fbe6fada7dcb74fcd7c20269b5c743459a7 Edward Thomson <ethomson@edwardthomson.com> 1355182062 -0600 checkout: moving from df_side2 to df_ancestor +9a301fbe6fada7dcb74fcd7c20269b5c743459a7 2da538570bc1e5b2c3e855bf702f35248ad0735f Edward Thomson <ethomson@edwardthomson.com> 1355182067 -0600 reset: moving to 2da538570bc1e5b2c3e855bf702f35248ad0735f +2da538570bc1e5b2c3e855bf702f35248ad0735f 2da538570bc1e5b2c3e855bf702f35248ad0735f Edward Thomson <ethomson@edwardthomson.com> 1355182087 -0600 checkout: moving from df_ancestor to df_side2 +2da538570bc1e5b2c3e855bf702f35248ad0735f fc90237dc4891fa6c69827fc465632225e391618 Edward Thomson <ethomson@edwardthomson.com> 1355182104 -0600 commit: df_side2 +fc90237dc4891fa6c69827fc465632225e391618 a7dbfcbfc1a60709cb80b5ca24539008456531d0 Edward Thomson <ethomson@edwardthomson.com> 1355182111 -0600 checkout: moving from df_side2 to df_side1 +a7dbfcbfc1a60709cb80b5ca24539008456531d0 fc90237dc4891fa6c69827fc465632225e391618 Edward Thomson <ethomson@edwardthomson.com> 1355182115 -0600 checkout: moving from df_side1 to df_side2 +fc90237dc4891fa6c69827fc465632225e391618 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1355182122 -0600 checkout: moving from df_side2 to master diff --git a/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_ancestor b/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_ancestor new file mode 100644 index 000000000..df7695a66 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_ancestor @@ -0,0 +1,5 @@ +0000000000000000000000000000000000000000 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1355181639 -0600 branch: Created from HEAD +bd593285fc7fe4ca18ccdbabf027f5d689101452 2da538570bc1e5b2c3e855bf702f35248ad0735f Edward Thomson <ethomson@edwardthomson.com> 1355181673 -0600 commit: df_ancestor +2da538570bc1e5b2c3e855bf702f35248ad0735f a7dbfcbfc1a60709cb80b5ca24539008456531d0 Edward Thomson <ethomson@edwardthomson.com> 1355181715 -0600 commit: df_side1 +a7dbfcbfc1a60709cb80b5ca24539008456531d0 9a301fbe6fada7dcb74fcd7c20269b5c743459a7 Edward Thomson <ethomson@edwardthomson.com> 1355181775 -0600 commit: df_side2 +9a301fbe6fada7dcb74fcd7c20269b5c743459a7 2da538570bc1e5b2c3e855bf702f35248ad0735f Edward Thomson <ethomson@edwardthomson.com> 1355182067 -0600 reset: moving to 2da538570bc1e5b2c3e855bf702f35248ad0735f diff --git a/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_side1 b/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_side1 new file mode 100644 index 000000000..a504ad610 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_side1 @@ -0,0 +1,14 @@ +0000000000000000000000000000000000000000 bd593285fc7fe4ca18ccdbabf027f5d689101452 Edward Thomson <ethomson@edwardthomson.com> 1354574697 -0600 branch: Created from HEAD +bd593285fc7fe4ca18ccdbabf027f5d689101452 d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1354574962 -0600 commit: df_ancestor +d4207f77243500bec335ab477f9227fcdb1e271a c94b27e41064c521120627e07e2035cca1d24ffa Edward Thomson <ethomson@edwardthomson.com> 1354575027 -0600 commit: df_side1 +c94b27e41064c521120627e07e2035cca1d24ffa a90bc3fb6f15181972a2959a921429efbd81a473 Edward Thomson <ethomson@edwardthomson.com> 1355017650 -0600 commit: df_added +a90bc3fb6f15181972a2959a921429efbd81a473 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355017676 -0600 rebase -i (finish): refs/heads/df_side1 onto c94b27e +005b6fcc8fec71d2550bef8462d169b3c26aa14b f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 Edward Thomson <ethomson@edwardthomson.com> 1355017715 -0600 reset: moving to df_side2 +f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 8c749d9968d4b10dcfb06c9f97d0e5d92d337071 Edward Thomson <ethomson@edwardthomson.com> 1355017744 -0600 commit: df_added +8c749d9968d4b10dcfb06c9f97d0e5d92d337071 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355017756 -0600 rebase -i (finish): refs/heads/df_side1 onto f8958bd +0204a84f822acbf6386b36d33f1f6bc68bbbf858 005b6fcc8fec71d2550bef8462d169b3c26aa14b Edward Thomson <ethomson@edwardthomson.com> 1355017793 -0600 reset: moving to 005b6fcc8fec71d2550bef8462d169b3c26aa14b +005b6fcc8fec71d2550bef8462d169b3c26aa14b 0204a84f822acbf6386b36d33f1f6bc68bbbf858 Edward Thomson <ethomson@edwardthomson.com> 1355017826 -0600 reset: moving to 0204a84 +005b6fcc8fec71d2550bef8462d169b3c26aa14b e8107f24196736b870a318a0e28f048e29f6feff Edward Thomson <ethomson@edwardthomson.com> 1355169065 -0600 commit: df_side1 +e8107f24196736b870a318a0e28f048e29f6feff 80a8fbb3abb1ba423d554e9630b8fc2e5698f86b Edward Thomson <ethomson@edwardthomson.com> 1355169084 -0600 rebase -i (finish): refs/heads/df_side1 onto 005b6fc +80a8fbb3abb1ba423d554e9630b8fc2e5698f86b e65a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 Edward Thomson <ethomson@edwardthomson.com> 1355169419 -0600 commit: side1 +e65a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 5dc1018e90b19654bee986b7a0c268804d39659d Edward Thomson <ethomson@edwardthomson.com> 1355169435 -0600 rebase -i (finish): refs/heads/df_side1 onto 80a8fbb diff --git a/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_side2 b/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_side2 new file mode 100644 index 000000000..27d833eda --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/logs/refs/heads/df_side2 @@ -0,0 +1,9 @@ +0000000000000000000000000000000000000000 d4207f77243500bec335ab477f9227fcdb1e271a Edward Thomson <ethomson@edwardthomson.com> 1354575051 -0600 branch: Created from d4207f77243500bec335ab477f9227fcdb1e271a +d4207f77243500bec335ab477f9227fcdb1e271a f8958bdf4d365a84a9a178b1f5f35ff1dacbd884 Edward Thomson <ethomson@edwardthomson.com> 1354575206 -0600 commit: df_side2 +0204a84f822acbf6386b36d33f1f6bc68bbbf858 944f5dd1a867cab4c2bbcb896493435cae1dcc1a Edward Thomson <ethomson@edwardthomson.com> 1355169174 -0600 commit: both +944f5dd1a867cab4c2bbcb896493435cae1dcc1a 57079a46233ae2b6df62e9ade71c4948512abefb Edward Thomson <ethomson@edwardthomson.com> 1355169185 -0600 rebase -i (finish): refs/heads/df_side2 onto 0204a84 +57079a46233ae2b6df62e9ade71c4948512abefb 58e853f66699fd02629fd50bde08082bc005933a Edward Thomson <ethomson@edwardthomson.com> 1355169460 -0600 commit: side2 +58e853f66699fd02629fd50bde08082bc005933a fada9356aa3f74622327a3038ae9c6f92e1c5c1d Edward Thomson <ethomson@edwardthomson.com> 1355169471 -0600 rebase -i (finish): refs/heads/df_side2 onto 57079a4 +fada9356aa3f74622327a3038ae9c6f92e1c5c1d 95646149ab6b6ba6edc83cff678582538b457b2b Edward Thomson <ethomson@edwardthomson.com> 1355169897 -0600 rebase finished: refs/heads/df_side2 onto a765fb87eb2f7a1920b73b2d5a057f8f8476a42b +0000000000000000000000000000000000000000 2da538570bc1e5b2c3e855bf702f35248ad0735f Edward Thomson <ethomson@edwardthomson.com> 1355182087 -0600 branch: Created from HEAD +2da538570bc1e5b2c3e855bf702f35248ad0735f fc90237dc4891fa6c69827fc465632225e391618 Edward Thomson <ethomson@edwardthomson.com> 1355182104 -0600 commit: df_side2 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/00/5b6fcc8fec71d2550bef8462d169b3c26aa14b b/tests-clar/resources/merge-resolve/.gitted/objects/00/5b6fcc8fec71d2550bef8462d169b3c26aa14b Binary files differnew file mode 100644 index 000000000..82a8da597 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/00/5b6fcc8fec71d2550bef8462d169b3c26aa14b diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/00/c7d33f1ffa79d19c2272b370fcaeaadba49c08 b/tests-clar/resources/merge-resolve/.gitted/objects/00/c7d33f1ffa79d19c2272b370fcaeaadba49c08 Binary files differnew file mode 100644 index 000000000..72698dc3d --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/00/c7d33f1ffa79d19c2272b370fcaeaadba49c08 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/02/04a84f822acbf6386b36d33f1f6bc68bbbf858 b/tests-clar/resources/merge-resolve/.gitted/objects/02/04a84f822acbf6386b36d33f1f6bc68bbbf858 Binary files differnew file mode 100644 index 000000000..2f0a0e1bb --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/02/04a84f822acbf6386b36d33f1f6bc68bbbf858 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/03/2ebc5ab85d9553bb187d3cd40875ff23a63ed0 b/tests-clar/resources/merge-resolve/.gitted/objects/03/2ebc5ab85d9553bb187d3cd40875ff23a63ed0 Binary files differnew file mode 100644 index 000000000..e5404d838 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/03/2ebc5ab85d9553bb187d3cd40875ff23a63ed0 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/03/b87706555accbf874ccd410dbda01e8e70a67f b/tests-clar/resources/merge-resolve/.gitted/objects/03/b87706555accbf874ccd410dbda01e8e70a67f Binary files differnew file mode 100644 index 000000000..0befcd735 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/03/b87706555accbf874ccd410dbda01e8e70a67f diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/09/17bb159596aea4d295f4857da77e8f96b3c7dc b/tests-clar/resources/merge-resolve/.gitted/objects/09/17bb159596aea4d295f4857da77e8f96b3c7dc Binary files differnew file mode 100644 index 000000000..9fb640dd5 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/09/17bb159596aea4d295f4857da77e8f96b3c7dc diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/14/39088f509b79b1535b64193137d3ce4b240734 b/tests-clar/resources/merge-resolve/.gitted/objects/14/39088f509b79b1535b64193137d3ce4b240734 Binary files differnew file mode 100644 index 000000000..51ddf6dcb --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/14/39088f509b79b1535b64193137d3ce4b240734 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/1e/4ff029aee68d0d69ef9eb6efa6cbf1ec732f99 b/tests-clar/resources/merge-resolve/.gitted/objects/1e/4ff029aee68d0d69ef9eb6efa6cbf1ec732f99 Binary files differnew file mode 100644 index 000000000..5183b8360 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/1e/4ff029aee68d0d69ef9eb6efa6cbf1ec732f99 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/21/671e290278286fb2ce4c63d01699b67adce331 b/tests-clar/resources/merge-resolve/.gitted/objects/21/671e290278286fb2ce4c63d01699b67adce331 Binary files differnew file mode 100644 index 000000000..b656d0001 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/21/671e290278286fb2ce4c63d01699b67adce331 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/24/2591eb280ee9eeb2ce63524b9a8b9bc4cb515d b/tests-clar/resources/merge-resolve/.gitted/objects/24/2591eb280ee9eeb2ce63524b9a8b9bc4cb515d Binary files differnew file mode 100644 index 000000000..74a01373f --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/24/2591eb280ee9eeb2ce63524b9a8b9bc4cb515d diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/25/9d08ca43af9200e9ea9a098e44a5a350ebd9b3 b/tests-clar/resources/merge-resolve/.gitted/objects/25/9d08ca43af9200e9ea9a098e44a5a350ebd9b3 Binary files differnew file mode 100644 index 000000000..2bae66998 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/25/9d08ca43af9200e9ea9a098e44a5a350ebd9b3 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/25/c40b7660c08c8fb581f770312f41b9b03119d1 b/tests-clar/resources/merge-resolve/.gitted/objects/25/c40b7660c08c8fb581f770312f41b9b03119d1 Binary files differnew file mode 100644 index 000000000..185214727 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/25/c40b7660c08c8fb581f770312f41b9b03119d1 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/27/133da702ba3c60af2a01e96c2555ff4045d692 b/tests-clar/resources/merge-resolve/.gitted/objects/27/133da702ba3c60af2a01e96c2555ff4045d692 Binary files differnew file mode 100644 index 000000000..08e61f844 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/27/133da702ba3c60af2a01e96c2555ff4045d692 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/2b/0de5dc27505dcdd83a75c8bf1fcd9462cd7add b/tests-clar/resources/merge-resolve/.gitted/objects/2b/0de5dc27505dcdd83a75c8bf1fcd9462cd7add Binary files differnew file mode 100644 index 000000000..a95f926f8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/2b/0de5dc27505dcdd83a75c8bf1fcd9462cd7add diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/2d/a538570bc1e5b2c3e855bf702f35248ad0735f b/tests-clar/resources/merge-resolve/.gitted/objects/2d/a538570bc1e5b2c3e855bf702f35248ad0735f new file mode 100644 index 000000000..83253f81c --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/2d/a538570bc1e5b2c3e855bf702f35248ad0735f @@ -0,0 +1,2 @@ +xK +1D]N"n{t:L$
UEQ>~7:L
D[5ɇ,y2eT@z*.([unum<F?_kj$qN'#Fp!^G
9+Q.
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/32/21dd512b7e2dc4b5bd03046df6c81b2ab2070b b/tests-clar/resources/merge-resolve/.gitted/objects/32/21dd512b7e2dc4b5bd03046df6c81b2ab2070b Binary files differnew file mode 100644 index 000000000..d36138d79 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/32/21dd512b7e2dc4b5bd03046df6c81b2ab2070b diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/35/0c6eb3010efc403a6bed682332635314e9ed58 b/tests-clar/resources/merge-resolve/.gitted/objects/35/0c6eb3010efc403a6bed682332635314e9ed58 Binary files differnew file mode 100644 index 000000000..2eee60233 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/35/0c6eb3010efc403a6bed682332635314e9ed58 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/35/411bfb77cd2cc431f3a03a2b4976ed94b5d241 b/tests-clar/resources/merge-resolve/.gitted/objects/35/411bfb77cd2cc431f3a03a2b4976ed94b5d241 Binary files differnew file mode 100644 index 000000000..ea024ccd9 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/35/411bfb77cd2cc431f3a03a2b4976ed94b5d241 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/3e/f4d30382ca33fdeba9fda895a99e0891ba37aa b/tests-clar/resources/merge-resolve/.gitted/objects/3e/f4d30382ca33fdeba9fda895a99e0891ba37aa Binary files differnew file mode 100644 index 000000000..49ee15239 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/3e/f4d30382ca33fdeba9fda895a99e0891ba37aa diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/40/2784a46a4a3982294231594cbeb431f506d22c b/tests-clar/resources/merge-resolve/.gitted/objects/40/2784a46a4a3982294231594cbeb431f506d22c Binary files differnew file mode 100644 index 000000000..a17e05d0f --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/40/2784a46a4a3982294231594cbeb431f506d22c diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/43/aafd43bea779ec74317dc361f45ae3f532a505 b/tests-clar/resources/merge-resolve/.gitted/objects/43/aafd43bea779ec74317dc361f45ae3f532a505 Binary files differnew file mode 100644 index 000000000..ac86823b6 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/43/aafd43bea779ec74317dc361f45ae3f532a505 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/46/6daf8552b891e5c22bc58c9d7fc1a2eb8f0289 b/tests-clar/resources/merge-resolve/.gitted/objects/46/6daf8552b891e5c22bc58c9d7fc1a2eb8f0289 Binary files differnew file mode 100644 index 000000000..c39b53aa8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/46/6daf8552b891e5c22bc58c9d7fc1a2eb8f0289 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/49/130a28ef567af9a6a6104c38773fedfa5f9742 b/tests-clar/resources/merge-resolve/.gitted/objects/49/130a28ef567af9a6a6104c38773fedfa5f9742 Binary files differnew file mode 100644 index 000000000..e2c49f5c4 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/49/130a28ef567af9a6a6104c38773fedfa5f9742 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/49/9df817155e4bdd3c6ee192a72c52f481818230 b/tests-clar/resources/merge-resolve/.gitted/objects/49/9df817155e4bdd3c6ee192a72c52f481818230 Binary files differnew file mode 100644 index 000000000..9c7e471dd --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/49/9df817155e4bdd3c6ee192a72c52f481818230 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/4a/9550ebcc97ce22b22f45af7b829bb030d003f5 b/tests-clar/resources/merge-resolve/.gitted/objects/4a/9550ebcc97ce22b22f45af7b829bb030d003f5 Binary files differnew file mode 100644 index 000000000..6ec674adc --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/4a/9550ebcc97ce22b22f45af7b829bb030d003f5 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 b/tests-clar/resources/merge-resolve/.gitted/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 Binary files differnew file mode 100644 index 000000000..adf64119a --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/50/12fd565b1393bdfda1805d4ec38ce6619e1fd1 b/tests-clar/resources/merge-resolve/.gitted/objects/50/12fd565b1393bdfda1805d4ec38ce6619e1fd1 Binary files differnew file mode 100644 index 000000000..d629a23a1 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/50/12fd565b1393bdfda1805d4ec38ce6619e1fd1 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/50/84fc2a88b6bdba8db93bd3953a8f4fdb470238 b/tests-clar/resources/merge-resolve/.gitted/objects/50/84fc2a88b6bdba8db93bd3953a8f4fdb470238 Binary files differnew file mode 100644 index 000000000..84c9987ce --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/50/84fc2a88b6bdba8db93bd3953a8f4fdb470238 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/54/7607c690372fe81fab8e3bb44c530e129118fd b/tests-clar/resources/merge-resolve/.gitted/objects/54/7607c690372fe81fab8e3bb44c530e129118fd Binary files differnew file mode 100644 index 000000000..dccd22006 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/54/7607c690372fe81fab8e3bb44c530e129118fd diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/57/079a46233ae2b6df62e9ade71c4948512abefb b/tests-clar/resources/merge-resolve/.gitted/objects/57/079a46233ae2b6df62e9ade71c4948512abefb Binary files differnew file mode 100644 index 000000000..c7eabc46b --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/57/079a46233ae2b6df62e9ade71c4948512abefb diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/58/e853f66699fd02629fd50bde08082bc005933a b/tests-clar/resources/merge-resolve/.gitted/objects/58/e853f66699fd02629fd50bde08082bc005933a Binary files differnew file mode 100644 index 000000000..cf6db633c --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/58/e853f66699fd02629fd50bde08082bc005933a diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/5c/2411f8075f48a6b2fdb85ebc0d371747c4df15 b/tests-clar/resources/merge-resolve/.gitted/objects/5c/2411f8075f48a6b2fdb85ebc0d371747c4df15 Binary files differnew file mode 100644 index 000000000..7b41413da --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/5c/2411f8075f48a6b2fdb85ebc0d371747c4df15 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/5c/341ead2ba6f2af98ce5ec3fe84f6b6d2899c0d b/tests-clar/resources/merge-resolve/.gitted/objects/5c/341ead2ba6f2af98ce5ec3fe84f6b6d2899c0d Binary files differnew file mode 100644 index 000000000..63c86bd33 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/5c/341ead2ba6f2af98ce5ec3fe84f6b6d2899c0d diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/5d/c1018e90b19654bee986b7a0c268804d39659d b/tests-clar/resources/merge-resolve/.gitted/objects/5d/c1018e90b19654bee986b7a0c268804d39659d Binary files differnew file mode 100644 index 000000000..7500b9914 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/5d/c1018e90b19654bee986b7a0c268804d39659d diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/61/340eeed7340fa6a8792def9a5938bb5d4434bb b/tests-clar/resources/merge-resolve/.gitted/objects/61/340eeed7340fa6a8792def9a5938bb5d4434bb Binary files differnew file mode 100644 index 000000000..e830cafe5 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/61/340eeed7340fa6a8792def9a5938bb5d4434bb diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/61/78885b38fe96e825ac0f492c0a941f288b37f6 b/tests-clar/resources/merge-resolve/.gitted/objects/61/78885b38fe96e825ac0f492c0a941f288b37f6 Binary files differnew file mode 100644 index 000000000..bedc5f27e --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/61/78885b38fe96e825ac0f492c0a941f288b37f6 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/62/c4f6533c9a3894191fdcb96a3be935ade63f1a b/tests-clar/resources/merge-resolve/.gitted/objects/62/c4f6533c9a3894191fdcb96a3be935ade63f1a Binary files differnew file mode 100644 index 000000000..c0f822d2c --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/62/c4f6533c9a3894191fdcb96a3be935ade63f1a diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/6b/7e37be8ce0b897093f2878a9dcd8f396beda2c b/tests-clar/resources/merge-resolve/.gitted/objects/6b/7e37be8ce0b897093f2878a9dcd8f396beda2c Binary files differnew file mode 100644 index 000000000..c39318683 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/6b/7e37be8ce0b897093f2878a9dcd8f396beda2c diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/6c/06dcd163587c2cc18be44857e0b71116382aeb b/tests-clar/resources/merge-resolve/.gitted/objects/6c/06dcd163587c2cc18be44857e0b71116382aeb Binary files differnew file mode 100644 index 000000000..2f54be818 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/6c/06dcd163587c2cc18be44857e0b71116382aeb diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/6f/be9fb85c86d7d1435f728da418bdff52c640a9 b/tests-clar/resources/merge-resolve/.gitted/objects/6f/be9fb85c86d7d1435f728da418bdff52c640a9 Binary files differnew file mode 100644 index 000000000..a2c8d93ad --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/6f/be9fb85c86d7d1435f728da418bdff52c640a9 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/74/df13f0793afdaa972150bba976f7de8284914e b/tests-clar/resources/merge-resolve/.gitted/objects/74/df13f0793afdaa972150bba976f7de8284914e Binary files differnew file mode 100644 index 000000000..cb50e6757 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/74/df13f0793afdaa972150bba976f7de8284914e diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/76/63fce0130db092936b137cabd693ec234eb060 b/tests-clar/resources/merge-resolve/.gitted/objects/76/63fce0130db092936b137cabd693ec234eb060 Binary files differnew file mode 100644 index 000000000..f578a4a68 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/76/63fce0130db092936b137cabd693ec234eb060 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/76/ab0e2868197ec158ddd6c78d8a0d2fd73d38f9 b/tests-clar/resources/merge-resolve/.gitted/objects/76/ab0e2868197ec158ddd6c78d8a0d2fd73d38f9 Binary files differnew file mode 100644 index 000000000..4d41ad8cd --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/76/ab0e2868197ec158ddd6c78d8a0d2fd73d38f9 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/80/a8fbb3abb1ba423d554e9630b8fc2e5698f86b b/tests-clar/resources/merge-resolve/.gitted/objects/80/a8fbb3abb1ba423d554e9630b8fc2e5698f86b Binary files differnew file mode 100644 index 000000000..3daf6c3e0 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/80/a8fbb3abb1ba423d554e9630b8fc2e5698f86b diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/83/824a8c6658768e2013905219cc8c64cc3d9a2e b/tests-clar/resources/merge-resolve/.gitted/objects/83/824a8c6658768e2013905219cc8c64cc3d9a2e Binary files differnew file mode 100644 index 000000000..066190fb8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/83/824a8c6658768e2013905219cc8c64cc3d9a2e diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/84/9619b03ae540acee4d1edec96b86993da6b497 b/tests-clar/resources/merge-resolve/.gitted/objects/84/9619b03ae540acee4d1edec96b86993da6b497 new file mode 100644 index 000000000..67271ac50 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/84/9619b03ae540acee4d1edec96b86993da6b497 @@ -0,0 +1,3 @@ +xK +1D]v7t3L$
UEV<v7:"xK@R +r#"y2[
X5 r2Q5b=Ժ,oSk[7I_;VR?`<vv3"1WEP
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/86/088dae8bade454995b21a1c88107b0e1accdab b/tests-clar/resources/merge-resolve/.gitted/objects/86/088dae8bade454995b21a1c88107b0e1accdab Binary files differnew file mode 100644 index 000000000..623a747f0 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/86/088dae8bade454995b21a1c88107b0e1accdab diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/87/b4926260d77a3b851e71ecce06839bd650b231 b/tests-clar/resources/merge-resolve/.gitted/objects/87/b4926260d77a3b851e71ecce06839bd650b231 Binary files differnew file mode 100644 index 000000000..91944ffb5 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/87/b4926260d77a3b851e71ecce06839bd650b231 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/8a/ad9d0ea334951da47b621a475b39cc6ed759bf b/tests-clar/resources/merge-resolve/.gitted/objects/8a/ad9d0ea334951da47b621a475b39cc6ed759bf Binary files differnew file mode 100644 index 000000000..5e2c94321 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/8a/ad9d0ea334951da47b621a475b39cc6ed759bf diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/8c/749d9968d4b10dcfb06c9f97d0e5d92d337071 b/tests-clar/resources/merge-resolve/.gitted/objects/8c/749d9968d4b10dcfb06c9f97d0e5d92d337071 new file mode 100644 index 000000000..e42393cf7 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/8c/749d9968d4b10dcfb06c9f97d0e5d92d337071 @@ -0,0 +1,2 @@ +xAB!C]s +.acxf`|_bh5m^mzL`}$26#"8`s.`ԝܺ.!bH\< i",K8ٗ_X>MeЏ:7]AC40뭙Q]Q\.,VO
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/93/77fccdb210540b8c0520cc6e80eb632c20bd25 b/tests-clar/resources/merge-resolve/.gitted/objects/93/77fccdb210540b8c0520cc6e80eb632c20bd25 Binary files differnew file mode 100644 index 000000000..4b2d93b07 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/93/77fccdb210540b8c0520cc6e80eb632c20bd25 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/94/4f5dd1a867cab4c2bbcb896493435cae1dcc1a b/tests-clar/resources/merge-resolve/.gitted/objects/94/4f5dd1a867cab4c2bbcb896493435cae1dcc1a new file mode 100644 index 000000000..143093831 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/94/4f5dd1a867cab4c2bbcb896493435cae1dcc1a @@ -0,0 +1,2 @@ +xK!D]s +.z7|2.bhWKVmH0~7z"P9`:Qi)QLEyq=oC*P6-"4l0StAH<u$sKzum6y̓~9_;VOR4zXWtO6V4NF
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/95/646149ab6b6ba6edc83cff678582538b457b2b b/tests-clar/resources/merge-resolve/.gitted/objects/95/646149ab6b6ba6edc83cff678582538b457b2b new file mode 100644 index 000000000..de9ba2894 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/95/646149ab6b6ba6edc83cff678582538b457b2b @@ -0,0 +1,3 @@ +xM ]s +.OboeHh1E{?y_XenR}hY* HFS +S !$1œ*MwUv4It:8KFEA6*oM5T=+ݝƲ\ѠCV`nLjۜXiO\
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/96/8ca794a4597f7f6abbb2b8d940b4078a0f3fd4 b/tests-clar/resources/merge-resolve/.gitted/objects/96/8ca794a4597f7f6abbb2b8d940b4078a0f3fd4 Binary files differnew file mode 100644 index 000000000..359e43a88 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/96/8ca794a4597f7f6abbb2b8d940b4078a0f3fd4 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/9a/301fbe6fada7dcb74fcd7c20269b5c743459a7 b/tests-clar/resources/merge-resolve/.gitted/objects/9a/301fbe6fada7dcb74fcd7c20269b5c743459a7 Binary files differnew file mode 100644 index 000000000..f413cc5f7 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/9a/301fbe6fada7dcb74fcd7c20269b5c743459a7 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/9a/f731fa116d1eb9a6c0109562472cfee6f5a979 b/tests-clar/resources/merge-resolve/.gitted/objects/9a/f731fa116d1eb9a6c0109562472cfee6f5a979 Binary files differnew file mode 100644 index 000000000..53233c4f1 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/9a/f731fa116d1eb9a6c0109562472cfee6f5a979 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/9e/fe7723802d4305142eee177e018fee1572c4f4 b/tests-clar/resources/merge-resolve/.gitted/objects/9e/fe7723802d4305142eee177e018fee1572c4f4 Binary files differnew file mode 100644 index 000000000..c63fc2c96 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/9e/fe7723802d4305142eee177e018fee1572c4f4 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a0/31a28ae70e33a641ce4b8a8f6317f1ab79dee4 b/tests-clar/resources/merge-resolve/.gitted/objects/a0/31a28ae70e33a641ce4b8a8f6317f1ab79dee4 Binary files differnew file mode 100644 index 000000000..a6c05d182 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a0/31a28ae70e33a641ce4b8a8f6317f1ab79dee4 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a3/9a620dae5bc8b4e771cd4d251b7d080401a21e b/tests-clar/resources/merge-resolve/.gitted/objects/a3/9a620dae5bc8b4e771cd4d251b7d080401a21e Binary files differnew file mode 100644 index 000000000..4d22586eb --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a3/9a620dae5bc8b4e771cd4d251b7d080401a21e diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a4/1b1bb6d0be3c22fb654234c33b428e15c8cc27 b/tests-clar/resources/merge-resolve/.gitted/objects/a4/1b1bb6d0be3c22fb654234c33b428e15c8cc27 Binary files differnew file mode 100644 index 000000000..60789ee36 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a4/1b1bb6d0be3c22fb654234c33b428e15c8cc27 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a5/563304ddf6caba25cb50323a2ea6f7dbfcadca b/tests-clar/resources/merge-resolve/.gitted/objects/a5/563304ddf6caba25cb50323a2ea6f7dbfcadca Binary files differnew file mode 100644 index 000000000..a831878f8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a5/563304ddf6caba25cb50323a2ea6f7dbfcadca diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a7/08b253bd507417ec42d1467a7fd2d7519c4956 b/tests-clar/resources/merge-resolve/.gitted/objects/a7/08b253bd507417ec42d1467a7fd2d7519c4956 Binary files differnew file mode 100644 index 000000000..bae752a09 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a7/08b253bd507417ec42d1467a7fd2d7519c4956 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a7/65fb87eb2f7a1920b73b2d5a057f8f8476a42b b/tests-clar/resources/merge-resolve/.gitted/objects/a7/65fb87eb2f7a1920b73b2d5a057f8f8476a42b Binary files differnew file mode 100644 index 000000000..30abd8b4d --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a7/65fb87eb2f7a1920b73b2d5a057f8f8476a42b diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a7/dbfcbfc1a60709cb80b5ca24539008456531d0 b/tests-clar/resources/merge-resolve/.gitted/objects/a7/dbfcbfc1a60709cb80b5ca24539008456531d0 new file mode 100644 index 000000000..67126c90b --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a7/dbfcbfc1a60709cb80b5ca24539008456531d0 @@ -0,0 +1 @@ +xN
!L4a/v{`1,Ec?/R.ޘ%3$L15fe53'427^G1yBGVLAG *|R)sm^%yk*O<C,{eCg;9#RoKboN
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/a9/0bc3fb6f15181972a2959a921429efbd81a473 b/tests-clar/resources/merge-resolve/.gitted/objects/a9/0bc3fb6f15181972a2959a921429efbd81a473 new file mode 100644 index 000000000..91113ee8e --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/a9/0bc3fb6f15181972a2959a921429efbd81a473 @@ -0,0 +1,2 @@ +xK +1D]};7d=oo^UQT\;hk6@g 5rѓ]uOMndgz&c圈'}
NJ7p?(G\8CآGTg9x$faxN"
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ab/929391ac42572f92110f3deeb4f0844a951e22 b/tests-clar/resources/merge-resolve/.gitted/objects/ab/929391ac42572f92110f3deeb4f0844a951e22 Binary files differnew file mode 100644 index 000000000..8840d00c5 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ab/929391ac42572f92110f3deeb4f0844a951e22 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ac/4045f965119e6998f4340ed0f411decfb3ec05 b/tests-clar/resources/merge-resolve/.gitted/objects/ac/4045f965119e6998f4340ed0f411decfb3ec05 Binary files differnew file mode 100644 index 000000000..4c32d63f8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ac/4045f965119e6998f4340ed0f411decfb3ec05 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ad/a14492498136771f69dd451866cabcb0e9ef9a b/tests-clar/resources/merge-resolve/.gitted/objects/ad/a14492498136771f69dd451866cabcb0e9ef9a Binary files differnew file mode 100644 index 000000000..71023de39 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ad/a14492498136771f69dd451866cabcb0e9ef9a diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/b7/a2576f9fc20024ac9ef17cb134acbd1ac73127 b/tests-clar/resources/merge-resolve/.gitted/objects/b7/a2576f9fc20024ac9ef17cb134acbd1ac73127 Binary files differnew file mode 100644 index 000000000..22f2d137d --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/b7/a2576f9fc20024ac9ef17cb134acbd1ac73127 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/b8/a3a806d3950e8c0a03a34f234a92eff0e2c68d b/tests-clar/resources/merge-resolve/.gitted/objects/b8/a3a806d3950e8c0a03a34f234a92eff0e2c68d Binary files differnew file mode 100644 index 000000000..24f029900 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/b8/a3a806d3950e8c0a03a34f234a92eff0e2c68d diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ba/cac9b3493509aa15e1730e1545fc0919d1dae0 b/tests-clar/resources/merge-resolve/.gitted/objects/ba/cac9b3493509aa15e1730e1545fc0919d1dae0 Binary files differnew file mode 100644 index 000000000..f35586f7f --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ba/cac9b3493509aa15e1730e1545fc0919d1dae0 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/bc/744705e1d8a019993cf88f62bc4020f1b80919 b/tests-clar/resources/merge-resolve/.gitted/objects/bc/744705e1d8a019993cf88f62bc4020f1b80919 new file mode 100644 index 000000000..0d4bdb323 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/bc/744705e1d8a019993cf88f62bc4020f1b80919 @@ -0,0 +1,2 @@ +xK +1D]}%%tYH&
UJuj7:P(#F̄ģ1+k#vΚS8W|٨%Kpɯ3\Vv#MQg?wH@(c
s9t嶭{kO
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/bd/867fbae2faa80b920b002b80b1c91bcade7784 b/tests-clar/resources/merge-resolve/.gitted/objects/bd/867fbae2faa80b920b002b80b1c91bcade7784 Binary files differnew file mode 100644 index 000000000..0f7421963 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/bd/867fbae2faa80b920b002b80b1c91bcade7784 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/c0/6a9be584ac49aa02c5551312d9e2982c91df10 b/tests-clar/resources/merge-resolve/.gitted/objects/c0/6a9be584ac49aa02c5551312d9e2982c91df10 Binary files differnew file mode 100644 index 000000000..963ef23ac --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/c0/6a9be584ac49aa02c5551312d9e2982c91df10 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/c1/b17981db0840109a820dae8674ee29684134ff b/tests-clar/resources/merge-resolve/.gitted/objects/c1/b17981db0840109a820dae8674ee29684134ff Binary files differnew file mode 100644 index 000000000..fdcf28cb0 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/c1/b17981db0840109a820dae8674ee29684134ff diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/c1/b6a51bbb87c2f82b161412c3d20b59fc69b090 b/tests-clar/resources/merge-resolve/.gitted/objects/c1/b6a51bbb87c2f82b161412c3d20b59fc69b090 Binary files differnew file mode 100644 index 000000000..3b369f8fe --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/c1/b6a51bbb87c2f82b161412c3d20b59fc69b090 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/c9/4b27e41064c521120627e07e2035cca1d24ffa b/tests-clar/resources/merge-resolve/.gitted/objects/c9/4b27e41064c521120627e07e2035cca1d24ffa Binary files differnew file mode 100644 index 000000000..fd1ec9fab --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/c9/4b27e41064c521120627e07e2035cca1d24ffa diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ca/b2cf23998b40f1af2d9d9a756dc9e285a8df4b b/tests-clar/resources/merge-resolve/.gitted/objects/ca/b2cf23998b40f1af2d9d9a756dc9e285a8df4b Binary files differnew file mode 100644 index 000000000..32ba2aa53 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ca/b2cf23998b40f1af2d9d9a756dc9e285a8df4b diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ce/8860d49e3bea6fd745874a01b7c3e46da8cbc3 b/tests-clar/resources/merge-resolve/.gitted/objects/ce/8860d49e3bea6fd745874a01b7c3e46da8cbc3 Binary files differnew file mode 100644 index 000000000..860f9952f --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ce/8860d49e3bea6fd745874a01b7c3e46da8cbc3 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/cf/8c5cc8a85a1ff5a4ba51e0bc7cf5665669924d b/tests-clar/resources/merge-resolve/.gitted/objects/cf/8c5cc8a85a1ff5a4ba51e0bc7cf5665669924d Binary files differnew file mode 100644 index 000000000..36b0289e6 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/cf/8c5cc8a85a1ff5a4ba51e0bc7cf5665669924d diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d3/7aa3bbfe1c0c49b909781251b956dbabe85f96 b/tests-clar/resources/merge-resolve/.gitted/objects/d3/7aa3bbfe1c0c49b909781251b956dbabe85f96 Binary files differnew file mode 100644 index 000000000..5902e0f32 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d3/7aa3bbfe1c0c49b909781251b956dbabe85f96 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d4/207f77243500bec335ab477f9227fcdb1e271a b/tests-clar/resources/merge-resolve/.gitted/objects/d4/207f77243500bec335ab477f9227fcdb1e271a new file mode 100644 index 000000000..862e4e5bc --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d4/207f77243500bec335ab477f9227fcdb1e271a @@ -0,0 +1,2 @@ +xK +1D]O'7t:H&z:]oZBBXl(昭+d<"6^%
A( J,% %5SSmR^؊Nu^뢏O:Wځ| DcFQEn6#Q
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d5/093787ef302b941b6aab081b99fb4880038bd8 b/tests-clar/resources/merge-resolve/.gitted/objects/d5/093787ef302b941b6aab081b99fb4880038bd8 Binary files differnew file mode 100644 index 000000000..7d73449eb --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d5/093787ef302b941b6aab081b99fb4880038bd8 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d5/a61b0b4992a4f0caa887fa08b52431e727bb6f b/tests-clar/resources/merge-resolve/.gitted/objects/d5/a61b0b4992a4f0caa887fa08b52431e727bb6f Binary files differnew file mode 100644 index 000000000..a7921de43 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d5/a61b0b4992a4f0caa887fa08b52431e727bb6f diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d5/b6fc965c926a1bfc9ee456042b94088b5c5d21 b/tests-clar/resources/merge-resolve/.gitted/objects/d5/b6fc965c926a1bfc9ee456042b94088b5c5d21 Binary files differnew file mode 100644 index 000000000..924bdbbb5 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d5/b6fc965c926a1bfc9ee456042b94088b5c5d21 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d6/462fa3f5292857db599c54aea2bf91616230c5 b/tests-clar/resources/merge-resolve/.gitted/objects/d6/462fa3f5292857db599c54aea2bf91616230c5 Binary files differnew file mode 100644 index 000000000..baae3f0e0 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d6/462fa3f5292857db599c54aea2bf91616230c5 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/d9/63979c237d08b6ba39062ee7bf64c7d34a27f8 b/tests-clar/resources/merge-resolve/.gitted/objects/d9/63979c237d08b6ba39062ee7bf64c7d34a27f8 Binary files differnew file mode 100644 index 000000000..5fa10405c --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/d9/63979c237d08b6ba39062ee7bf64c7d34a27f8 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/dd/9a570c3400e6e07bc4d7651d6e20b08926b3d9 b/tests-clar/resources/merge-resolve/.gitted/objects/dd/9a570c3400e6e07bc4d7651d6e20b08926b3d9 Binary files differnew file mode 100644 index 000000000..8fd60cbe8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/dd/9a570c3400e6e07bc4d7651d6e20b08926b3d9 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e0/67f9361140f19391472df8a82d6610813c73b7 b/tests-clar/resources/merge-resolve/.gitted/objects/e0/67f9361140f19391472df8a82d6610813c73b7 Binary files differnew file mode 100644 index 000000000..955431dd7 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e0/67f9361140f19391472df8a82d6610813c73b7 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e1/129b3cfb5898e0fbd606e0cb80b2755e50d161 b/tests-clar/resources/merge-resolve/.gitted/objects/e1/129b3cfb5898e0fbd606e0cb80b2755e50d161 Binary files differnew file mode 100644 index 000000000..751f1dd33 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e1/129b3cfb5898e0fbd606e0cb80b2755e50d161 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e4/9f917b448d1340b31d76e54ba388268fd4c922 b/tests-clar/resources/merge-resolve/.gitted/objects/e4/9f917b448d1340b31d76e54ba388268fd4c922 Binary files differnew file mode 100644 index 000000000..870c3e732 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e4/9f917b448d1340b31d76e54ba388268fd4c922 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e6/5a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 b/tests-clar/resources/merge-resolve/.gitted/objects/e6/5a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 Binary files differnew file mode 100644 index 000000000..72f1cbcd9 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e6/5a9bb2af9f4c2d1c375dd0f8f8a46cf9c68812 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e8/107f24196736b870a318a0e28f048e29f6feff b/tests-clar/resources/merge-resolve/.gitted/objects/e8/107f24196736b870a318a0e28f048e29f6feff new file mode 100644 index 000000000..ffcf843c2 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e8/107f24196736b870a318a0e28f048e29f6feff @@ -0,0 +1,3 @@ +xK!D]s +.i~=Lbo@dfE
UTj)kښ]om5(3j&4ppiRI;9Qg_j +-RVȃ~ҙTI*tr g;9#Rmkb%rLN
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e9/2cdb7017dc6c5aed25cb4202c5b0104b872246 b/tests-clar/resources/merge-resolve/.gitted/objects/e9/2cdb7017dc6c5aed25cb4202c5b0104b872246 Binary files differnew file mode 100644 index 000000000..cb1260eb8 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e9/2cdb7017dc6c5aed25cb4202c5b0104b872246 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e9/ad6ec3e38364a3d07feda7c4197d4d845c53b5 b/tests-clar/resources/merge-resolve/.gitted/objects/e9/ad6ec3e38364a3d07feda7c4197d4d845c53b5 Binary files differnew file mode 100644 index 000000000..da4a5edd1 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e9/ad6ec3e38364a3d07feda7c4197d4d845c53b5 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/e9/f48beccc62d535739bfbdebe0a55ed716d8366 b/tests-clar/resources/merge-resolve/.gitted/objects/e9/f48beccc62d535739bfbdebe0a55ed716d8366 Binary files differnew file mode 100644 index 000000000..23c59e4c9 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/e9/f48beccc62d535739bfbdebe0a55ed716d8366 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ee/1d6f164893c1866a323f072eeed36b855656be b/tests-clar/resources/merge-resolve/.gitted/objects/ee/1d6f164893c1866a323f072eeed36b855656be Binary files differnew file mode 100644 index 000000000..87d808007 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ee/1d6f164893c1866a323f072eeed36b855656be diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/f2/0c9063fa0bda9a397c96947a7b687305c49753 b/tests-clar/resources/merge-resolve/.gitted/objects/f2/0c9063fa0bda9a397c96947a7b687305c49753 Binary files differnew file mode 100644 index 000000000..34d9aed20 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/f2/0c9063fa0bda9a397c96947a7b687305c49753 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/f4/15caf3fcad16304cb424b67f0ee6b12dc03aae b/tests-clar/resources/merge-resolve/.gitted/objects/f4/15caf3fcad16304cb424b67f0ee6b12dc03aae Binary files differnew file mode 100644 index 000000000..21ce1a0fc --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/f4/15caf3fcad16304cb424b67f0ee6b12dc03aae diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/f5/504f36e6f4eb797a56fc5bac6c6c7f32969bf2 b/tests-clar/resources/merge-resolve/.gitted/objects/f5/504f36e6f4eb797a56fc5bac6c6c7f32969bf2 Binary files differnew file mode 100644 index 000000000..2aa0c3b9a --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/f5/504f36e6f4eb797a56fc5bac6c6c7f32969bf2 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/f5/b50c85a87cac64d7eb3254cdd1aec9564c0293 b/tests-clar/resources/merge-resolve/.gitted/objects/f5/b50c85a87cac64d7eb3254cdd1aec9564c0293 Binary files differnew file mode 100644 index 000000000..c1885cbe7 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/f5/b50c85a87cac64d7eb3254cdd1aec9564c0293 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/f8/958bdf4d365a84a9a178b1f5f35ff1dacbd884 b/tests-clar/resources/merge-resolve/.gitted/objects/f8/958bdf4d365a84a9a178b1f5f35ff1dacbd884 new file mode 100644 index 000000000..5dbbef276 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/f8/958bdf4d365a84a9a178b1f5f35ff1dacbd884 @@ -0,0 +1,2 @@ +xK +1D]}Iq
K>f1x}xwUQv kv@`O<Hd}%kAC>;$Kșybh2癈sLA?R\˷ץ(~Yïb-'Yǎp=Njq˟m[zO+
\ No newline at end of file diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/fa/da9356aa3f74622327a3038ae9c6f92e1c5c1d b/tests-clar/resources/merge-resolve/.gitted/objects/fa/da9356aa3f74622327a3038ae9c6f92e1c5c1d Binary files differnew file mode 100644 index 000000000..16ce49a1b --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/fa/da9356aa3f74622327a3038ae9c6f92e1c5c1d diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/fc/4c636d6515e9e261f9260dbcf3cc6eca97ea08 b/tests-clar/resources/merge-resolve/.gitted/objects/fc/4c636d6515e9e261f9260dbcf3cc6eca97ea08 Binary files differnew file mode 100644 index 000000000..be8a810cd --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/fc/4c636d6515e9e261f9260dbcf3cc6eca97ea08 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/fc/90237dc4891fa6c69827fc465632225e391618 b/tests-clar/resources/merge-resolve/.gitted/objects/fc/90237dc4891fa6c69827fc465632225e391618 Binary files differnew file mode 100644 index 000000000..961814bae --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/fc/90237dc4891fa6c69827fc465632225e391618 diff --git a/tests-clar/resources/merge-resolve/.gitted/objects/ff/b312248d607284c290023f9502eea010d34efd b/tests-clar/resources/merge-resolve/.gitted/objects/ff/b312248d607284c290023f9502eea010d34efd Binary files differnew file mode 100644 index 000000000..7e46c4fe3 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/objects/ff/b312248d607284c290023f9502eea010d34efd diff --git a/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_ancestor b/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_ancestor new file mode 100644 index 000000000..4bc37ac60 --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_ancestor @@ -0,0 +1 @@ +2da538570bc1e5b2c3e855bf702f35248ad0735f diff --git a/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_side1 b/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_side1 new file mode 100644 index 000000000..ca6dd679d --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_side1 @@ -0,0 +1 @@ +a7dbfcbfc1a60709cb80b5ca24539008456531d0 diff --git a/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_side2 b/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_side2 new file mode 100644 index 000000000..b8160f80e --- /dev/null +++ b/tests-clar/resources/merge-resolve/.gitted/refs/heads/df_side2 @@ -0,0 +1 @@ +fc90237dc4891fa6c69827fc465632225e391618 diff --git a/tests-clar/treediff/threeway.c b/tests-clar/treediff/threeway.c index d1d1e6ac0..a210fcad4 100644 --- a/tests-clar/treediff/threeway.c +++ b/tests-clar/treediff/threeway.c @@ -7,11 +7,15 @@ static git_repository *repo; #define TEST_REPO_PATH "merge-resolve" -#define TREE_OID_ANCESTOR "0d52e3a556e189ba0948ae56780918011c1b167d" -#define TREE_OID_MASTER "1f81433e3161efbf250576c58fede7f6b836f3d3" -#define TREE_OID_BRANCH "eea9286df54245fea72c5b557291470eb825f38f" -#define TREE_OID_RENAMES1 "f5f9dd5886a6ee20272be0aafc790cba43b31931" -#define TREE_OID_RENAMES2 "5fbfbdc04b4eca46f54f4853a3c5a1dce28f5165" +#define TREE_OID_ANCESTOR "0d52e3a556e189ba0948ae56780918011c1b167d" +#define TREE_OID_MASTER "1f81433e3161efbf250576c58fede7f6b836f3d3" +#define TREE_OID_BRANCH "eea9286df54245fea72c5b557291470eb825f38f" +#define TREE_OID_RENAMES1 "f5f9dd5886a6ee20272be0aafc790cba43b31931" +#define TREE_OID_RENAMES2 "5fbfbdc04b4eca46f54f4853a3c5a1dce28f5165" + +#define TREE_OID_DF_ANCESTOR "b8a3a806d3950e8c0a03a34f234a92eff0e2c68d" +#define TREE_OID_DF_SIDE1 "ee1d6f164893c1866a323f072eeed36b855656be" +#define TREE_OID_DF_SIDE2 "6178885b38fe96e825ac0f492c0a941f288b37f6" void test_treediff_threeway__initialize(void) { @@ -30,46 +34,60 @@ struct treediff_file_data { unsigned int status; }; -struct treediff_data { - size_t trees_len; - struct treediff_file_data *file_data; - size_t file_data_len; +struct treediff_delta_data { + struct treediff_file_data ancestor; + struct treediff_file_data ours; + struct treediff_file_data theirs; + git_diff_tree_conflict_t conflict; + git_diff_tree_df_conflict_t df_conflict; +}; + +struct treediff_cb_data { + struct treediff_delta_data *delta_data; + size_t delta_data_len; - size_t i; + size_t idx; }; +static bool treediff_cmp( + const git_diff_tree_entry *diff_tree_entry, + const struct treediff_file_data *expected) +{ + git_oid oid; + + if (expected->mode == 0) { + if (diff_tree_entry->file.path != NULL) + return 0; + } else { + if (diff_tree_entry->file.path == NULL) + return 0; + + cl_git_pass(git_oid_fromstr(&oid, expected->oid_str)); + + if (strcmp(expected->path, diff_tree_entry->file.path) != 0 || + git_oid_cmp(&oid, &diff_tree_entry->file.oid) != 0) + return 0; + } + + if (expected->status != diff_tree_entry->status) + return 0; + + return 1; +} + static int treediff_cb(const git_diff_tree_delta *delta, void *cb_data) { - struct treediff_data *treediff_data = cb_data; - git_diff_tree_entry const *tree_entries[3]; - size_t idx = treediff_data->i * treediff_data->trees_len; - git_oid oid; - size_t i; - - tree_entries[0] = &delta->ancestor; - tree_entries[1] = &delta->ours; - tree_entries[2] = &delta->theirs; - - for (i = 0; i < treediff_data->trees_len; i++) { - if (treediff_data->file_data[idx+i].mode == 0) { - if (tree_entries[i]->file.path != NULL) - return -1; - } else { - if (tree_entries[i]->file.path == NULL) - return -1; - - cl_git_pass(git_oid_fromstr(&oid, treediff_data->file_data[idx+i].oid_str)); - - if (strcmp(treediff_data->file_data[idx+i].path, tree_entries[i]->file.path) != 0 || - git_oid_cmp(&oid, &tree_entries[i]->file.oid) != 0) - return -1; - } - - if (tree_entries[i]->status != treediff_data->file_data[idx+i].status) - return -1; - } + struct treediff_cb_data *treediff_cb_data = cb_data; + struct treediff_delta_data *delta_data = &treediff_cb_data->delta_data[treediff_cb_data->idx]; - treediff_data->i++; + cl_assert(treediff_cmp(&delta->ancestor, &delta_data->ancestor)); + cl_assert(treediff_cmp(&delta->ours, &delta_data->ours)); + cl_assert(treediff_cmp(&delta->theirs, &delta_data->theirs)); + + cl_assert(delta->conflict == delta_data->conflict); + cl_assert(delta->df_conflict == delta_data->df_conflict); + + treediff_cb_data->idx++; return 0; } @@ -78,13 +96,13 @@ static git_diff_tree_list *threeway( const char *ancestor_oidstr, const char *ours_oidstr, const char *theirs_oidstr, - struct treediff_file_data *treediff_file_data, - size_t treediff_file_data_len) + struct treediff_delta_data *treediff_delta_data, + size_t treediff_delta_data_len) { git_diff_tree_list *diff_tree; git_oid ancestor_oid, ours_oid, theirs_oid; git_tree *ancestor_tree, *ours_tree, *theirs_tree; - struct treediff_data treediff_data = {0}; + struct treediff_cb_data treediff_cb_data = {0}; cl_git_pass(git_oid_fromstr(&ancestor_oid, ancestor_oidstr)); cl_git_pass(git_oid_fromstr(&ours_oid, ours_oidstr)); @@ -96,12 +114,12 @@ static git_diff_tree_list *threeway( cl_git_pass(git_diff_tree(&diff_tree, repo, ancestor_tree, ours_tree, theirs_tree, 0)); - cl_assert(treediff_file_data_len == diff_tree->deltas.length); + cl_assert(treediff_delta_data_len == diff_tree->deltas.length); - treediff_data.trees_len = 3; - treediff_data.file_data = treediff_file_data; + treediff_cb_data.delta_data = treediff_delta_data; + treediff_cb_data.delta_data_len = treediff_delta_data_len; - cl_git_pass(git_diff_tree_foreach(diff_tree, treediff_cb, &treediff_data)); + cl_git_pass(git_diff_tree_foreach(diff_tree, treediff_cb, &treediff_cb_data)); git_tree_free(ancestor_tree); git_tree_free(ours_tree); @@ -114,41 +132,221 @@ void test_treediff_threeway__simple(void) { git_diff_tree_list *diff_tree; - struct treediff_file_data treediff_file_data[] = { - { 0, "", "", GIT_DELTA_UNMODIFIED }, - { 0100644, "added-in-master.txt", "233c0919c998ed110a4b6ff36f353aec8b713487", GIT_DELTA_ADDED }, - { 0, "", "", GIT_DELTA_UNMODIFIED }, - - { 0100644, "automergeable.txt", "6212c31dab5e482247d7977e4f0dd3601decf13b", GIT_DELTA_UNMODIFIED }, - { 0100644, "automergeable.txt", "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_DELTA_MODIFIED }, - { 0100644, "automergeable.txt", "058541fc37114bfc1dddf6bd6bffc7fae5c2e6fe", GIT_DELTA_MODIFIED }, - - { 0100644, "changed-in-branch.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, - { 0100644, "changed-in-branch.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, - { 0100644, "changed-in-branch.txt", "4eb04c9e79e88f6640d01ff5b25ca2a60764f216", GIT_DELTA_MODIFIED }, - - { 0100644, "changed-in-master.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, - { 0100644, "changed-in-master.txt", "11deab00b2d3a6f5a3073988ac050c2d7b6655e2", GIT_DELTA_MODIFIED }, - { 0100644, "changed-in-master.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, - - { 0100644, "conflicting.txt", "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_DELTA_UNMODIFIED }, - { 0100644, "conflicting.txt", "4e886e602529caa9ab11d71f86634bd1b6e0de10", GIT_DELTA_MODIFIED }, - { 0100644, "conflicting.txt", "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_DELTA_MODIFIED }, - - { 0100644, "removed-in-branch.txt", "dfe3f22baa1f6fce5447901c3086bae368de6bdd", GIT_DELTA_UNMODIFIED }, - { 0100644, "removed-in-branch.txt", "dfe3f22baa1f6fce5447901c3086bae368de6bdd", GIT_DELTA_UNMODIFIED }, - { 0, "", "", GIT_DELTA_DELETED }, - - { 0100644, "removed-in-master.txt", "5c3b68a71fc4fa5d362fd3875e53137c6a5ab7a5", GIT_DELTA_UNMODIFIED }, - { 0, "", "", GIT_DELTA_DELETED }, - { 0100644, "removed-in-master.txt", "5c3b68a71fc4fa5d362fd3875e53137c6a5ab7a5", GIT_DELTA_UNMODIFIED }, + struct treediff_delta_data treediff_delta_data[] = { + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "added-in-master.txt", "233c0919c998ed110a4b6ff36f353aec8b713487", GIT_DELTA_ADDED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE + }, + + { + { 0100644, "automergeable.txt", "6212c31dab5e482247d7977e4f0dd3601decf13b", GIT_DELTA_UNMODIFIED }, + { 0100644, "automergeable.txt", "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_DELTA_MODIFIED }, + { 0100644, "automergeable.txt", "058541fc37114bfc1dddf6bd6bffc7fae5c2e6fe", GIT_DELTA_MODIFIED }, + GIT_DIFF_TREE_CONFLICT_BOTH_MODIFIED + }, + + { + { 0100644, "changed-in-branch.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, + { 0100644, "changed-in-branch.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, + { 0100644, "changed-in-branch.txt", "4eb04c9e79e88f6640d01ff5b25ca2a60764f216", GIT_DELTA_MODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE + }, + + { + { 0100644, "changed-in-master.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, + { 0100644, "changed-in-master.txt", "11deab00b2d3a6f5a3073988ac050c2d7b6655e2", GIT_DELTA_MODIFIED }, + { 0100644, "changed-in-master.txt", "ab6c44a2e84492ad4b41bb6bac87353e9d02ac8b", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE + }, + + { + { 0100644, "conflicting.txt", "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_DELTA_UNMODIFIED }, + { 0100644, "conflicting.txt", "4e886e602529caa9ab11d71f86634bd1b6e0de10", GIT_DELTA_MODIFIED }, + { 0100644, "conflicting.txt", "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_DELTA_MODIFIED }, + GIT_DIFF_TREE_CONFLICT_BOTH_MODIFIED + }, + + { + { 0100644, "removed-in-branch.txt", "dfe3f22baa1f6fce5447901c3086bae368de6bdd", GIT_DELTA_UNMODIFIED }, + { 0100644, "removed-in-branch.txt", "dfe3f22baa1f6fce5447901c3086bae368de6bdd", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_NONE + }, + + { + { 0100644, "removed-in-master.txt", "5c3b68a71fc4fa5d362fd3875e53137c6a5ab7a5", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0100644, "removed-in-master.txt", "5c3b68a71fc4fa5d362fd3875e53137c6a5ab7a5", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE + }, }; - cl_assert(diff_tree = threeway(TREE_OID_ANCESTOR, TREE_OID_MASTER, TREE_OID_BRANCH, treediff_file_data, 7)); + cl_assert(diff_tree = threeway(TREE_OID_ANCESTOR, TREE_OID_MASTER, TREE_OID_BRANCH, treediff_delta_data, 7)); git_diff_tree_list_free(diff_tree); } +void test_treediff_threeway__df_conflicts(void) +{ + git_diff_tree_list *diff_tree; + + struct treediff_delta_data treediff_delta_data[] = { + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-10", "49130a28ef567af9a6a6104c38773fedfa5f9742", GIT_DELTA_ADDED }, + { 0100644, "dir-10", "6c06dcd163587c2cc18be44857e0b71116382aeb", GIT_DELTA_ADDED }, + GIT_DIFF_TREE_CONFLICT_BOTH_ADDED, + }, + + { + { 0100644, "dir-10/file.txt", "242591eb280ee9eeb2ce63524b9a8b9bc4cb515d", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_BOTH_DELETED, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-6", "43aafd43bea779ec74317dc361f45ae3f532a505", GIT_DELTA_ADDED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0100644, "dir-6/file.txt", "cf8c5cc8a85a1ff5a4ba51e0bc7cf5665669924d", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-6/file.txt", "cf8c5cc8a85a1ff5a4ba51e0bc7cf5665669924d", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-7", "a031a28ae70e33a641ce4b8a8f6317f1ab79dee4", GIT_DELTA_ADDED }, + GIT_DIFF_TREE_CONFLICT_NONE, + GIT_DIFF_TREE_DF_DIRECTORY_FILE, + }, + + { + { 0100644, "dir-7/file.txt", "5012fd565b1393bdfda1805d4ec38ce6619e1fd1", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-7/file.txt", "a5563304ddf6caba25cb50323a2ea6f7dbfcadca", GIT_DELTA_MODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE, + GIT_DIFF_TREE_DF_CHILD, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-8", "e9ad6ec3e38364a3d07feda7c4197d4d845c53b5", GIT_DELTA_ADDED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0100644, "dir-8/file.txt", "f20c9063fa0bda9a397c96947a7b687305c49753", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0100644, "dir-8/file.txt", "f20c9063fa0bda9a397c96947a7b687305c49753", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "dir-9", "3ef4d30382ca33fdeba9fda895a99e0891ba37aa", GIT_DELTA_ADDED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE, + GIT_DIFF_TREE_DF_DIRECTORY_FILE, + }, + + { + { 0100644, "dir-9/file.txt", "fc4c636d6515e9e261f9260dbcf3cc6eca97ea08", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0100644, "dir-9/file.txt", "76ab0e2868197ec158ddd6c78d8a0d2fd73d38f9", GIT_DELTA_MODIFIED }, + GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE, + GIT_DIFF_TREE_DF_CHILD, + }, + + { + { 0100644, "file-1", "1e4ff029aee68d0d69ef9eb6efa6cbf1ec732f99", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-1", "1e4ff029aee68d0d69ef9eb6efa6cbf1ec732f99", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-1/new", "5c2411f8075f48a6b2fdb85ebc0d371747c4df15", GIT_DELTA_ADDED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0100644, "file-2", "a39a620dae5bc8b4e771cd4d251b7d080401a21e", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-2", "d963979c237d08b6ba39062ee7bf64c7d34a27f8", GIT_DELTA_MODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE, + GIT_DIFF_TREE_DF_DIRECTORY_FILE, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-2/new", "5c341ead2ba6f2af98ce5ec3fe84f6b6d2899c0d", GIT_DELTA_ADDED }, + GIT_DIFF_TREE_CONFLICT_NONE, + GIT_DIFF_TREE_DF_CHILD, + }, + + { + { 0100644, "file-3", "032ebc5ab85d9553bb187d3cd40875ff23a63ed0", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0100644, "file-3", "032ebc5ab85d9553bb187d3cd40875ff23a63ed0", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-3/new", "9efe7723802d4305142eee177e018fee1572c4f4", GIT_DELTA_ADDED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE, + }, + + { + { 0100644, "file-4", "bacac9b3493509aa15e1730e1545fc0919d1dae0", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0100644, "file-4", "7663fce0130db092936b137cabd693ec234eb060", GIT_DELTA_MODIFIED }, + GIT_DIFF_TREE_CONFLICT_MODIFY_DELETE, + GIT_DIFF_TREE_DF_DIRECTORY_FILE, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-4/new", "e49f917b448d1340b31d76e54ba388268fd4c922", GIT_DELTA_ADDED }, + { 0, "", "", GIT_DELTA_UNMODIFIED }, + GIT_DIFF_TREE_CONFLICT_NONE, + GIT_DIFF_TREE_DF_CHILD, + }, + + { + { 0100644, "file-5", "ac4045f965119e6998f4340ed0f411decfb3ec05", GIT_DELTA_UNMODIFIED }, + { 0, "", "", GIT_DELTA_DELETED }, + { 0, "", "", GIT_DELTA_DELETED }, + GIT_DIFF_TREE_CONFLICT_BOTH_DELETED, + }, + + { + { 0, "", "", GIT_DELTA_UNMODIFIED }, + { 0100644, "file-5/new", "cab2cf23998b40f1af2d9d9a756dc9e285a8df4b", GIT_DELTA_ADDED }, + { 0100644, "file-5/new", "f5504f36e6f4eb797a56fc5bac6c6c7f32969bf2", GIT_DELTA_ADDED }, + GIT_DIFF_TREE_CONFLICT_BOTH_ADDED, + }, + }; + + cl_assert(diff_tree = threeway(TREE_OID_DF_ANCESTOR, TREE_OID_DF_SIDE1, TREE_OID_DF_SIDE2, treediff_delta_data, 20)); + + git_diff_tree_list_free(diff_tree); +} + /* * TODO: enable this when strict diff computation is enabled * |