Subject: Re: [PATCH v4 03/11] t6050-replace: test that objects are of the same type

From: Junio C Hamano <[email-masked]>
Date: Wed, 04 Sep 2013 13:39:58 -0700

Christian Couder <[email-masked]> writes:

> Signed-off-by: Christian Couder <[email-masked]>
> ---
>  t/t6050-replace.sh | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh
> index decdc33..5c352c4 100755
> --- a/t/t6050-replace.sh
> +++ b/t/t6050-replace.sh
> @@ -263,4 +263,17 @@ test_expect_success 'not just commits' '
>  	test_cmp file.replaced file
>  '
>  
> +test_expect_success 'replaced and replacement objects must be of the same type' '
> +	test_must_fail git replace mytag $HASH1 2>err &&
> +	grep "mytag. points to a replaced object of type .tag" err &&
> +	grep "$HASH1. points to a replacement object of type .commit" err &&

Hmm, would these messages ever get translated?  I think it is
sufficient to make sure that the proposed replacement fails for
these cases.

> +	test_must_fail git replace HEAD^{tree} HEAD~1 2>err &&
> +	grep "HEAD^{tree}. points to a replaced object of type .tree" err &&
> +	grep "HEAD~1. points to a replacement object of type .commit" err &&
> +	BLOB=$(git rev-parse :file) &&
> +	test_must_fail git replace HEAD^ $BLOB 2>err &&
> +	grep "HEAD^. points to a replaced object of type .commit" err &&
> +	grep "$BLOB. points to a replacement object of type .blob" err
> +'
> +
>  test_done