diff options
author | Edward Thomson <ethomson@github.com> | 2016-06-02 01:58:25 -0500 |
---|---|---|
committer | Edward Thomson <ethomson@github.com> | 2016-06-02 02:38:18 -0500 |
commit | 5acf18ac6304fc216f1adecba64d61c895a883c8 (patch) | |
tree | b1bc9e7695d5ac22cd8ffa20a985295b0f67512e | |
parent | 91fbf9d867877d77ec0546bd45fb649721d194f8 (diff) | |
download | libgit2-5acf18ac6304fc216f1adecba64d61c895a883c8.tar.gz |
rebase: test rebasing a new commit with subfolder
Test a rebase (both a merge rebase and an inmemory rebase) with a new
commit that adds files underneath a new subfolder.
-rw-r--r-- | tests/rebase/inmemory.c | 43 | ||||
-rw-r--r-- | tests/rebase/merge.c | 39 | ||||
-rw-r--r-- | tests/resources/rebase/.gitted/objects/1d/83f106355e4309a293e42ad2a2c4b8bdbe77ae | bin | 0 -> 31 bytes | |||
-rw-r--r-- | tests/resources/rebase/.gitted/objects/5a/72bf3bf964fdb176ffa4587312e69e2039695a | bin | 0 -> 49 bytes | |||
-rw-r--r-- | tests/resources/rebase/.gitted/objects/77/0f14546ee2563a26c52afa5cc4139a96e5d360 | bin | 0 -> 238 bytes | |||
-rw-r--r-- | tests/resources/rebase/.gitted/objects/91/4f3c604d1098847b7fe275f659ee329878153f | bin | 0 -> 48 bytes | |||
-rw-r--r-- | tests/resources/rebase/.gitted/objects/d9/c5185186d95d233dc007c1927cb3bdd6cde35b | bin | 0 -> 165 bytes | |||
-rw-r--r-- | tests/resources/rebase/.gitted/refs/heads/deep_gravy | 1 |
8 files changed, 83 insertions, 0 deletions
diff --git a/tests/rebase/inmemory.c b/tests/rebase/inmemory.c index 7ce865b2f..367d6b3ac 100644 --- a/tests/rebase/inmemory.c +++ b/tests/rebase/inmemory.c @@ -165,3 +165,46 @@ void test_rebase_inmemory__no_common_ancestor(void) git_reference_free(upstream_ref); git_rebase_free(rebase); } + +void test_rebase_inmemory__with_directories(void) +{ + git_rebase *rebase; + git_reference *branch_ref, *upstream_ref; + git_annotated_commit *branch_head, *upstream_head; + git_rebase_operation *rebase_operation; + git_oid commit_id, tree_id; + git_commit *commit; + git_rebase_options opts = GIT_REBASE_OPTIONS_INIT; + + opts.inmemory = true; + + git_oid_fromstr(&tree_id, "a4d6d9c3d57308fd8e320cf2525bae8f1adafa57"); + + cl_git_pass(git_reference_lookup(&branch_ref, repo, "refs/heads/deep_gravy")); + cl_git_pass(git_reference_lookup(&upstream_ref, repo, "refs/heads/veal")); + + cl_git_pass(git_annotated_commit_from_ref(&branch_head, repo, branch_ref)); + cl_git_pass(git_annotated_commit_from_ref(&upstream_head, repo, upstream_ref)); + + cl_git_pass(git_rebase_init(&rebase, repo, branch_head, upstream_head, NULL, &opts)); + + cl_git_pass(git_rebase_next(&rebase_operation, rebase)); + cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, + NULL, NULL)); + + cl_git_pass(git_rebase_next(&rebase_operation, rebase)); + cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, + NULL, NULL)); + + cl_git_fail_with(GIT_ITEROVER, git_rebase_next(&rebase_operation, rebase)); + + cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); + cl_assert_equal_oid(&tree_id, git_commit_tree_id(commit)); + + git_commit_free(commit); + git_annotated_commit_free(branch_head); + git_annotated_commit_free(upstream_head); + git_reference_free(branch_ref); + git_reference_free(upstream_ref); + git_rebase_free(rebase); +} diff --git a/tests/rebase/merge.c b/tests/rebase/merge.c index 74507e258..0f06ed153 100644 --- a/tests/rebase/merge.c +++ b/tests/rebase/merge.c @@ -750,3 +750,42 @@ void test_rebase_merge__custom_merge_options(void) git_rebase_free(rebase); } +void test_rebase_merge__with_directories(void) +{ + git_rebase *rebase; + git_reference *branch_ref, *upstream_ref; + git_annotated_commit *branch_head, *upstream_head; + git_rebase_operation *rebase_operation; + git_oid commit_id, tree_id; + git_commit *commit; + + git_oid_fromstr(&tree_id, "a4d6d9c3d57308fd8e320cf2525bae8f1adafa57"); + + cl_git_pass(git_reference_lookup(&branch_ref, repo, "refs/heads/deep_gravy")); + cl_git_pass(git_reference_lookup(&upstream_ref, repo, "refs/heads/veal")); + + cl_git_pass(git_annotated_commit_from_ref(&branch_head, repo, branch_ref)); + cl_git_pass(git_annotated_commit_from_ref(&upstream_head, repo, upstream_ref)); + + cl_git_pass(git_rebase_init(&rebase, repo, branch_head, upstream_head, NULL, NULL)); + + cl_git_pass(git_rebase_next(&rebase_operation, rebase)); + cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, + NULL, NULL)); + + cl_git_pass(git_rebase_next(&rebase_operation, rebase)); + cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, + NULL, NULL)); + + cl_git_fail_with(GIT_ITEROVER, git_rebase_next(&rebase_operation, rebase)); + + cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); + cl_assert_equal_oid(&tree_id, git_commit_tree_id(commit)); + + git_commit_free(commit); + git_annotated_commit_free(branch_head); + git_annotated_commit_free(upstream_head); + git_reference_free(branch_ref); + git_reference_free(upstream_ref); + git_rebase_free(rebase); +} diff --git a/tests/resources/rebase/.gitted/objects/1d/83f106355e4309a293e42ad2a2c4b8bdbe77ae b/tests/resources/rebase/.gitted/objects/1d/83f106355e4309a293e42ad2a2c4b8bdbe77ae Binary files differnew file mode 100644 index 000000000..6230fdf35 --- /dev/null +++ b/tests/resources/rebase/.gitted/objects/1d/83f106355e4309a293e42ad2a2c4b8bdbe77ae diff --git a/tests/resources/rebase/.gitted/objects/5a/72bf3bf964fdb176ffa4587312e69e2039695a b/tests/resources/rebase/.gitted/objects/5a/72bf3bf964fdb176ffa4587312e69e2039695a Binary files differnew file mode 100644 index 000000000..80eb921d6 --- /dev/null +++ b/tests/resources/rebase/.gitted/objects/5a/72bf3bf964fdb176ffa4587312e69e2039695a diff --git a/tests/resources/rebase/.gitted/objects/77/0f14546ee2563a26c52afa5cc4139a96e5d360 b/tests/resources/rebase/.gitted/objects/77/0f14546ee2563a26c52afa5cc4139a96e5d360 Binary files differnew file mode 100644 index 000000000..6091d54a0 --- /dev/null +++ b/tests/resources/rebase/.gitted/objects/77/0f14546ee2563a26c52afa5cc4139a96e5d360 diff --git a/tests/resources/rebase/.gitted/objects/91/4f3c604d1098847b7fe275f659ee329878153f b/tests/resources/rebase/.gitted/objects/91/4f3c604d1098847b7fe275f659ee329878153f Binary files differnew file mode 100644 index 000000000..726bf9177 --- /dev/null +++ b/tests/resources/rebase/.gitted/objects/91/4f3c604d1098847b7fe275f659ee329878153f diff --git a/tests/resources/rebase/.gitted/objects/d9/c5185186d95d233dc007c1927cb3bdd6cde35b b/tests/resources/rebase/.gitted/objects/d9/c5185186d95d233dc007c1927cb3bdd6cde35b Binary files differnew file mode 100644 index 000000000..3c340db84 --- /dev/null +++ b/tests/resources/rebase/.gitted/objects/d9/c5185186d95d233dc007c1927cb3bdd6cde35b diff --git a/tests/resources/rebase/.gitted/refs/heads/deep_gravy b/tests/resources/rebase/.gitted/refs/heads/deep_gravy new file mode 100644 index 000000000..efbe5f0a0 --- /dev/null +++ b/tests/resources/rebase/.gitted/refs/heads/deep_gravy @@ -0,0 +1 @@ +d9c5185186d95d233dc007c1927cb3bdd6cde35b |