-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add new test case to ensure git-merge reduces octopus parents when po…
…ssible The old shell version used show-branch --independent to filter for the ones that cannot be reached from any other reference. The new C version uses reduce_heads() from commit.c for this, so add test to ensure it works as expected. Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Miklos Vajna
authored and
Junio C Hamano
committed
Jul 1, 2008
1 parent
98cf9c3
commit f4022fa
Showing
1 changed file
with
63 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
#!/bin/sh | ||
|
||
test_description='git-merge | ||
Testing octopus merge when reducing parents to independent branches.' | ||
|
||
. ./test-lib.sh | ||
|
||
# 0 - 1 | ||
# \ 2 | ||
# \ 3 | ||
# \ 4 - 5 | ||
# | ||
# So 1, 2, 3 and 5 should be kept, 4 should be avoided. | ||
|
||
test_expect_success 'setup' ' | ||
echo c0 > c0.c && | ||
git add c0.c && | ||
git commit -m c0 && | ||
git tag c0 && | ||
echo c1 > c1.c && | ||
git add c1.c && | ||
git commit -m c1 && | ||
git tag c1 && | ||
git reset --hard c0 && | ||
echo c2 > c2.c && | ||
git add c2.c && | ||
git commit -m c2 && | ||
git tag c2 && | ||
git reset --hard c0 && | ||
echo c3 > c3.c && | ||
git add c3.c && | ||
git commit -m c3 && | ||
git tag c3 && | ||
git reset --hard c0 && | ||
echo c4 > c4.c && | ||
git add c4.c && | ||
git commit -m c4 && | ||
git tag c4 && | ||
echo c5 > c5.c && | ||
git add c5.c && | ||
git commit -m c5 && | ||
git tag c5 | ||
' | ||
|
||
test_expect_success 'merge c1 with c2, c3, c4, c5' ' | ||
git reset --hard c1 && | ||
git merge c2 c3 c4 c5 && | ||
test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && | ||
test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" && | ||
test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" && | ||
test "$(git rev-parse c3)" = "$(git rev-parse HEAD^3)" && | ||
test "$(git rev-parse c5)" = "$(git rev-parse HEAD^4)" && | ||
git diff --exit-code && | ||
test -f c0.c && | ||
test -f c1.c && | ||
test -f c2.c && | ||
test -f c3.c && | ||
test -f c4.c && | ||
test -f c5.c | ||
' | ||
|
||
test_done |