@matheusbsbs / matheus-bagliano / commits / aa29ccf4c0
Fork 0

revert: add tests to check cherry-picking many commits

Note that there is an expected failure when running: git cherry-pick -3 fourth that's because: git rev-list --no-walk -3 fourth produce only one commit and not 3 as "--no-walk" seems to take over "-3". Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Jun 2, 2010 at 07:58 UTC aa29ccf4c07a6e1e249794e1fa3c7cd0bf0a9e46
1 file changed +95
t/t3508-cherry-pick-many-commits.sh new
+95
@@ -0,0 +1,95 @@
1 +#!/bin/sh
2 +
3 +test_description='test cherry-picking many commits'
4 +
5 +. ./test-lib.sh
6 +
7 +test_expect_success setup '
8 + echo first > file1 &&
9 + git add file1 &&
10 + test_tick &&
11 + git commit -m "first" &&
12 + git tag first &&
13 +
14 + git checkout -b other &&
15 + for val in second third fourth
16 + do
17 + echo $val >> file1 &&
18 + git add file1 &&
19 + test_tick &&
20 + git commit -m "$val" &&
21 + git tag $val
22 + done
23 +'
24 +
25 +test_expect_success 'cherry-pick first..fourth works' '
26 + git checkout master &&
27 + git reset --hard first &&
28 + test_tick &&
29 + git cherry-pick first..fourth &&
30 + git diff --quiet other &&
31 + git diff --quiet HEAD other &&
32 + test "$(git rev-parse --verify HEAD)" != "$(git rev-parse --verify fourth)"
33 +'
34 +
35 +test_expect_success 'cherry-pick --ff first..fourth works' '
36 + git checkout master &&
37 + git reset --hard first &&
38 + test_tick &&
39 + git cherry-pick --ff first..fourth &&
40 + git diff --quiet other &&
41 + git diff --quiet HEAD other &&
42 + test "$(git rev-parse --verify HEAD)" = "$(git rev-parse --verify fourth)"
43 +'
44 +
45 +test_expect_success 'cherry-pick -n first..fourth works' '
46 + git checkout master &&
47 + git reset --hard first &&
48 + test_tick &&
49 + git cherry-pick -n first..fourth &&
50 + git diff --quiet other &&
51 + git diff --cached --quiet other &&
52 + git diff --quiet HEAD first
53 +'
54 +
55 +test_expect_success 'revert first..fourth works' '
56 + git checkout master &&
57 + git reset --hard fourth &&
58 + test_tick &&
59 + git revert first..fourth &&
60 + git diff --quiet first &&
61 + git diff --cached --quiet first &&
62 + git diff --quiet HEAD first
63 +'
64 +
65 +test_expect_success 'revert ^first fourth works' '
66 + git checkout master &&
67 + git reset --hard fourth &&
68 + test_tick &&
69 + git revert ^first fourth &&
70 + git diff --quiet first &&
71 + git diff --cached --quiet first &&
72 + git diff --quiet HEAD first
73 +'
74 +
75 +test_expect_success 'revert fourth fourth~1 fourth~2 works' '
76 + git checkout master &&
77 + git reset --hard fourth &&
78 + test_tick &&
79 + git revert fourth fourth~1 fourth~2 &&
80 + git diff --quiet first &&
81 + git diff --cached --quiet first &&
82 + git diff --quiet HEAD first
83 +'
84 +
85 +test_expect_failure 'cherry-pick -3 fourth works' '
86 + git checkout master &&
87 + git reset --hard first &&
88 + test_tick &&
89 + git cherry-pick -3 fourth &&
90 + git diff --quiet other &&
91 + git diff --quiet HEAD other &&
92 + test "$(git rev-parse --verify HEAD)" != "$(git rev-parse --verify fourth)"
93 +'
94 +
95 +test_done