diff: have submodule_format logic avoid additional diff headers
Commit 95433eeed9
("diff: add ability to insert additional headers for
paths", 2022-02-02) introduced the possibility of additional headers,
created in create_filepairs_for_header_only_notifications(). These are
represented by inserting additional pairs in diff_queued_diff which
always have a mode of 0 and a null_oid. When these were added, one
code path was noted to assume that at least one of the diff_filespecs
in the pair were valid, and that codepath was corrected.
The submodule_format handling is another codepath with the same issue;
it would operate on these additional headers and attempt to display them
as submodule changes. Prevent that by explicitly checking for "phoney"
filepairs (i.e. filepairs with both modes being 0).
Reported-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
d42b38dfb5
commit
9b08091cb7
@ -185,6 +185,14 @@ test_expect_success 'remerge-diff w/ diff-filter=U: all conflict headers, no dif
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'submodule formatting ignores additional headers' '
|
||||
# Reuses "expect" from last testcase
|
||||
|
||||
git show --oneline --remerge-diff --diff-filter=U --submodule=log >tmp &&
|
||||
sed -e "s/[0-9a-f]\{7,\}/HASH/g" tmp >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'remerge-diff w/ diff-filter=R: relevant file + conflict header' '
|
||||
git log -1 --oneline resolution >tmp &&
|
||||
cat <<-EOF >>tmp &&
|
||||
|
Reference in New Issue
Block a user