On Wed, Oct 23, 2019 at 8:04 AM Denton Liu <[email protected]> wrote:
> Currently, apply does not respect the merge.conflictStyle setting.
> Demonstrate this by making the 'apply with --3way' test case generic and
> extending it to show that the configuration of
> merge.conflictStyle = diff3 causes a breakage.
>
> Change print_sanitized_diff() to also sanitize `|||||||` conflict markers.
>
> Signed-off-by: Denton Liu <[email protected]>
> ---
> diff --git a/t/t4108-apply-threeway.sh b/t/t4108-apply-threeway.sh
> @@ -46,28 +46,42 @@ test_expect_success 'apply without --3way' '
> +test_apply_with_3way () {
> + status="$1" &&
> + shift &&
> + description="$1" &&
> + shift &&
> + preamble="$1" &&
> + shift &&
> +
> + test_expect_$status "apply with --3way ($description)" "
> + $preamble &&
> +
> + # Merging side should be similar to applying this patch
> + git diff ...side >P.diff &&
> + [...]
> + "
> +}
>
> +test_apply_with_3way success default true
> +test_apply_with_3way failure 'merge.conflictStyle = diff3' 'test_config
> merge.conflictStyle diff3'
This isn't the prettiest way to achieve this; the "success"/"failure"
arguments, especially, are somewhat ugly. A perhaps more palatable
alternative which gives you the same benefit of re-using the common
code but avoids the ugliness while still allowing customization (now
and in the future):
test_apply_with_3way () {
# Merging side should be similar to applying this patch
git diff ...side >P.diff &&
[...]
}
test_expect_success 'apply with --3way (default)' '
test_apply_with_3way
'
test_expect_failure 'apply with --3way (merge.conflictStyle = diff3)' '
test_config merge.conflictStyle diff3 &&
test_apply_with_3way
'