aboutsummaryrefslogtreecommitdiff
path: root/entry.c
diff options
context:
space:
mode:
authorMax Kirillov <max@max630.net>2014-06-29 01:04:46 +0300
committerJunio C Hamano <gitster@pobox.com>2014-06-30 14:07:58 -0700
commitba311807f8408761a48d4cd596259ca30a4375f2 (patch)
tree3449c57786a71d0a540e425481663fd99e890bd3 /entry.c
parent6d49de414f9dc7a94503a3798dd745971669cebe (diff)
downloadgit-ba311807f8408761a48d4cd596259ca30a4375f2.tar.gz
git-ba311807f8408761a48d4cd596259ca30a4375f2.tar.xz
git-merge-file: do not add LF at EOF while applying unrelated change
If 'current-file' does not contain LF at EOF, and change between 'base-file' and 'other-file' does not change any line close to EOF, the 3-way merge should not add LF to EOF. This is what 'diff3 -m' does, and seems to be a reasonable expectation. The change which introduced the behavior is cd1d61c44f. It always calls function xdl_recs_copy() for sides with add_nl == 1. In fact, it looks like the only case when this is needed is when 2 files are being union-merged, and they do not have LF at EOF (strictly speaking, the first of them). Add tests: * "merge without conflict (missing LF at EOF, away from change in the other file)" and "merge does not add LF away of change", to demonstrate the changed behavior. * "conflict at EOF without LF resolved by --union", to verify that the union-merge at the end inerts newline between versions. * some more tests which I felt like not covering the functionality well Signed-off-by: Max Kirillov <max@max630.net> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'entry.c')
0 files changed, 0 insertions, 0 deletions