Skip to content

Commit 523321e

Browse files
committed
Merge branch 'jk/diff-relative-cached-unmerged' into jch
'git diff --relative' running with '--cached' has been corrected to avoid a segfault when encountering unmerged paths outside the prefix. * jk/diff-relative-cached-unmerged: diff: ignore unmerged paths outside prefix with --relative --cached
2 parents 1776e2d + 88efab5 commit 523321e

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

diff-lib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ static void do_oneway_diff(struct unpack_trees_options *o,
467467
if (cached && idx && ce_stage(idx)) {
468468
struct diff_filepair *pair;
469469
pair = diff_unmerge(&revs->diffopt, idx->name);
470-
if (tree)
470+
if (pair && tree)
471471
fill_filespec(pair->one, &tree->oid, 1,
472472
tree->ce_mode);
473473
return;

t/t4045-diff-relative.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,13 @@ test_expect_failure 'diff --relative with change in subdir' '
245245
test_cmp expected out
246246
'
247247

248+
test_expect_success 'diff --relative --cached with change in subdir' '
249+
git switch br3 &&
250+
test_when_finished "git merge --abort" &&
251+
test_must_fail git merge sub1 &&
252+
echo file0 >expected &&
253+
git -C subdir diff --relative --name-only --cached >out &&
254+
test_cmp expected out
255+
'
256+
248257
test_done

0 commit comments

Comments
 (0)