From: Junio C Hamano Date: Wed, 04 Sep 2013 20:48:31 GMT Subject: Re: [PATCH v4 07/11] Documentation/replace: tell that -f option bypasses the type check Message-ID: In-Reply-To: <20130903071026.29838.52710.chriscool@tuxfamily.org> Christian Couder writes: > Signed-off-by: Christian Couder > --- > 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).