git-commit-vandalism/xdiff
Max Kirillov ba311807f8 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>
2014-06-30 14:07:58 -07:00
..
xdiff.h diff: add --ignore-blank-lines option 2013-06-19 15:17:45 -07:00
xdiffi.c diff: add --ignore-blank-lines option 2013-06-19 15:17:45 -07:00
xdiffi.h diff: add --ignore-blank-lines option 2013-06-19 15:17:45 -07:00
xemit.c C: have space around && and || operators 2013-10-16 10:26:39 -07:00
xemit.h diff: add --ignore-blank-lines option 2013-06-19 15:17:45 -07:00
xhistogram.c Correct common spelling mistakes in comments and tests 2013-04-12 13:38:40 -07:00
xinclude.h
xmacros.h xdiff: cast arguments for ctype functions to unsigned char 2010-10-06 10:46:45 -07:00
xmerge.c git-merge-file: do not add LF at EOF while applying unrelated change 2014-06-30 14:07:58 -07:00
xpatience.c xdiff: PATIENCE/HISTOGRAM are not independent option bits 2012-02-19 15:36:55 -08:00
xprepare.c xdiff: PATIENCE/HISTOGRAM are not independent option bits 2012-02-19 15:36:55 -08:00
xprepare.h
xtypes.h War on whitespace 2007-06-07 00:04:01 -07:00
xutils.c diff: add --ignore-blank-lines option 2013-06-19 15:17:45 -07:00
xutils.h diff: add --ignore-blank-lines option 2013-06-19 15:17:45 -07:00