Browse Source

diff --no-index: fix --name-status with added files

Without this patch, an added file would be reported as /dev/null.

Noticed by David Kastrup.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 18 years ago committed by Junio C Hamano
parent
commit
3cb567386d
  1. 3
      diff.c
  2. 2
      t/t4013-diff-various.sh
  3. 3
      t/t4013/diff.diff_--name-status_dir2_dir

3
diff.c

@ -2407,7 +2407,8 @@ static void diff_flush_raw(struct diff_filepair *p, @@ -2407,7 +2407,8 @@ static void diff_flush_raw(struct diff_filepair *p,
printf("%s ",
diff_unique_abbrev(p->two->sha1, abbrev));
}
printf("%s%c%s", status, inter_name_termination, path_one);
printf("%s%c%s", status, inter_name_termination,
two_paths || p->one->mode ? path_one : path_two);
if (two_paths)
printf("%c%s", inter_name_termination, path_two);
putchar(line_termination);

2
t/t4013-diff-various.sh

@ -17,6 +17,7 @@ test_expect_success setup ' @@ -17,6 +17,7 @@ test_expect_success setup '
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&

mkdir dir &&
mkdir dir2 &&
for i in 1 2 3; do echo $i; done >file0 &&
for i in A B; do echo $i; done >dir/sub &&
cat file0 >file2 &&
@ -252,6 +253,7 @@ diff --patch-with-stat initial..side @@ -252,6 +253,7 @@ diff --patch-with-stat initial..side
diff --patch-with-raw initial..side
diff --patch-with-stat -r initial..side
diff --patch-with-raw -r initial..side
diff --name-status dir2 dir
EOF

test_done

3
t/t4013/diff.diff_--name-status_dir2_dir

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
$ git diff --name-status dir2 dir
A dir/sub
$
Loading…
Cancel
Save