diff options
author | Max Kirillov <max@max630.net> | 2014-06-29 01:04:46 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-30 14:07:58 -0700 |
commit | ba311807f8408761a48d4cd596259ca30a4375f2 (patch) | |
tree | 3449c57786a71d0a540e425481663fd99e890bd3 /decorate.h | |
parent | 6d49de414f9dc7a94503a3798dd745971669cebe (diff) | |
download | git-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 'decorate.h')
0 files changed, 0 insertions, 0 deletions