• Max A.K.'s avatar
    git-merge-file: do not add LF at EOF while applying unrelated change · ba311807
    Max A.K. authored
    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 cd1d61c4. 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 A.K.'s avatarMax Kirillov <max@max630.net>
    Acked-by: Johannes Schindelin's avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    ba311807
Name
Last commit
Last update
..
xdiff.h Loading commit data...
xdiffi.c Loading commit data...
xdiffi.h Loading commit data...
xemit.c Loading commit data...
xemit.h Loading commit data...
xhistogram.c Loading commit data...
xinclude.h Loading commit data...
xmacros.h Loading commit data...
xmerge.c Loading commit data...
xpatience.c Loading commit data...
xprepare.c Loading commit data...
xprepare.h Loading commit data...
xtypes.h Loading commit data...
xutils.c Loading commit data...
xutils.h Loading commit data...