Re: [PATCH v4 07/11] Documentation/replace: tell that -f option bypasses the type check
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 4, 2013, 20:48 UTC
- Message-ID
- <xmqqppsol3ds.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20130903071026.29838.52710.chriscool@tuxfamily.org>
Christian Couder <chriscool@tuxfamily.org> writes:
Show 20 quoted lines
> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> > --- > 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).