On Wed, Oct 23, 2019 at 8:04 AM Denton Liu <liu.den...@gmail.com> 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 <liu.den...@gmail.com>
> ---
> 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
    '

Reply via email to