Subject: Re: [PATCH v4 07/11] Documentation/replace: tell that -f option bypasses the type check

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

Christian Couder <[email-masked]> writes:

> Signed-off-by: Christian Couder <[email-masked]>
> ---
>  Documentation/git-replace.txt | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/git-replace.txt b/Documentation/git-replace.txt
> index 736b48c..a2bd2ee 100644
> --- a/Documentation/git-replace.txt
> +++ b/Documentation/git-replace.txt
> @@ -21,10 +21,12 @@ replaced. The content of the 'replace' reference is the SHA-1 of the
>  replacement object.
>  
>  The replaced object and the replacement object must be of the same type.
> -There is no other restriction on them.
> +This restriction can be bypassed using `-f`.
>  
>  Unless `-f` is given, the 'replace' reference must not yet exist.
>  
> +There is no other restriction on the replaced and replacement objects.
> +

This is outside the scope of this topic, but I wonder if we want to
restrict a replacement operation that causes a cycle in the object
graph (a commit reaches itself after following its parent pointer,
a tree reaches itself after looking into trees within, a tag reaches
itself after following its "object" reference), and if we do want
it, it is feasible to implement it.

>  Replacement references will be used by default by all Git commands
>  except those doing reachability traversal (prune, pack transfer and
>  fsck).