aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-08-04 16:25:40 -0700
committerJunio C Hamano <gitster@pobox.com>2009-08-05 02:21:11 -0700
commit29796c6ccff3e70622398379fdcdfa3fe43333ac (patch)
treec0c2b9c2a55e3df9cce448d59e5d557d07d78a4b
parent07a4a3b4962e1fd4e40fd877427cddd7428c1bc3 (diff)
downloadgit-29796c6ccff3e70622398379fdcdfa3fe43333ac.tar.gz
git-29796c6ccff3e70622398379fdcdfa3fe43333ac.tar.xz
diff-index: report unmerged new entries
Since an earlier change to diff-index by d1f2d7e (Make run_diff_index() use unpack_trees(), not read_tree(), 2008-01-19), we stopped reporting an unmerged path that does not exist in the tree, but we should. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--diff-lib.c4
-rwxr-xr-xt/t7060-wtstatus.sh31
2 files changed, 33 insertions, 2 deletions
diff --git a/diff-lib.c b/diff-lib.c
index ad2a4cde7..ad5b6cac7 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -348,8 +348,8 @@ static void do_oneway_diff(struct unpack_trees_options *o,
match_missing = !revs->ignore_merges;
if (cached && idx && ce_stage(idx)) {
- if (tree)
- diff_unmerge(&revs->diffopt, idx->name, idx->ce_mode, idx->sha1);
+ diff_unmerge(&revs->diffopt, idx->name, idx->ce_mode,
+ idx->sha1);
return;
}
diff --git a/t/t7060-wtstatus.sh b/t/t7060-wtstatus.sh
new file mode 100755
index 000000000..5ad2cd1d0
--- /dev/null
+++ b/t/t7060-wtstatus.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+test_description='basic work tree status reporting'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+ test_commit A &&
+ test_commit B oneside added &&
+ git checkout A^0 &&
+ test_commit C oneside created
+'
+
+test_expect_success 'A/A conflict' '
+ git checkout B^0 &&
+ test_must_fail git merge C
+'
+
+test_expect_success 'Report path with conflict' '
+ git diff --cached --name-status >actual &&
+ echo "U oneside" >expect &&
+ test_cmp expect actual
+'
+
+test_expect_success 'Report new path with conflict' '
+ git diff --cached --name-status HEAD^ >actual &&
+ echo "U oneside" >expect &&
+ test_cmp expect actual
+'
+
+test_done