{"thread":{"id":"1811","subject":"RE: getting a list of changes I commited","startedAt":"2005-09-15T19:21:00Z","lastAt":"2005-09-15T19:54:54Z","messageCount":2,"participants":["Luck, Tony","Linus Torvalds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"8622","messageId":"B8E391BBE9FE384DAA4C5C003888BE6F04662735@scsmsx401.amr.corp.intel.com","threadId":"1811","inReplyTo":null,"subject":"RE: getting a list of changes I commited","fromName":"Luck, Tony","fromEmail":"tony.luck@intel.com","sentAt":"2005-09-15T19:21:00Z","receivedAt":"2005-09-15T19:21:00Z","isPatch":false,"sender":{"key":"tony.luck@intel.com","avatar":"https://avatars.githubusercontent.com/u/5446021?v=4"},"body":">Why not just _also_ limit it by what is already merged in my tree?\n\nI can add the \"^linus\", but I think that with my workflow it\nwill never make a difference.  Any commits that got into your\ntree with a committer line by me will already be in my \"oldhead\"\n(how else did you get them?).  So \"^oldhead ^linus\" should always\nbe identical to \"^oldhead\".\n\n>This is what \"--header\" (and it's zero termination) is \n>designed for:\n\nGreat ... I suspected that everything I needed was already there\n(after all, all GIT problems are solvable with the right arguments to\ngit-rev-list!)\n\n>\tgit-rev-list --header --no-merges newhead ^oldhead |\n>\t\tgrep -z \"committer .*tony\\.luck\"\n>\n>and it will give a nice NUL-terminated output list of just \n>your commits. \n>No complex script necessary.\n\nBut \"git-shortlog\" doesn't like the output from this, so I need\na script (or another tip on arguments to git commands).\n\n>Also, the \"grep the committer\" approach fundamentally doesn't\n>work if you ever plan on having sub-lieutenants that work with you and\n>that you use git to merge with.\n\nOh happy day when I have sub-lieutenants :-)\n\n-Tony\n"},{"id":"8630","messageId":"Pine.LNX.4.58.0509151241140.26803@g5.osdl.org","threadId":"1811","inReplyTo":"B8E391BBE9FE384DAA4C5C003888BE6F04662735@scsmsx401.amr.corp.intel.com","subject":"RE: getting a list of changes I commited","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-09-15T19:54:54Z","receivedAt":"2005-09-15T19:54:54Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Thu, 15 Sep 2005, Luck, Tony wrote:\n> \n> I can add the \"^linus\", but I think that with my workflow it\n> will never make a difference.  Any commits that got into your\n> tree with a committer line by me will already be in my \"oldhead\"\n> (how else did you get them?).  So \"^oldhead ^linus\" should always\n> be identical to \"^oldhead\".\n\nNo. \"oldhead\" has to be the point where you did the last email thing.\n\nSo any time you merge from me, next time your email cron-job (or whatever)  \nhits, ^linus _will_ make a difference. Without it, you'd email out all the \nstuff that came through my tree.\n\n> Great ... I suspected that everything I needed was already there\n> (after all, all GIT problems are solvable with the right arguments to\n> git-rev-list!)\n\nGood man.\n\n> But \"git-shortlog\" doesn't like the output from this, so I need\n> a script (or another tip on arguments to git commands).\n\nEhh. This is getting ugly, but hey, that's my middle name.\n\n\tgit-rev-list --header newhead ^oldhead |\n\t\tgrep -z \"committer .*tony\\.luck\" |\n\t\ttr '\\0' '\\n' |\n\t\tgit-shortlog\n\n\nand btw, this depends on \"git-shortlog\" also understanding non-pretty log \nmessages, with a patch like below.\n\nJunio?\n\n\t\tLinus \"ugly\" Torvalds\n\n---\nSubject: Teach git-shortlog about raw log format too\n\nThis teaches \"git-shortlog\" to understand the non-prettified author format \ntoo, so you can use it with \"--pretty=raw\" or \"--header\" output too.\n\nSigned-off-by: Linus Torvalds <torvalds@osdl.org>\n---\ndiff --git a/git-shortlog.perl b/git-shortlog.perl\n--- a/git-shortlog.perl\n+++ b/git-shortlog.perl\n@@ -108,7 +108,7 @@ sub changelog_input {\n \t\tif ($pstate == 1) {\n \t\t\tmy ($email);\n \n-\t\t\tnext unless /^Author: (.*)<(.*)>.*$/;\n+\t\t\tnext unless /^Author: (.*)<(.*)>.*$/ || /^author (.*)<(.*)>.*$/;\n \t\n \t\t\t$n_records++;\n \t\n"}]}