{"thread":{"id":"28313","subject":"Question about right-only","startedAt":"2011-09-06T11:44:50Z","lastAt":"2011-09-06T16:08:03Z","messageCount":4,"participants":["Tajti Ákos","mfwitten@gmail.com","Michael J Gruber"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"174921","messageId":"4E6607B2.2090000@intland.com","threadId":"28313","inReplyTo":null,"subject":"Question about right-only","fromName":"Tajti Ákos","fromEmail":"akos.tajti@intland.com","sentAt":"2011-09-06T11:44:50Z","receivedAt":"2011-09-06T11:44:50Z","isPatch":false,"sender":{"key":"akos.tajti@intland.com","avatar":null},"body":"Dear List,\n\nwhat does the right-only option of git-log actually do? The manual is \nnot too verbose about it.\n\nThanks in advance,\nÁkos Tajti\n"},{"id":"174931","messageId":"ec1404d75fd6461fa731f31625126884-mfwitten@gmail.com","threadId":"28313","inReplyTo":"4E6607B2.2090000@intland.com","subject":"Re: Question about right-only","fromName":"","fromEmail":"mfwitten@gmail.com","sentAt":null,"receivedAt":"2011-09-06T14:56:36Z","isPatch":false,"sender":{"key":"mfwitten@gmail.com","avatar":"https://avatars.githubusercontent.com/u/597101?v=4"},"body":"On Tue, 06 Sep 2011 13:44:50 +0200, Tajti wrote:\n\n> what does the right-only option of git-log actually do? The manual is \n> not too verbose about it.\n\nThe documentation is indeed a bit messy, so let me rearrange it for you.\n\n>From `git help rev-parse':\n\n  r1...r2 is called symmetric difference of r1 and r2 and is\n  defined as `r1 r2 --not $(git merge-base --all r1 r2)'. It is\n  the set of commits that are reachable from either one of r1 or\n  r2 but not from both.\n\nThen we have this from `git help log':\n\n  --left-right\n      Mark which side of a symmetric diff a commit is reachable\n      from. Commits from the left side [(r1 above)] are prefixed with\n      < and those from the right [(r2 above)] with >...\n\nwhich should explain what `<' and `>' mean in the following from\n`git help log':\n\n  --left-only, --right-only\n      List only commits on the respective side of a symmetric\n      range, i.e. only those which would be marked < resp. > by\n      --left-right.\n\nThis is probably most useful with the following option, described\nin `git help log':\n\n  --cherry-pick\n      Omit any commit that introduces the same change as another\n      commit on the \"other side\" when the set of commits are\n      limited with symmetric difference.\n\n      ...\n\n      For example, --cherry-pick --right-only A...B omits those\n      commits from B which are in A or are patch-equivalent to a\n      commit in A. In other words, this lists the + commits from\n      git cherry A B. More precisely, --cherry-pick --right-only\n      --no-merges gives the exact list.\n\nThat is, you often run into multiple commit objects that are unique\nbecause of, say, differing commit dates, but that actually introduce\nthe same change to the source; this combination of options is helpful\nin weeding out commits that introduce the same change.\n\nIf you're still confused, don't hesitate to poke the list some more;\nthe documentation is quite lacking over all topics, so don't feel\nstupid.\n"},{"id":"174932","messageId":"4E663F62.7030603@intland.com","threadId":"28313","inReplyTo":"ec1404d75fd6461fa731f31625126884-mfwitten@gmail.com","subject":"Re: Question about right-only","fromName":"Tajti Ákos","fromEmail":"akos.tajti@intland.com","sentAt":"2011-09-06T15:42:26Z","receivedAt":"2011-09-06T15:42:26Z","isPatch":false,"sender":{"key":"akos.tajti@intland.com","avatar":null},"body":"Thanks four your answer, it was really great help (cleared up everything)!\n\nBest regards,\nÁkos Tajti\n\n2011.09.06. 17:24 keltezéssel, mfwitten@gmail.com írta:\n> On Tue, 06 Sep 2011 13:44:50 +0200, Tajti wrote:\n>\n>> what does the right-only option of git-log actually do? The manual is\n>> not too verbose about it.\n> The documentation is indeed a bit messy, so let me rearrange it for you.\n>\n>  From `git help rev-parse':\n>\n>    r1...r2 is called symmetric difference of r1 and r2 and is\n>    defined as `r1 r2 --not $(git merge-base --all r1 r2)'. It is\n>    the set of commits that are reachable from either one of r1 or\n>    r2 but not from both.\n>\n> Then we have this from `git help log':\n>\n>    --left-right\n>        Mark which side of a symmetric diff a commit is reachable\n>        from. Commits from the left side [(r1 above)] are prefixed with\n>        <  and those from the right [(r2 above)] with>...\n>\n> which should explain what `<' and `>' mean in the following from\n> `git help log':\n>\n>    --left-only, --right-only\n>        List only commits on the respective side of a symmetric\n>        range, i.e. only those which would be marked<  resp.>  by\n>        --left-right.\n>\n> This is probably most useful with the following option, described\n> in `git help log':\n>\n>    --cherry-pick\n>        Omit any commit that introduces the same change as another\n>        commit on the \"other side\" when the set of commits are\n>        limited with symmetric difference.\n>\n>        ...\n>\n>        For example, --cherry-pick --right-only A...B omits those\n>        commits from B which are in A or are patch-equivalent to a\n>        commit in A. In other words, this lists the + commits from\n>        git cherry A B. More precisely, --cherry-pick --right-only\n>        --no-merges gives the exact list.\n>\n> That is, you often run into multiple commit objects that are unique\n> because of, say, differing commit dates, but that actually introduce\n> the same change to the source; this combination of options is helpful\n> in weeding out commits that introduce the same change.\n>\n> If you're still confused, don't hesitate to poke the list some more;\n> the documentation is quite lacking over all topics, so don't feel\n> stupid.\n"},{"id":"174934","messageId":"4E664563.5020900@drmicha.warpmail.net","threadId":"28313","inReplyTo":"ec1404d75fd6461fa731f31625126884-mfwitten@gmail.com","subject":"Re: Question about right-only","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-09-06T16:08:03Z","receivedAt":"2011-09-06T16:08:03Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"mfwitten@gmail.com venit, vidit, dixit 06.09.2011 17:24:\n> On Tue, 06 Sep 2011 13:44:50 +0200, Tajti wrote:\n> \n>> what does the right-only option of git-log actually do? The manual is \n>> not too verbose about it.\n> \n> The documentation is indeed a bit messy, so let me rearrange it for you.\n> \n> From `git help rev-parse':\n> \n>   r1...r2 is called symmetric difference of r1 and r2 and is\n>   defined as `r1 r2 --not $(git merge-base --all r1 r2)'. It is\n>   the set of commits that are reachable from either one of r1 or\n>   r2 but not from both.\n> \n> Then we have this from `git help log':\n> \n>   --left-right\n>       Mark which side of a symmetric diff a commit is reachable\n>       from. Commits from the left side [(r1 above)] are prefixed with\n>       < and those from the right [(r2 above)] with >...\n> \n> which should explain what `<' and `>' mean in the following from\n> `git help log':\n> \n>   --left-only, --right-only\n>       List only commits on the respective side of a symmetric\n>       range, i.e. only those which would be marked < resp. > by\n>       --left-right.\n> \n> This is probably most useful with the following option, described\n> in `git help log':\n> \n>   --cherry-pick\n>       Omit any commit that introduces the same change as another\n>       commit on the \"other side\" when the set of commits are\n>       limited with symmetric difference.\n> \n>       ...\n> \n>       For example, --cherry-pick --right-only A...B omits those\n>       commits from B which are in A or are patch-equivalent to a\n>       commit in A. In other words, this lists the + commits from\n>       git cherry A B. More precisely, --cherry-pick --right-only\n>       --no-merges gives the exact list.\n> \n> That is, you often run into multiple commit objects that are unique\n> because of, say, differing commit dates, but that actually introduce\n> the same change to the source; this combination of options is helpful\n> in weeding out commits that introduce the same change.\n> \n> If you're still confused, don't hesitate to poke the list some more;\n> the documentation is quite lacking over all topics, so don't feel\n> stupid.\n\nFeel free to improve it :)\n\nThough, in this case, everything is in git-log's man page, except for\nthe definition of \"symmetric range\", which is a fundamental concept and\nthis described by git help revisions, e.g.\n\nWould a pointer from --left-only,--right-only to --cherry-pick help?\n\nMichael\n"}]}