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

4 messages from 2013-09-05 to 2013-09-09. Participants: Philip Oakley, Junio C Hamano.
Thread: https://gitlist.dev/t/34859

## Philip Oakley, 2013-09-05 22:20

Subject: Re: [PATCH v3 07/11] Documentation/replace: tell that -f option bypasses the type check
Message-ID: <926222C46F2240BDA71A004633E8DB7E@PhilipOakley>
URL: https://gitlist.dev/e/926222C46F2240BDA71A004633E8DB7E%40PhilipOakley

```
From: "Philip Oakley" <philipoakley@iee.org>
Sent: Saturday, August 31, 2013 11:16 PM
> From: "Christian Couder" <chriscool@tuxfamily.org>
>> 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.
>
> Is this trying to allude to the fact that merge commits may be 
> exchanged with non-merge commits? I strongly believe that this ability 
> to exchange merge and non-merge commits should be stated _explicitly_ 
> to counteract the false beliefs that are listed out on the internet.
>
> It's probably better stated in a separate patch for that explicit 
> purpose to avoid mixed messages within this commit.
>

Not sure how this method of preparing a comment patch will pan out..

--->8----
From a0c0e765cfd969c9c8a6ff3a2cb6b2f1391d2e7d Mon Sep 17 00:00:00 2001
From: Philip Oakley <philipoakley@iee.org>
Date: Thu, 5 Sep 2013 22:54:04 +0100
Subject: [PATCH] Doc: 'replace' merge and non-merge commits

Signed-off-by: Philip Oakley <philipoakley@iee.org>
---

This is supplemental to Christian Couder's 'replace' patch series
(2013-09-03 69dada4 (Christian Couder): t6050-replace: use some long
option names).

It adds the clarification that merge and non-merge commits are
replaceable.

Merges are often treated as special case objects so tell users that they 
are not special here.

---
 Documentation/git-replace.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/git-replace.txt 
b/Documentation/git-replace.txt
index 414000e..f373ab4 100644
--- a/Documentation/git-replace.txt
+++ b/Documentation/git-replace.txt
@@ -26,6 +26,7 @@ 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.
+Merge commits can be replaced by non-merge commits and vice versa.

 Replacement references will be used by default by all Git commands
 except those doing reachability traversal (prune, pack transfer and
-- 
1.8.1.msysgit.1

```

## Junio C Hamano, 2013-09-05 23:13

Subject: Re: [PATCH v3 07/11] Documentation/replace: tell that -f option bypasses the type check
Message-ID: <xmqqob86g8v4.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqob86g8v4.fsf%40gitster.dls.corp.google.com
In-Reply-To: <926222C46F2240BDA71A004633E8DB7E@PhilipOakley>

```
"Philip Oakley" <philipoakley@iee.org> writes:

> From: "Philip Oakley" <philipoakley@iee.org>
> Sent: Saturday, August 31, 2013 11:16 PM
>> From: "Christian Couder" <chriscool@tuxfamily.org>
>>> 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.
>>
>> Is this trying to allude to the fact that merge commits may be
>> exchanged with non-merge commits? I strongly believe that this
>> ability to exchange merge and non-merge commits should be stated
>> _explicitly_ to counteract the false beliefs that are listed out on
>> the internet.
>>
>> It's probably better stated in a separate patch for that explicit
>> purpose to avoid mixed messages within this commit.
>>
>
> Not sure how this method of preparing a comment patch will pan out..
>
> --->8----

Make it "--- >8 ---" perhaps to balance out the perforation on both
sides.

> From a0c0e765cfd969c9c8a6ff3a2cb6b2f1391d2e7d Mon Sep 17 00:00:00 2001

Not needed nor wanted.

> From: Philip Oakley <philipoakley@iee.org>

Not needed but does not hurt.

> Date: Thu, 5 Sep 2013 22:54:04 +0100

Is OK but redundant given that your message has a timestamp when we
saw your patch for the first time anyway.

> Subject: [PATCH] Doc: 'replace' merge and non-merge commits
>
> Signed-off-by: Philip Oakley <philipoakley@iee.org>
> ---
>
> This is supplemental to Christian Couder's 'replace' patch series
> (2013-09-03 69dada4 (Christian Couder): t6050-replace: use some long
> option names).
>
> It adds the clarification that merge and non-merge commits are
> replaceable.
>
> Merges are often treated as special case objects so tell users that
> they are not special here.

I think the last paragraph deserves to be in the proposed commit log
message proper.  It explains why it is a good idea to have the added
line in the documentation very well.

> ---
> Documentation/git-replace.txt | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/git-replace.txt
> b/Documentation/git-replace.txt
> index 414000e..f373ab4 100644
> --- a/Documentation/git-replace.txt
> +++ b/Documentation/git-replace.txt
> @@ -26,6 +26,7 @@ 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.
> +Merge commits can be replaced by non-merge commits and vice versa.
>
> Replacement references will be used by default by all Git commands
> except those doing reachability traversal (prune, pack transfer and

```

## Philip Oakley, 2013-09-08 12:10

Subject: [PATCH] Doc: 'replace' merge and non-merge commits
Message-ID: <1378642244-3572-1-git-send-email-philipoakley@iee.org>
URL: https://gitlist.dev/e/1378642244-3572-1-git-send-email-philipoakley%40iee.org
In-Reply-To: <xmqqob86g8v4.fsf@gitster.dls.corp.google.com>

```
Merges are often treated as special case objects so tell users that
they are not special here.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
---

This updates my in-line patch given in [PATCH v3 07/11]
Documentation/replace: tell that -f option bypasses the type check
($gmane/233997 05 September 2013 23:20) and Junio's comments
($gmane/234001 06 September 2013 00:13) 

Applies on top of pu and Christian Couder's series.

Philip

---
 Documentation/git-replace.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/git-replace.txt b/Documentation/git-replace.txt
index 414000e..f373ab4 100644
--- a/Documentation/git-replace.txt
+++ b/Documentation/git-replace.txt
@@ -26,6 +26,7 @@ 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.
+Merge commits can be replaced by non-merge commits and vice versa.
 
 Replacement references will be used by default by all Git commands
 except those doing reachability traversal (prune, pack transfer and
-- 
1.8.1.msysgit.1

```

## Junio C Hamano, 2013-09-09 15:17

Subject: Re: [PATCH] Doc: 'replace' merge and non-merge commits
Message-ID: <xmqqwqmp1u7y.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqqwqmp1u7y.fsf%40gitster.dls.corp.google.com
In-Reply-To: <1378642244-3572-1-git-send-email-philipoakley@iee.org>

```
Philip Oakley <philipoakley@iee.org> writes:

> Merges are often treated as special case objects so tell users that
> they are not special here.
>
> Signed-off-by: Philip Oakley <philipoakley@iee.org>
> ---
>
> This updates my in-line patch given in [PATCH v3 07/11]
> Documentation/replace: tell that -f option bypasses the type check
> ($gmane/233997 05 September 2013 23:20) and Junio's comments
> ($gmane/234001 06 September 2013 00:13) 
>
> Applies on top of pu and Christian Couder's series.

Thanks, looks good.

>
> Philip
>
> ---
>  Documentation/git-replace.txt | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/git-replace.txt b/Documentation/git-replace.txt
> index 414000e..f373ab4 100644
> --- a/Documentation/git-replace.txt
> +++ b/Documentation/git-replace.txt
> @@ -26,6 +26,7 @@ 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.
> +Merge commits can be replaced by non-merge commits and vice versa.
>  
>  Replacement references will be used by default by all Git commands
>  except those doing reachability traversal (prune, pack transfer and

```
