Code

Merge branch 'th/diff-extra'
[git.git] / t / t7201-co.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2006 Junio C Hamano
4 #
6 test_description='git-checkout tests.'
8 . ./test-lib.sh
10 fill () {
11         for i
12         do
13                 echo "$i"
14         done
15 }
17 test_expect_success setup '
19         fill 1 2 3 4 5 >one &&
20         fill a b c d e >two &&
21         git add one two &&
22         git commit -m "Initial A one, A two" &&
24         git checkout -b side &&
25         fill 1 2 3 >one &&
26         fill A B C D E >three &&
27         rm -f two &&
28         git update-index --add --remove one two three &&
29         git commit -m "Side M one, D two, A three" &&
31         git checkout master
32 '
34 test_expect_success "checkout with dirty tree without -m" '
36         fill 0 1 2 3 4 5 >one &&
37         if git checkout side
38         then
39                 echo Not happy
40                 false
41         else
42                 echo "happy - failed correctly"
43         fi
45 '
47 test_expect_success "checkout -m with dirty tree" '
49         git checkout -f master &&
50         git clean &&
52         fill 0 1 2 3 4 5 >one &&
53         git checkout -m side &&
55         fill "  master" "* side" >expect.branch &&
56         git branch >current.branch &&
57         diff expect.branch current.branch &&
59         fill "M one" "A three" "D       two" >expect.master &&
60         git diff --name-status master >current.master &&
61         diff expect.master current.master &&
63         fill "M one" >expect.side &&
64         git diff --name-status side >current.side &&
65         diff expect.side current.side &&
67         : >expect.index &&
68         git diff --cached >current.index &&
69         diff expect.index current.index
70 '
72 test_done