t / t7502-status.shon commit Merge git://repo.or.cz/git-gui (7ae512b)
   1#!/bin/sh
   2#
   3# Copyright (c) 2007 Johannes E. Schindelin
   4#
   5
   6test_description='git-status'
   7
   8. ./test-lib.sh
   9
  10test_expect_success 'setup' '
  11        : > tracked &&
  12        : > modified &&
  13        mkdir dir1 &&
  14        : > dir1/tracked &&
  15        : > dir1/modified &&
  16        mkdir dir2 &&
  17        : > dir1/tracked &&
  18        : > dir1/modified &&
  19        git add . &&
  20
  21        git status >output &&
  22
  23        test_tick &&
  24        git commit -m initial &&
  25        : > untracked &&
  26        : > dir1/untracked &&
  27        : > dir2/untracked &&
  28        echo 1 > dir1/modified &&
  29        echo 2 > dir2/modified &&
  30        echo 3 > dir2/added &&
  31        git add dir2/added
  32'
  33
  34test_expect_success 'status (1)' '
  35
  36        grep "use \"git rm --cached <file>\.\.\.\" to unstage" output
  37
  38'
  39
  40cat > expect << \EOF
  41# On branch master
  42# Changes to be committed:
  43#   (use "git reset HEAD <file>..." to unstage)
  44#
  45#       new file:   dir2/added
  46#
  47# Changed but not updated:
  48#   (use "git add <file>..." to update what will be committed)
  49#
  50#       modified:   dir1/modified
  51#
  52# Untracked files:
  53#   (use "git add <file>..." to include in what will be committed)
  54#
  55#       dir1/untracked
  56#       dir2/modified
  57#       dir2/untracked
  58#       expect
  59#       output
  60#       untracked
  61EOF
  62
  63test_expect_success 'status (2)' '
  64
  65        git status > output &&
  66        git diff expect output
  67
  68'
  69
  70cat > expect << \EOF
  71# On branch master
  72# Changes to be committed:
  73#   (use "git reset HEAD <file>..." to unstage)
  74#
  75#       new file:   ../dir2/added
  76#
  77# Changed but not updated:
  78#   (use "git add <file>..." to update what will be committed)
  79#
  80#       modified:   modified
  81#
  82# Untracked files:
  83#   (use "git add <file>..." to include in what will be committed)
  84#
  85#       untracked
  86#       ../dir2/modified
  87#       ../dir2/untracked
  88#       ../expect
  89#       ../output
  90#       ../untracked
  91EOF
  92
  93test_expect_success 'status with relative paths' '
  94
  95        (cd dir1 && git status) > output &&
  96        git diff expect output
  97
  98'
  99
 100cat > expect << \EOF
 101# On branch master
 102# Changes to be committed:
 103#   (use "git reset HEAD <file>..." to unstage)
 104#
 105#       new file:   dir2/added
 106#
 107# Changed but not updated:
 108#   (use "git add <file>..." to update what will be committed)
 109#
 110#       modified:   dir1/modified
 111#
 112# Untracked files:
 113#   (use "git add <file>..." to include in what will be committed)
 114#
 115#       dir1/untracked
 116#       dir2/modified
 117#       dir2/untracked
 118#       expect
 119#       output
 120#       untracked
 121EOF
 122
 123test_expect_success 'status without relative paths' '
 124
 125        git config status.relativePaths false
 126        (cd dir1 && git status) > output &&
 127        git diff expect output
 128
 129'
 130
 131cat <<EOF >expect
 132# On branch master
 133# Changes to be committed:
 134#   (use "git reset HEAD <file>..." to unstage)
 135#
 136#       modified:   dir1/modified
 137#
 138# Untracked files:
 139#   (use "git add <file>..." to include in what will be committed)
 140#
 141#       dir1/untracked
 142#       dir2/
 143#       expect
 144#       output
 145#       untracked
 146EOF
 147test_expect_success 'status of partial commit excluding new file in index' '
 148        git status dir1/modified >output &&
 149        test_cmp expect output
 150'
 151
 152test_done