# [PATCH] Fix incorrect wording in git-merge.txt.

9 messages from 2008-03-03 to 2008-03-11. Participants: Matthieu Moy, Junio C Hamano, Nicolas Pitre, Andreas Ericsson.
Thread: https://gitlist.dev/t/12461

## Matthieu Moy, 2008-03-03 17:14

Subject: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr>
URL: https://gitlist.dev/e/1204564483-5260-1-git-send-email-Matthieu.Moy%40imag.fr

```
A merge is not necessarily with a remote branch, it can be with any
commit object.
---
 Documentation/git-merge.txt |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index 0c9ad7f..193c9c0 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -68,7 +68,8 @@ HOW MERGE WORKS
 ---------------
 
 A merge is always between the current `HEAD` and one or more
-remote branch heads, and the index file must exactly match the
+commit objects (usually, branch head or tag), and the index file must
+exactly match the
 tree of `HEAD` commit (i.e. the contents of the last commit) when
 it happens.  In other words, `git-diff --cached HEAD` must
 report no changes.
-- 
1.5.4.21.g82c44


```

## Junio C Hamano, 2008-03-03 17:27

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <7v63w3iupq.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v63w3iupq.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr>

```
Matthieu Moy <Matthieu.Moy@imag.fr> writes:

> A merge is not necessarily with a remote branch, it can be with any
> commit object.

Thanks.  Sign-off, and perhaps mention other people who helped refine the
wording in the discussion?

```

## Matthieu Moy, 2008-03-03 17:52

Subject: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <1204566769-6585-1-git-send-email-Matthieu.Moy@imag.fr>
URL: https://gitlist.dev/e/1204566769-6585-1-git-send-email-Matthieu.Moy%40imag.fr
In-Reply-To: <1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr>

```
A merge is not necessarily with a remote branch, it can be with any
commit object.

Thanks to Paolo Ciarrocchi for pointing out the problem, and to
Nicolas Pitre for pointing out the fact that a merge is not
necessarily with a branch head.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 Documentation/git-merge.txt |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index 0c9ad7f..193c9c0 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -68,7 +68,8 @@ HOW MERGE WORKS
 ---------------
 
 A merge is always between the current `HEAD` and one or more
-remote branch heads, and the index file must exactly match the
+commit objects (usually, branch head or tag), and the index file must
+exactly match the
 tree of `HEAD` commit (i.e. the contents of the last commit) when
 it happens.  In other words, `git-diff --cached HEAD` must
 report no changes.
-- 
1.5.4.21.g82c44


```

## Nicolas Pitre, 2008-03-03 18:26

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <alpine.LFD.1.00.0803031320180.2899@xanadu.home>
URL: https://gitlist.dev/e/alpine.LFD.1.00.0803031320180.2899%40xanadu.home
In-Reply-To: <1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr>

```
On Mon, 3 Mar 2008, Matthieu Moy wrote:

> A merge is not necessarily with a remote branch, it can be with any
> commit object.
> ---
>  Documentation/git-merge.txt |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
> index 0c9ad7f..193c9c0 100644
> --- a/Documentation/git-merge.txt
> +++ b/Documentation/git-merge.txt
> @@ -68,7 +68,8 @@ HOW MERGE WORKS
>  ---------------
>  
>  A merge is always between the current `HEAD` and one or more
> -remote branch heads, and the index file must exactly match the
> +commit objects (usually, branch head or tag), and the index file must
> +exactly match the
>  tree of `HEAD` commit (i.e. the contents of the last commit) when
>  it happens.  In other words, `git-diff --cached HEAD` must
>  report no changes.

I don't like this wording.  Using "object" here wouldn't help avoiding 
Paolo's confusion at all.

You don't really merge a commit _object_.
You merge with one or more other commits, tipycally identified by a 
branch name or a tag.


Nicolas

```

## Matthieu Moy, 2008-03-03 19:50

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <vpqlk4zoacw.fsf@bauges.imag.fr>
URL: https://gitlist.dev/e/vpqlk4zoacw.fsf%40bauges.imag.fr
In-Reply-To: <alpine.LFD.1.00.0803031320180.2899@xanadu.home>

```
Nicolas Pitre <nico@cam.org> writes:

> You don't really merge a commit _object_.
> You merge with one or more other commits, tipycally identified by a 
> branch name or a tag.

Strictly speaking, you can merge any commit, not necessarily a branch
or a tag. That can be "git merge 66f0a4d" or whatever. Admitedly, the
common case is to merge a tag or a branch (which is why I keep it in
parentheses).

Now, I don't understand the distinction you seem to be making between
"commit" and "commit object".

-- 
Matthieu

```

## Nicolas Pitre, 2008-03-03 20:39

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <alpine.LFD.1.00.0803031519360.2899@xanadu.home>
URL: https://gitlist.dev/e/alpine.LFD.1.00.0803031519360.2899%40xanadu.home
In-Reply-To: <vpqlk4zoacw.fsf@bauges.imag.fr>

