From 5b6b774533fe0973a652be296b774bcddd96e5fd Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Fri, 30 Oct 2015 18:32:34 +0100 Subject: Add test case --- tests/resources/redundant.git/HEAD | 1 + tests/resources/redundant.git/config | 5 +++++ tests/resources/redundant.git/objects/info/packs | 2 ++ ...pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.idx | Bin 0 -> 121136 bytes ...ack-3d944c0c5bcb6b16209af847052c6ff1a521529d.pack | Bin 0 -> 309860 bytes tests/resources/redundant.git/packed-refs | 3 +++ tests/resources/redundant.git/refs/.gitkeep | 0 tests/revwalk/mergebase.c | 19 +++++++++++++++++++ 8 files changed, 30 insertions(+) create mode 100644 tests/resources/redundant.git/HEAD create mode 100755 tests/resources/redundant.git/config create mode 100644 tests/resources/redundant.git/objects/info/packs create mode 100644 tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.idx create mode 100644 tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.pack create mode 100644 tests/resources/redundant.git/packed-refs create mode 100644 tests/resources/redundant.git/refs/.gitkeep diff --git a/tests/resources/redundant.git/HEAD b/tests/resources/redundant.git/HEAD new file mode 100644 index 000000000..cb089cd89 --- /dev/null +++ b/tests/resources/redundant.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/tests/resources/redundant.git/config b/tests/resources/redundant.git/config new file mode 100755 index 000000000..2f8958058 --- /dev/null +++ b/tests/resources/redundant.git/config @@ -0,0 +1,5 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true + logallrefupdates = true diff --git a/tests/resources/redundant.git/objects/info/packs b/tests/resources/redundant.git/objects/info/packs new file mode 100644 index 000000000..fbf960f10 --- /dev/null +++ b/tests/resources/redundant.git/objects/info/packs @@ -0,0 +1,2 @@ +P pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.pack + diff --git a/tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.idx b/tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.idx new file mode 100644 index 000000000..d8e099a98 Binary files /dev/null and b/tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.idx differ diff --git a/tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.pack b/tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.pack new file mode 100644 index 000000000..02ea49f4b Binary files /dev/null and b/tests/resources/redundant.git/objects/pack/pack-3d944c0c5bcb6b16209af847052c6ff1a521529d.pack differ diff --git a/tests/resources/redundant.git/packed-refs b/tests/resources/redundant.git/packed-refs new file mode 100644 index 000000000..e8bf04d65 --- /dev/null +++ b/tests/resources/redundant.git/packed-refs @@ -0,0 +1,3 @@ +# pack-refs with: peeled fully-peeled +e18fa2788e9c4e12d83150808a31dfbfb1ae364f refs/heads/master +91f4b95df4a59504a9813ba66912562931d990e3 refs/heads/ref2/ref28 diff --git a/tests/resources/redundant.git/refs/.gitkeep b/tests/resources/redundant.git/refs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/tests/revwalk/mergebase.c b/tests/revwalk/mergebase.c index aafe97d71..d486bbaf3 100644 --- a/tests/revwalk/mergebase.c +++ b/tests/revwalk/mergebase.c @@ -492,3 +492,22 @@ void test_revwalk_mergebase__octopus_merge_branch(void) * * a */ + +void test_revwalk_mergebase__remove_redundant(void) +{ + git_repository *repo; + git_oid one, two, base; + git_oidarray result = {NULL, 0}; + + cl_git_pass(git_repository_open(&repo, cl_fixture("redundant.git"))); + + cl_git_pass(git_oid_fromstr(&one, "d89137c93ba1ee749214ff4ce52ae9137bc833f9")); + cl_git_pass(git_oid_fromstr(&two, "91f4b95df4a59504a9813ba66912562931d990e3")); + cl_git_pass(git_oid_fromstr(&base, "6cb1f2352d974e1c5a776093017e8772416ac97a")); + + cl_git_pass(git_merge_bases(&result, repo, &one, &two)); + cl_assert_equal_i(1, result.count); + cl_assert_equal_oid(&base, &result.ids[0]); + + git_repository_free(repo); +} -- cgit v1.2.1