|
| 1 | +#!/bin/sh |
| 2 | +# |
| 3 | +# Copyright (c) 2006 Junio C Hamano |
| 4 | +# |
| 5 | + |
| 6 | +test_description='git-checkout tests.' |
| 7 | + |
| 8 | +. ./test-lib.sh |
| 9 | + |
| 10 | +fill () { |
| 11 | + for i |
| 12 | + do |
| 13 | + echo "$i" |
| 14 | + done |
| 15 | +} |
| 16 | + |
| 17 | +test_expect_success setup ' |
| 18 | +
|
| 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" && |
| 23 | +
|
| 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" && |
| 30 | +
|
| 31 | + git checkout master |
| 32 | +' |
| 33 | + |
| 34 | +test_expect_success "checkout with dirty tree without -m" ' |
| 35 | +
|
| 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 |
| 44 | +
|
| 45 | +' |
| 46 | + |
| 47 | +test_expect_success "checkout -m with dirty tree" ' |
| 48 | +
|
| 49 | + git checkout -f master && |
| 50 | + git clean && |
| 51 | +
|
| 52 | + fill 0 1 2 3 4 5 >one && |
| 53 | + git checkout -m side && |
| 54 | +
|
| 55 | + fill " master" "* side" >expect.branch && |
| 56 | + git branch >current.branch && |
| 57 | + diff expect.branch current.branch && |
| 58 | +
|
| 59 | + fill "M one" "A three" "D two" >expect.master && |
| 60 | + git diff --name-status master >current.master && |
| 61 | + diff expect.master current.master && |
| 62 | +
|
| 63 | + fill "M one" >expect.side && |
| 64 | + git diff --name-status side >current.side && |
| 65 | + diff expect.side current.side && |
| 66 | +
|
| 67 | + : >expect.index && |
| 68 | + git diff --cached >current.index && |
| 69 | + diff expect.index current.index |
| 70 | +' |
| 71 | + |
| 72 | +test_done |
0 commit comments