t / t7201-co.shon commit Merge branch 'js/merge-base' (bf928e9)
   1#!/bin/sh
   2#
   3# Copyright (c) 2006 Junio C Hamano
   4#
   5
   6test_description='git-checkout tests.'
   7
   8. ./test-lib.sh
   9
  10fill () {
  11        for i
  12        do
  13                echo "$i"
  14        done
  15}
  16
  17test_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
  34test_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
  47test_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
  72test_done