t / t7060-wtstatus.shon commit Prevent git blame from segfaulting on a missing author name (c8cba79)
   1#!/bin/sh
   2
   3test_description='basic work tree status reporting'
   4
   5. ./test-lib.sh
   6
   7test_expect_success setup '
   8        test_commit A &&
   9        test_commit B oneside added &&
  10        git checkout A^0 &&
  11        test_commit C oneside created
  12'
  13
  14test_expect_success 'A/A conflict' '
  15        git checkout B^0 &&
  16        test_must_fail git merge C
  17'
  18
  19test_expect_success 'Report path with conflict' '
  20        git diff --cached --name-status >actual &&
  21        echo "U oneside" >expect &&
  22        test_cmp expect actual
  23'
  24
  25test_expect_success 'Report new path with conflict' '
  26        git diff --cached --name-status HEAD^ >actual &&
  27        echo "U oneside" >expect &&
  28        test_cmp expect actual
  29'
  30
  31cat >expect <<EOF
  32# On branch side
  33# Unmerged paths:
  34#   (use "git reset HEAD <file>..." to unstage)
  35#   (use "git add <file>..." to mark resolution)
  36#
  37#       deleted by us:      foo
  38#
  39no changes added to commit (use "git add" and/or "git commit -a")
  40EOF
  41
  42test_expect_success 'M/D conflict does not segfault' '
  43        mkdir mdconflict &&
  44        (
  45                cd mdconflict &&
  46                git init &&
  47                test_commit initial foo "" &&
  48                test_commit modify foo foo &&
  49                git checkout -b side HEAD^ &&
  50                git rm foo &&
  51                git commit -m delete &&
  52                test_must_fail git merge master &&
  53                test_must_fail git status > ../actual
  54        ) &&
  55        test_cmp expect actual
  56'
  57
  58test_done