```
On Mon, 3 Mar 2008, Matthieu Moy wrote:

> Nicolas Pitre <nico@cam.org> writes:
> 
> > You don't really merge a commit _object_.
> > You merge with one or more other commits, tipycally identified by a 
> > branch name or a tag.
> 
> Strictly speaking, you can merge any commit, not necessarily a branch
> or a tag. That can be "git merge 66f0a4d" or whatever. Admitedly, the
> common case is to merge a tag or a branch (which is why I keep it in
> parentheses).

Yes, and I've been meaning the same all along.

> Now, I don't understand the distinction you seem to be making between
> "commit" and "commit object".

Objects are what the low level storage is made of.  Conceptually, The 
merge operation doesn't work at the object level, but rather at the 
history graph level.  You don't merge objects, you merge history.
I think it is unnecessary and probably best not to 
mention the word "object" in this case.

The alternative is to provide more detailed explanation, such as:

   A merge is made by joining one or more history line to the current 
   'HEAD' branch.  Those history lines are denoted by their terminating 
   commit.  To identify them, the SHA1 name of the corresponding commit 
   object is used, or more frequently the name of the branch or tag 
   currently pointing at such commit objects.

but while this is more correct strictly speaking as the relation between 
a merge and a commit object is made, I don't know if this is any more 
enlightening to those who ope to learn something from the reading the 
documentation.


Nicolas

```

## Matthieu Moy, 2008-03-03 21:25

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <vpqwsojlcu5.fsf@bauges.imag.fr>
URL: https://gitlist.dev/e/vpqwsojlcu5.fsf%40bauges.imag.fr
In-Reply-To: <alpine.LFD.1.00.0803031519360.2899@xanadu.home>

```
Nicolas Pitre <nico@cam.org> writes:

>> Now, I don't understand the distinction you seem to be making between
>> "commit" and "commit object".
>
> Objects are what the low level storage is made of.  Conceptually, The 
> merge operation doesn't work at the object level, but rather at the 
> history graph level.

I still don't get the distinction. What is the "graph" if not a set of
objects pointing to each other?

If you don't want to talk about commit object, then you should fix
also user-manual.txt (for example, it states that a merge "create a
commit object in the history").

Well, that said, the same sentence as the one I propose without
"object" is fine to me, but I just don't understand the difference.

-- 
Matthieu

```

## Nicolas Pitre, 2008-03-03 22:10

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <alpine.LFD.1.00.0803031706320.2899@xanadu.home>
URL: https://gitlist.dev/e/alpine.LFD.1.00.0803031706320.2899%40xanadu.home
In-Reply-To: <vpqwsojlcu5.fsf@bauges.imag.fr>

```
On Mon, 3 Mar 2008, Matthieu Moy wrote:

> Nicolas Pitre <nico@cam.org> writes:
> 
> >> Now, I don't understand the distinction you seem to be making between
> >> "commit" and "commit object".
> >
> > Objects are what the low level storage is made of.  Conceptually, The 
> > merge operation doesn't work at the object level, but rather at the 
> > history graph level.
> 
> I still don't get the distinction. What is the "graph" if not a set of
> objects pointing to each other?
> 
> If you don't want to talk about commit object, then you should fix
> also user-manual.txt (for example, it states that a merge "create a
> commit object in the history").
> 
> Well, that said, the same sentence as the one I propose without
> "object" is fine to me, but I just don't understand the difference.

Sorry.  I don't have enough free time to pursue this point, nor do I 
consider it important enough.  So if no one else feels like the 
distinction deserves to be made then I won't care anymore either.


Nicolas

```

## Andreas Ericsson, 2008-03-11 07:05

Subject: Re: [PATCH] Fix incorrect wording in git-merge.txt.
Message-ID: <47D62F4F.8050106@op5.se>
URL: https://gitlist.dev/e/47D62F4F.8050106%40op5.se
In-Reply-To: <alpine.LFD.1.00.0803031519360.2899@xanadu.home>

```
Nicolas Pitre wrote:
> On Mon, 3 Mar 2008, Matthieu Moy wrote:
> 
>> Nicolas Pitre <nico@cam.org> writes:
>>
>>> You don't really merge a commit _object_.
>>> You merge with one or more other commits, tipycally identified by a 
>>> branch name or a tag.
>> Strictly speaking, you can merge any commit, not necessarily a branch
>> or a tag. That can be "git merge 66f0a4d" or whatever. Admitedly, the
>> common case is to merge a tag or a branch (which is why I keep it in
>> parentheses).
> 
> Yes, and I've been meaning the same all along.
> 
>> Now, I don't understand the distinction you seem to be making between
>> "commit" and "commit object".
> 
> Objects are what the low level storage is made of.  Conceptually, The 
> merge operation doesn't work at the object level, but rather at the 
> history graph level.  You don't merge objects, you merge history.
> I think it is unnecessary and probably best not to 
> mention the word "object" in this case.
> 
> The alternative is to provide more detailed explanation, such as:
> 
>    A merge is made by joining one or more history line to the current 
>    'HEAD' branch.  Those history lines are denoted by their terminating 
>    commit.  To identify them, the SHA1 name of the corresponding commit 
>    object is used, or more frequently the name of the branch or tag 
>    currently pointing at such commit objects.
> 

"... The SHA1 name or, more frequently, branch- or tag-names currently
pointing to such commits are used to identify them."

commit object = meta-data containing author/committer info, one or more
                parent links and a tree object describing the state of
                the tracked content

commit = A particular point in history.

At least afaiu.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

```
