{"thread":{"id":"636","subject":"[RFC] adding merge-node to parent lines in a commit","startedAt":"2005-05-15T21:22:27Z","lastAt":"2005-05-15T22:47:43Z","messageCount":5,"participants":["Sean","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"3393","messageId":"1282.10.10.10.24.1116192147.squirrel@linux1","threadId":"636","inReplyTo":null,"subject":"[RFC] adding merge-node to parent lines in a commit","fromName":"Sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2005-05-15T21:22:27Z","receivedAt":"2005-05-15T21:22:27Z","isPatch":false,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"Just a random thought presented for flamage...  Would adding the merge\nnode to each \"parent\" line in merge nodes be workable?\n\nparent  SHA1-PARENT  SHA1-MERGE-NODE\n\nIt's not exactly clear cut I guess, especially in the case of multi-parent\nmerges, but it would make descending the history slightly easier.   It\nwould let you look at any merge, and know exactly which commits were\nassociated with that merge, without needing any repo-id or time\ninformation.  This information is needed at the time of merge anyway, so\nrecording it rather than leaving it to be calculated later makes some\nsense.  Comments?\n\nCheers,\nSean\n\n\n\n\n"},{"id":"3397","messageId":"7vfywoqira.fsf@assigned-by-dhcp.cox.net","threadId":"636","inReplyTo":"1282.10.10.10.24.1116192147.squirrel@linux1","subject":"Re: [RFC] adding merge-node to parent lines in a commit","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-05-15T21:30:49Z","receivedAt":"2005-05-15T21:30:49Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"It is not clear to me ID of what object is being recorded as\nSHA1-MERGE-NODE in your proposal.  Care to illustrate?\n\n\n"},{"id":"3400","messageId":"1441.10.10.10.24.1116194876.squirrel@linux1","threadId":"636","inReplyTo":"7vfywoqira.fsf@assigned-by-dhcp.cox.net","subject":"Re: [RFC] adding merge-node to parent lines in a commit","fromName":"Sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2005-05-15T22:07:56Z","receivedAt":"2005-05-15T22:07:56Z","isPatch":false,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"On Sun, May 15, 2005 5:30 pm, Junio C Hamano said:\n> It is not clear to me ID of what object is being recorded as\n> SHA1-MERGE-NODE in your proposal.  Care to illustrate?\n\nHey Junio,\n\nYes, it's pretty basic unless i'm overlooking something:\n\nRn---\\\n>    Mn\n>    Mn-1\nRn-1  |\nRn-2  |\nRn-3--/\nInitial\n\nSo for this particular case it's rather simple, the Rn merge node would have:\n\nparent  Rn-1  (ommitted)\nparent  Mn    Rn-3\n\nEssentially, you are recording in the merge commit the length of each\nbranch that represents new commits that did not exist in this repository\nbefore this merge.\n\nBut there are more complicated cases with multiple parent merges.   What\nthis would avoid is the need to calculate common_anscestor in routines\nlike git-rev-list, because that information would already be stored.   As\nfar as I know this information is already available at merge time anyway,\nso recording it shouldn't be a burden.   I'm not sure it buys you a ton\nout the other end, but perhaps it would be slightly easier to piece the\nmerge history back together.\n\nSean\n\n\n\n\n"},{"id":"3402","messageId":"7v64xkqfqg.fsf@assigned-by-dhcp.cox.net","threadId":"636","inReplyTo":"1441.10.10.10.24.1116194876.squirrel@linux1","subject":"Re: [RFC] adding merge-node to parent lines in a commit","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-05-15T22:36:07Z","receivedAt":"2005-05-15T22:36:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":">>>>> \"S\" == Sean  <seanlkml@sympatico.ca> writes:\n\nS> Yes, it's pretty basic unless i'm overlooking something:\n\n    Rn---\\\n         Mn\n         Mn-1\n    Rn-1  |\n    Rn-2  |\n    Rn-3--/\n    Initial\n\nS> So for this particular case it's rather simple, the Rn merge\nS> node would have:\n\nS> parent  Rn-1  (ommitted)\nS> parent  Mn    Rn-3\n\nIsn't that something you can obtain by scanning the parents and\nrunning merge-base across them without recording it in the\ncommit?\n\n"},{"id":"3403","messageId":"1522.10.10.10.24.1116197263.squirrel@linux1","threadId":"636","inReplyTo":"7v64xkqfqg.fsf@assigned-by-dhcp.cox.net","subject":"Re: [RFC] adding merge-node to parent lines in a commit","fromName":"Sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2005-05-15T22:47:43Z","receivedAt":"2005-05-15T22:47:43Z","isPatch":false,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"On Sun, May 15, 2005 6:36 pm, Junio C Hamano said:\n>>>>>> \"S\" == Sean  <seanlkml@sympatico.ca> writes:\n>\n> S> Yes, it's pretty basic unless i'm overlooking something:\n>\n>     Rn---\\\n>          Mn\n>          Mn-1\n>     Rn-1  |\n>     Rn-2  |\n>     Rn-3--/\n>     Initial\n>\n> S> So for this particular case it's rather simple, the Rn merge\n> S> node would have:\n>\n> S> parent  Rn-1  (ommitted)\n> S> parent  Mn    Rn-3\n>\n> Isn't that something you can obtain by scanning the parents and\n> running merge-base across them without recording it in the\n> commit?\n\nYes it is, and i was mistaken to think it gave more information.  It would\nshave some time off history traversal, but nothing else.\n\nSean\n\n\n"}]}