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

t7609: test merge and checkout error messages

Test porcelain and plumbing error messages for different types of errors of merge and checkout. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Diane Gasselin committed Aug 11, 2010 at 10:38 UTC e935e62a0fd26ff1f29a98a4ca8fa693f42357a2
1 file changed +125
t/t7609-merge-co-error-msgs.sh new
+125
@@ -0,0 +1,125 @@
1 +#!/bin/sh
2 +
3 +test_description='unpack-trees error messages'
4 +
5 +. ./test-lib.sh
6 +
7 +
8 +test_expect_success 'setup' '
9 + echo one >one &&
10 + git add one &&
11 + git commit -a -m First &&
12 +
13 + git checkout -b branch &&
14 + echo two >two &&
15 + echo three >three &&
16 + echo four >four &&
17 + echo five >five &&
18 + git add two three four five &&
19 + git commit -m Second &&
20 +
21 + git checkout master &&
22 + echo other >two &&
23 + echo other >three &&
24 + echo other >four &&
25 + echo other >five
26 +'
27 +
28 +cat >expect <<\EOF
29 +error: The following untracked working tree files would be overwritten by merge:
30 + two
31 + three
32 + four
33 + five
34 +Please move or remove them before you can merge.
35 +EOF
36 +
37 +test_expect_success 'untracked files overwritten by merge' '
38 + test_must_fail git merge branch 2>out &&
39 + test_cmp out expect
40 +'
41 +
42 +cat >expect <<\EOF
43 +error: Your local changes to the following files would be overwritten by merge:
44 + two
45 + three
46 + four
47 +Please, commit your changes or stash them before you can merge.
48 +error: The following untracked working tree files would be overwritten by merge:
49 + five
50 +Please move or remove them before you can merge.
51 +EOF
52 +
53 +test_expect_success 'untracked files or local changes ovewritten by merge' '
54 + git add two &&
55 + git add three &&
56 + git add four &&
57 + test_must_fail git merge branch 2>out &&
58 + test_cmp out expect
59 +'
60 +
61 +cat >expect <<\EOF
62 +error: Your local changes to the following files would be overwritten by checkout:
63 + rep/two
64 + rep/one
65 +Please, commit your changes or stash them before you can switch branches.
66 +EOF
67 +
68 +test_expect_success 'cannot switch branches because of local changes' '
69 + git add five &&
70 + mkdir rep &&
71 + echo one >rep/one &&
72 + echo two >rep/two &&
73 + git add rep/one rep/two &&
74 + git commit -m Fourth &&
75 + git checkout master &&
76 + echo uno >rep/one &&
77 + echo dos >rep/two &&
78 + test_must_fail git checkout branch 2>out &&
79 + test_cmp out expect
80 +'
81 +
82 +cat >expect <<\EOF
83 +error: Your local changes to the following files would be overwritten by checkout:
84 + rep/two
85 + rep/one
86 +Please, commit your changes or stash them before you can switch branches.
87 +EOF
88 +
89 +test_expect_success 'not uptodate file porcelain checkout error' '
90 + git add rep/one rep/two &&
91 + test_must_fail git checkout branch 2>out &&
92 + test_cmp out expect
93 +'
94 +
95 +cat >expect <<\EOF
96 +error: Updating the following directories would lose untracked files in it:
97 + rep2
98 + rep
99 +
100 +EOF
101 +
102 +test_expect_success 'not_uptodate_dir porcelain checkout error' '
103 + git init uptodate &&
104 + cd uptodate &&
105 + mkdir rep &&
106 + mkdir rep2 &&
107 + touch rep/foo &&
108 + touch rep2/foo &&
109 + git add rep/foo rep2/foo &&
110 + git commit -m init &&
111 + git checkout -b branch &&
112 + git rm rep -r &&
113 + git rm rep2 -r &&
114 + >rep &&
115 + >rep2 &&
116 + git add rep rep2&&
117 + git commit -m "added test as a file" &&
118 + git checkout master &&
119 + >rep/untracked-file &&
120 + >rep2/untracked-file &&
121 + test_must_fail git checkout branch 2>out &&
122 + test_cmp out ../expect
123 +'
124 +
125 +test_done