{"thread":{"id":"12461","subject":"[PATCH] Fix incorrect wording in git-merge.txt.","startedAt":"2008-03-03T17:14:43Z","lastAt":"2008-03-11T07:05:51Z","messageCount":9,"participants":["Matthieu Moy","Junio C Hamano","Nicolas Pitre","Andreas Ericsson"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"70810","messageId":"1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr","threadId":"12461","inReplyTo":null,"subject":"[PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2008-03-03T17:14:43Z","receivedAt":"2008-03-03T17:14:43Z","isPatch":true,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"A merge is not necessarily with a remote branch, it can be with any\ncommit object.\n---\n Documentation/git-merge.txt |    3 ++-\n 1 files changed, 2 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt\nindex 0c9ad7f..193c9c0 100644\n--- a/Documentation/git-merge.txt\n+++ b/Documentation/git-merge.txt\n@@ -68,7 +68,8 @@ HOW MERGE WORKS\n ---------------\n \n A merge is always between the current `HEAD` and one or more\n-remote branch heads, and the index file must exactly match the\n+commit objects (usually, branch head or tag), and the index file must\n+exactly match the\n tree of `HEAD` commit (i.e. the contents of the last commit) when\n it happens.  In other words, `git-diff --cached HEAD` must\n report no changes.\n-- \n1.5.4.21.g82c44\n\n"},{"id":"70811","messageId":"7v63w3iupq.fsf@gitster.siamese.dyndns.org","threadId":"12461","inReplyTo":"1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-03-03T17:27:29Z","receivedAt":"2008-03-03T17:27:29Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@imag.fr> writes:\n\n> A merge is not necessarily with a remote branch, it can be with any\n> commit object.\n\nThanks.  Sign-off, and perhaps mention other people who helped refine the\nwording in the discussion?\n"},{"id":"70822","messageId":"1204566769-6585-1-git-send-email-Matthieu.Moy@imag.fr","threadId":"12461","inReplyTo":"1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr","subject":"[PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2008-03-03T17:52:49Z","receivedAt":"2008-03-03T17:52:49Z","isPatch":true,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"A merge is not necessarily with a remote branch, it can be with any\ncommit object.\n\nThanks to Paolo Ciarrocchi for pointing out the problem, and to\nNicolas Pitre for pointing out the fact that a merge is not\nnecessarily with a branch head.\n\nSigned-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>\n---\n Documentation/git-merge.txt |    3 ++-\n 1 files changed, 2 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt\nindex 0c9ad7f..193c9c0 100644\n--- a/Documentation/git-merge.txt\n+++ b/Documentation/git-merge.txt\n@@ -68,7 +68,8 @@ HOW MERGE WORKS\n ---------------\n \n A merge is always between the current `HEAD` and one or more\n-remote branch heads, and the index file must exactly match the\n+commit objects (usually, branch head or tag), and the index file must\n+exactly match the\n tree of `HEAD` commit (i.e. the contents of the last commit) when\n it happens.  In other words, `git-diff --cached HEAD` must\n report no changes.\n-- \n1.5.4.21.g82c44\n\n"},{"id":"70818","messageId":"alpine.LFD.1.00.0803031320180.2899@xanadu.home","threadId":"12461","inReplyTo":"1204564483-5260-1-git-send-email-Matthieu.Moy@imag.fr","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Nicolas Pitre","fromEmail":"nico@cam.org","sentAt":"2008-03-03T18:26:42Z","receivedAt":"2008-03-03T18:26:42Z","isPatch":true,"sender":{"key":"nico@fluxnic.net","avatar":"https://avatars.githubusercontent.com/u/702790?v=4"},"body":"On Mon, 3 Mar 2008, Matthieu Moy wrote:\n\n> A merge is not necessarily with a remote branch, it can be with any\n> commit object.\n> ---\n>  Documentation/git-merge.txt |    3 ++-\n>  1 files changed, 2 insertions(+), 1 deletions(-)\n> \n> diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt\n> index 0c9ad7f..193c9c0 100644\n> --- a/Documentation/git-merge.txt\n> +++ b/Documentation/git-merge.txt\n> @@ -68,7 +68,8 @@ HOW MERGE WORKS\n>  ---------------\n>  \n>  A merge is always between the current `HEAD` and one or more\n> -remote branch heads, and the index file must exactly match the\n> +commit objects (usually, branch head or tag), and the index file must\n> +exactly match the\n>  tree of `HEAD` commit (i.e. the contents of the last commit) when\n>  it happens.  In other words, `git-diff --cached HEAD` must\n>  report no changes.\n\nI don't like this wording.  Using \"object\" here wouldn't help avoiding \nPaolo's confusion at all.\n\nYou don't really merge a commit _object_.\nYou merge with one or more other commits, tipycally identified by a \nbranch name or a tag.\n\n\nNicolas\n"},{"id":"70834","messageId":"vpqlk4zoacw.fsf@bauges.imag.fr","threadId":"12461","inReplyTo":"alpine.LFD.1.00.0803031320180.2899@xanadu.home","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2008-03-03T19:50:39Z","receivedAt":"2008-03-03T19:50:39Z","isPatch":true,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Nicolas Pitre <nico@cam.org> writes:\n\n> You don't really merge a commit _object_.\n> You merge with one or more other commits, tipycally identified by a \n> branch name or a tag.\n\nStrictly speaking, you can merge any commit, not necessarily a branch\nor a tag. That can be \"git merge 66f0a4d\" or whatever. Admitedly, the\ncommon case is to merge a tag or a branch (which is why I keep it in\nparentheses).\n\nNow, I don't understand the distinction you seem to be making between\n\"commit\" and \"commit object\".\n\n-- \nMatthieu\n"},{"id":"70840","messageId":"alpine.LFD.1.00.0803031519360.2899@xanadu.home","threadId":"12461","inReplyTo":"vpqlk4zoacw.fsf@bauges.imag.fr","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Nicolas Pitre","fromEmail":"nico@cam.org","sentAt":"2008-03-03T20:39:31Z","receivedAt":"2008-03-03T20:39:31Z","isPatch":true,"sender":{"key":"nico@fluxnic.net","avatar":"https://avatars.githubusercontent.com/u/702790?v=4"},"body":"On Mon, 3 Mar 2008, Matthieu Moy wrote:\n\n> Nicolas Pitre <nico@cam.org> writes:\n> \n> > You don't really merge a commit _object_.\n> > You merge with one or more other commits, tipycally identified by a \n> > branch name or a tag.\n> \n> Strictly speaking, you can merge any commit, not necessarily a branch\n> or a tag. That can be \"git merge 66f0a4d\" or whatever. Admitedly, the\n> common case is to merge a tag or a branch (which is why I keep it in\n> parentheses).\n\nYes, and I've been meaning the same all along.\n\n> Now, I don't understand the distinction you seem to be making between\n> \"commit\" and \"commit object\".\n\nObjects are what the low level storage is made of.  Conceptually, The \nmerge operation doesn't work at the object level, but rather at the \nhistory graph level.  You don't merge objects, you merge history.\nI think it is unnecessary and probably best not to \nmention the word \"object\" in this case.\n\nThe alternative is to provide more detailed explanation, such as:\n\n   A merge is made by joining one or more history line to the current \n   'HEAD' branch.  Those history lines are denoted by their terminating \n   commit.  To identify them, the SHA1 name of the corresponding commit \n   object is used, or more frequently the name of the branch or tag \n   currently pointing at such commit objects.\n\nbut while this is more correct strictly speaking as the relation between \na merge and a commit object is made, I don't know if this is any more \nenlightening to those who ope to learn something from the reading the \ndocumentation.\n\n\nNicolas\n"},{"id":"70841","messageId":"vpqwsojlcu5.fsf@bauges.imag.fr","threadId":"12461","inReplyTo":"alpine.LFD.1.00.0803031519360.2899@xanadu.home","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2008-03-03T21:25:22Z","receivedAt":"2008-03-03T21:25:22Z","isPatch":true,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Nicolas Pitre <nico@cam.org> writes:\n\n>> Now, I don't understand the distinction you seem to be making between\n>> \"commit\" and \"commit object\".\n>\n> Objects are what the low level storage is made of.  Conceptually, The \n> merge operation doesn't work at the object level, but rather at the \n> history graph level.\n\nI still don't get the distinction. What is the \"graph\" if not a set of\nobjects pointing to each other?\n\nIf you don't want to talk about commit object, then you should fix\nalso user-manual.txt (for example, it states that a merge \"create a\ncommit object in the history\").\n\nWell, that said, the same sentence as the one I propose without\n\"object\" is fine to me, but I just don't understand the difference.\n\n-- \nMatthieu\n"},{"id":"70842","messageId":"alpine.LFD.1.00.0803031706320.2899@xanadu.home","threadId":"12461","inReplyTo":"vpqwsojlcu5.fsf@bauges.imag.fr","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Nicolas Pitre","fromEmail":"nico@cam.org","sentAt":"2008-03-03T22:10:59Z","receivedAt":"2008-03-03T22:10:59Z","isPatch":true,"sender":{"key":"nico@fluxnic.net","avatar":"https://avatars.githubusercontent.com/u/702790?v=4"},"body":"On Mon, 3 Mar 2008, Matthieu Moy wrote:\n\n> Nicolas Pitre <nico@cam.org> writes:\n> \n> >> Now, I don't understand the distinction you seem to be making between\n> >> \"commit\" and \"commit object\".\n> >\n> > Objects are what the low level storage is made of.  Conceptually, The \n> > merge operation doesn't work at the object level, but rather at the \n> > history graph level.\n> \n> I still don't get the distinction. What is the \"graph\" if not a set of\n> objects pointing to each other?\n> \n> If you don't want to talk about commit object, then you should fix\n> also user-manual.txt (for example, it states that a merge \"create a\n> commit object in the history\").\n> \n> Well, that said, the same sentence as the one I propose without\n> \"object\" is fine to me, but I just don't understand the difference.\n\nSorry.  I don't have enough free time to pursue this point, nor do I \nconsider it important enough.  So if no one else feels like the \ndistinction deserves to be made then I won't care anymore either.\n\n\nNicolas\n"},{"id":"71658","messageId":"47D62F4F.8050106@op5.se","threadId":"12461","inReplyTo":"alpine.LFD.1.00.0803031519360.2899@xanadu.home","subject":"Re: [PATCH] Fix incorrect wording in git-merge.txt.","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-03-11T07:05:51Z","receivedAt":"2008-03-11T07:05:51Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Nicolas Pitre wrote:\n> On Mon, 3 Mar 2008, Matthieu Moy wrote:\n> \n>> Nicolas Pitre <nico@cam.org> writes:\n>>\n>>> You don't really merge a commit _object_.\n>>> You merge with one or more other commits, tipycally identified by a \n>>> branch name or a tag.\n>> Strictly speaking, you can merge any commit, not necessarily a branch\n>> or a tag. That can be \"git merge 66f0a4d\" or whatever. Admitedly, the\n>> common case is to merge a tag or a branch (which is why I keep it in\n>> parentheses).\n> \n> Yes, and I've been meaning the same all along.\n> \n>> Now, I don't understand the distinction you seem to be making between\n>> \"commit\" and \"commit object\".\n> \n> Objects are what the low level storage is made of.  Conceptually, The \n> merge operation doesn't work at the object level, but rather at the \n> history graph level.  You don't merge objects, you merge history.\n> I think it is unnecessary and probably best not to \n> mention the word \"object\" in this case.\n> \n> The alternative is to provide more detailed explanation, such as:\n> \n>    A merge is made by joining one or more history line to the current \n>    'HEAD' branch.  Those history lines are denoted by their terminating \n>    commit.  To identify them, the SHA1 name of the corresponding commit \n>    object is used, or more frequently the name of the branch or tag \n>    currently pointing at such commit objects.\n> \n\n\"... The SHA1 name or, more frequently, branch- or tag-names currently\npointing to such commits are used to identify them.\"\n\ncommit object = meta-data containing author/committer info, one or more\n                parent links and a tree object describing the state of\n                the tracked content\n\ncommit = A particular point in history.\n\nAt least afaiu.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"}]}