{"thread":{"id":"11174","subject":"git-bisect feature suggestion: \"git-bisect diff\"","startedAt":"2007-12-07T09:34:39Z","lastAt":"2007-12-12T09:43:26Z","messageCount":36,"participants":["Ingo Molnar","Junio C Hamano","Jeff King","Christian Couder","Pierre Habouzit","Jakub Narebski","Nicolas Pitre"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"62264","messageId":"20071207093439.GA21896@elte.hu","threadId":"11174","inReplyTo":null,"subject":"git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-07T09:34:39Z","receivedAt":"2007-12-07T09:34:39Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\nwould be nice to have:\n\n git-bisect diff\n\nthat enables one to have a look at the currently open bisection window, \nin git-log -p format. This would often be much faster to analyze than \nlooking at git-bisect visualize. (and it could also be used in non-GUI \nworkflows)\n\nRight now i have this silly git-bisect-diff script:\n\ngit-log -p \"`git-bisect log | grep good | tail -1 | cut -d' ' -f3`\"..\"\\\n`git-bisect log | grep bad | tail -1 | cut -d' ' -f3`\"\n\n\tIngo\n"},{"id":"62267","messageId":"7v63za4yic.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071207093439.GA21896@elte.hu","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-07T09:58:35Z","receivedAt":"2007-12-07T09:58:35Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\nIngo Molnar <mingo@elte.hu> writes:\n\n> would be nice to have:\n>\n>  git-bisect diff\n>\n> that enables one to have a look at the currently open bisection window, \n> in git-log -p format. This would often be much faster to analyze than \n> looking at git-bisect visualize. (and it could also be used in non-GUI \n> workflows)\n\nHmm.  It is very unfortunate that \"bisect log\" is taken for something\nunrelated, so tentatively let's call it lumber.\n\n\t$ git bisect lumber [-p] [--stat]\n\nwould give you the short-hand, hopefully.\n\n---\n\n git-bisect.sh |   12 +++++++++++-\n 1 files changed, 11 insertions(+), 1 deletions(-)\n\ndiff --git a/git-bisect.sh b/git-bisect.sh\nindex 7a6521e..ee26624 100755\n--- a/git-bisect.sh\n+++ b/git-bisect.sh\n@@ -1,6 +1,6 @@\n #!/bin/sh\n \n-USAGE='[start|bad|good|skip|next|reset|visualize|replay|log|run]'\n+USAGE='[start|bad|good|skip|next|reset|visualize|log|replay|lumber|run]'\n LONG_USAGE='git bisect start [<bad> [<good>...]] [--] [<pathspec>...]\n         reset bisect state and start bisection.\n git bisect bad [<rev>]\n@@ -15,6 +15,8 @@ git bisect reset [<branch>]\n         finish bisection search and go back to branch.\n git bisect visualize\n         show bisect status in gitk.\n+git bisect lumber\n+        show bisect status in git log.\n git bisect replay <logfile>\n         replay bisection log.\n git bisect log\n@@ -328,6 +330,12 @@ bisect_visualize() {\n \teval gitk refs/bisect/bad --not $not -- $(cat \"$GIT_DIR/BISECT_NAMES\")\n }\n \n+bisect_lumber() {\n+\tbisect_next_check fail\n+\tnot=$(git for-each-ref --format='%(refname)' \"refs/bisect/good-*\")\n+\teval git log \"$@\" refs/bisect/bad --not $not -- $(cat \"$GIT_DIR/BISECT_NAMES\")\n+}\n+\n bisect_reset() {\n \ttest -f \"$GIT_DIR/BISECT_NAMES\" || {\n \t\techo \"We are not bisecting.\"\n@@ -451,6 +459,8 @@ case \"$#\" in\n         bisect_next \"$@\" ;;\n     visualize)\n \tbisect_visualize \"$@\" ;;\n+    lumber)\n+\tbisect_lumber \"$@\" ;;\n     reset)\n         bisect_reset \"$@\" ;;\n     replay)\n"},{"id":"62269","messageId":"7vwsrq3iox.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"7v63za4yic.fsf@gitster.siamese.dyndns.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-07T10:25:34Z","receivedAt":"2007-12-07T10:25:34Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Ingo Molnar <mingo@elte.hu> writes:\n>\n>> would be nice to have:\n>>\n>>  git-bisect diff\n>>\n>> that enables one to have a look at the currently open bisection window, \n>> in git-log -p format. This would often be much faster to analyze than \n>> looking at git-bisect visualize. (and it could also be used in non-GUI \n>> workflows)\n>\n> Hmm.  It is very unfortunate that \"bisect log\" is taken for something\n> unrelated, so tentatively let's call it lumber.\n>\n> \t$ git bisect lumber [-p] [--stat]\n>\n> would give you the short-hand, hopefully.\n\nMore seriously...\n\n-- >8 --\ngit-bisect visualize: work in non-windowed environments better\n\nThis teaches \"git bisect visualize\" to be more useful in non-windowed\nenvironments.\n\n (1) When no option is given, and $DISPLAY is set, it continues to\n     spawn gitk as before;\n\n (2) When no option is given, and $DISPLAY is unset, \"git log\" is run\n     to show the range of commits between the bad one and the good ones;\n\n (3) If only \"-flag\" options are given, \"git log <options>\" is run.\n     E.g. \"git bisect visualize --stat\"\n\n (4) Otherwise, all of the given options are taken as the initial part\n     of the command line and the commit range expression is given to\n     that command.  E.g. \"git bisect visualize tig\" will run \"tig\"\n     history viewer to show between the bad one and the good ones.\n\nAs \"visualize\" is a bit too long to type, we also give it a shorter\nsynonym \"view\".\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n git-bisect.sh |   19 +++++++++++++++++--\n 1 files changed, 17 insertions(+), 2 deletions(-)\n\ndiff --git a/git-bisect.sh b/git-bisect.sh\nindex 7a6521e..bb6fe84 100755\n--- a/git-bisect.sh\n+++ b/git-bisect.sh\n@@ -324,8 +324,23 @@ bisect_next() {\n \n bisect_visualize() {\n \tbisect_next_check fail\n+\n+\tif test $# = 0\n+\tthen\n+\t\tcase \"${DISPLAY+set}\" in\n+\t\t'')\tset git log ;;\n+\t\tset)\tset gitk ;;\n+\t\tesac\n+\telse\n+\t\tcase \"$1\" in\n+\t\tgit*|tig) ;;\n+\t\t-*)\tset git log \"$@\" ;;\n+\t\t*)\tset git \"$@\" ;;\n+\t\tesac\n+\tfi\n+\n \tnot=$(git for-each-ref --format='%(refname)' \"refs/bisect/good-*\")\n-\teval gitk refs/bisect/bad --not $not -- $(cat \"$GIT_DIR/BISECT_NAMES\")\n+\teval '\"$@\"' refs/bisect/bad --not $not -- $(cat \"$GIT_DIR/BISECT_NAMES\")\n }\n \n bisect_reset() {\n@@ -449,7 +464,7 @@ case \"$#\" in\n     next)\n         # Not sure we want \"next\" at the UI level anymore.\n         bisect_next \"$@\" ;;\n-    visualize)\n+    visualize|view)\n \tbisect_visualize \"$@\" ;;\n     reset)\n         bisect_reset \"$@\" ;;\n"},{"id":"62273","messageId":"20071207112159.GA11035@elte.hu","threadId":"11174","inReplyTo":"7vwsrq3iox.fsf@gitster.siamese.dyndns.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-07T11:21:59Z","receivedAt":"2007-12-07T11:21:59Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Junio C Hamano <gitster@pobox.com> wrote:\n\n>  (1) When no option is given, and $DISPLAY is set, it continues to\n>      spawn gitk as before;\n> \n>  (2) When no option is given, and $DISPLAY is unset, \"git log\" is run\n>      to show the range of commits between the bad one and the good \n>      ones;\n> \n>  (3) If only \"-flag\" options are given, \"git log <options>\" is run.\n>      E.g. \"git bisect visualize --stat\"\n> \n>  (4) Otherwise, all of the given options are taken as the initial part\n>      of the command line and the commit range expression is given to \n>      that command.  E.g. \"git bisect visualize tig\" will run \"tig\" \n>      history viewer to show between the bad one and the good ones.\n\nnice. One small detail though: i frequently ssh to testboxes that have \nDISPLAY set but i want text output. So git-bisect view --text should be \na special-case perhaps?\n\n\tIngo\n"},{"id":"62306","messageId":"7vmysm1eyz.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071207112159.GA11035@elte.hu","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-07T19:28:52Z","receivedAt":"2007-12-07T19:28:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ingo Molnar <mingo@elte.hu> writes:\n\n> ... One small detail though: i frequently ssh to testboxes that have \n> DISPLAY set but i want text output. So git-bisect view --text should be \n> a special-case perhaps?\n\nYeah, but at that point, wouldn't \"git bisect view log\" be shorter to\ntype?\n"},{"id":"62310","messageId":"20071207194630.GA11069@elte.hu","threadId":"11174","inReplyTo":"7vmysm1eyz.fsf@gitster.siamese.dyndns.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-07T19:46:30Z","receivedAt":"2007-12-07T19:46:30Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Junio C Hamano <gitster@pobox.com> wrote:\n\n> Ingo Molnar <mingo@elte.hu> writes:\n> \n> > ... One small detail though: i frequently ssh to testboxes that have \n> > DISPLAY set but i want text output. So git-bisect view --text should be \n> > a special-case perhaps?\n> \n> Yeah, but at that point, wouldn't \"git bisect view log\" be shorter to \n> type?\n\nit's also more intuitive. ok :-)\n\n\tIngo\n"},{"id":"62325","messageId":"20071207213414.GA11688@coredump.intra.peff.net","threadId":"11174","inReplyTo":"7vwsrq3iox.fsf@gitster.siamese.dyndns.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2007-12-07T21:34:14Z","receivedAt":"2007-12-07T21:34:14Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Dec 07, 2007 at 02:25:34AM -0800, Junio C Hamano wrote:\n\n> git-bisect visualize: work in non-windowed environments better\n\nIsn't this more or less the use case for the \"git view\" alias?\n\ndiff --git a/git-bisect.sh b/git-bisect.sh\nindex 7a6521e..3a21386 100755\n--- a/git-bisect.sh\n+++ b/git-bisect.sh\n@@ -325,7 +325,7 @@ bisect_next() {\n bisect_visualize() {\n \tbisect_next_check fail\n \tnot=$(git for-each-ref --format='%(refname)' \"refs/bisect/good-*\")\n-\teval gitk refs/bisect/bad --not $not -- $(cat \"$GIT_DIR/BISECT_NAMES\")\n+\teval git view refs/bisect/bad --not $not -- $(cat \"$GIT_DIR/BISECT_NAMES\")\n }\n \n bisect_reset() {\n"},{"id":"62327","messageId":"20071207213541.GA11723@coredump.intra.peff.net","threadId":"11174","inReplyTo":"20071207213414.GA11688@coredump.intra.peff.net","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2007-12-07T21:35:41Z","receivedAt":"2007-12-07T21:35:41Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Dec 07, 2007 at 04:34:14PM -0500, Jeff King wrote:\n\n> On Fri, Dec 07, 2007 at 02:25:34AM -0800, Junio C Hamano wrote:\n> \n> > git-bisect visualize: work in non-windowed environments better\n> \n> Isn't this more or less the use case for the \"git view\" alias?\n\nWhich isn't to say that I don't think your solution is nicer; it is. But\nif we don't use it here, then perhaps \"git view\" really is a solution in\nsearch of a problem.\n\n-Peff\n"},{"id":"62334","messageId":"7vtzmuyyc3.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071207213541.GA11723@coredump.intra.peff.net","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-07T21:44:12Z","receivedAt":"2007-12-07T21:44:12Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Fri, Dec 07, 2007 at 04:34:14PM -0500, Jeff King wrote:\n>\n>> On Fri, Dec 07, 2007 at 02:25:34AM -0800, Junio C Hamano wrote:\n>> \n>> > git-bisect visualize: work in non-windowed environments better\n>> \n>> Isn't this more or less the use case for the \"git view\" alias?\n>\n> Which isn't to say that I don't think your solution is nicer; it is. But\n> if we don't use it here, then perhaps \"git view\" really is a solution in\n> search of a problem.\n\nWell, I think \"git view\" should not be just \"predefined alias that the\nuser can override wholesale\", which is what you currently have.  I think\nit can just be an example in \"git config\" manpage (i.e. \"If you want to,\nyou can alias 'view' to 'gitk' or 'gitview'\") and I do not think we need\ncore-side support for that.\n\nIf it becomes cleverer, that's a different story.  Noticing if the user\nis in windowing environment or not, and acting differently, would make\nit a single command that acts sensibly and in context sensitive way.\n"},{"id":"62337","messageId":"20071207215514.GA11784@coredump.intra.peff.net","threadId":"11174","inReplyTo":"7vtzmuyyc3.fsf@gitster.siamese.dyndns.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2007-12-07T21:55:14Z","receivedAt":"2007-12-07T21:55:14Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Dec 07, 2007 at 01:44:12PM -0800, Junio C Hamano wrote:\n\n> Well, I think \"git view\" should not be just \"predefined alias that the\n> user can override wholesale\", which is what you currently have.  I think\n> it can just be an example in \"git config\" manpage (i.e. \"If you want to,\n> you can alias 'view' to 'gitk' or 'gitview'\") and I do not think we need\n> core-side support for that.\n\nSure, but regular aliases already do that. The point of making it a\n\"builtin\" alias is that we can depend on it being there. But who is\ndepending?\n\n-Peff\n"},{"id":"62339","messageId":"7vprxiyxfj.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071207215514.GA11784@coredump.intra.peff.net","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-07T22:03:44Z","receivedAt":"2007-12-07T22:03:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Fri, Dec 07, 2007 at 01:44:12PM -0800, Junio C Hamano wrote:\n>\n>> Well, I think \"git view\" should not be just \"predefined alias that the\n>> user can override wholesale\", which is what you currently have.  I think\n>> it can just be an example in \"git config\" manpage (i.e. \"If you want to,\n>> you can alias 'view' to 'gitk' or 'gitview'\") and I do not think we need\n>> core-side support for that.\n>\n> Sure, but regular aliases already do that. The point of making it a\n> \"builtin\" alias is that we can depend on it being there. But who is\n> depending?\n\nNobody is depending.\n\nAnd I think the reason nobody depends on it is because there is no\ncompelling reason to.  Perhaps the behaviour is not useful enough.  It\nsurely is the case for \"bisect view\".\n"},{"id":"62341","messageId":"20071207220738.GA23535@coredump.intra.peff.net","threadId":"11174","inReplyTo":"7vprxiyxfj.fsf@gitster.siamese.dyndns.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2007-12-07T22:07:39Z","receivedAt":"2007-12-07T22:07:39Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Dec 07, 2007 at 02:03:44PM -0800, Junio C Hamano wrote:\n\n> > Sure, but regular aliases already do that. The point of making it a\n> > \"builtin\" alias is that we can depend on it being there. But who is\n> > depending?\n> \n> Nobody is depending.\n> \n> And I think the reason nobody depends on it is because there is no\n> compelling reason to.  Perhaps the behaviour is not useful enough.  It\n> surely is the case for \"bisect view\".\n\nRight, which leads to my (perhaps subtle) point that the builtin alias\nhack is just what you said elsewhere: a cute hack. IOW, I am slightly\nNAKing inclusion of it in master (OTOH, I really don't see what it could\n_hurt_, so maybe somebody could find a use for it that we didn't think\nof).\n\n-Peff\n"},{"id":"62361","messageId":"7vabolzyjf.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071207220738.GA23535@coredump.intra.peff.net","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-08T02:54:28Z","receivedAt":"2007-12-08T02:54:28Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> Right, which leads to my (perhaps subtle) point that the builtin alias\n> hack is just what you said elsewhere: a cute hack. IOW, I am slightly\n> NAKing inclusion of it in master (OTOH, I really don't see what it could\n> _hurt_, so maybe somebody could find a use for it that we didn't think\n> of).\n\nHeh, since when one can NAK one's own change? ;-)\n\nYeah, I am inclined to let it rot in 'next' until 1.5.4 ships and then\ndecide.  Either people will forget about it (in which case we can\nrevert) or enough people would want it and give some magic smarts to\nit.\n"},{"id":"62379","messageId":"200712080636.12982.chriscool@tuxfamily.org","threadId":"11174","inReplyTo":"20071207093439.GA21896@elte.hu","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Christian Couder","fromEmail":"chriscool@tuxfamily.org","sentAt":"2007-12-08T05:36:12Z","receivedAt":"2007-12-08T05:36:12Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Le vendredi 7 décembre 2007, Ingo Molnar a écrit :\n> would be nice to have:\n>\n>  git-bisect diff\n>\n> that enables one to have a look at the currently open bisection window,\n> in git-log -p format. This would often be much faster to analyze than\n> looking at git-bisect visualize. (and it could also be used in non-GUI\n> workflows)\n>\n> Right now i have this silly git-bisect-diff script:\n>\n> git-log -p \"`git-bisect log | grep good | tail -1 | cut -d' ' -f3`\"..\"\\\n> `git-bisect log | grep bad | tail -1 | cut -d' ' -f3`\"\n>\n\nTell us if you have other scripts or suggestions related to git-bisect.\n\nAnd thanks for you kind word about it:\n\nhttp://thread.gmane.org/gmane.linux.kernel.input/3740/focus=3764\n\nChristian.\n"},{"id":"62417","messageId":"20071208152922.GB30270@elte.hu","threadId":"11174","inReplyTo":"200712080636.12982.chriscool@tuxfamily.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-08T15:29:22Z","receivedAt":"2007-12-08T15:29:22Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Christian Couder <chriscool@tuxfamily.org> wrote:\n\n> > Right now i have this silly git-bisect-diff script:\n> >\n> > git-log -p \"`git-bisect log | grep good | tail -1 | cut -d' ' \n> > -f3`\"..\"\\ `git-bisect log | grep bad | tail -1 | cut -d' ' -f3`\"\n> >\n> \n> Tell us if you have other scripts or suggestions related to \n> git-bisect.\n\ni have scripts around \"git-bisect run\" (which are custom to my test \nenvironment so not generally applicable), but perhaps it would be useful \nto extend it a little bit to have automatic support for \"build error \nbisection\". 99% of the FOSS packages that developed under git can be \nbuilt via \"make\". So could you perhaps add fully automatic bisection \nsupport that is driven by doing \"make\" in the current repository?\n\nCurrently, in the Linux kernel, if i do this:\n\n $ git-bisect run make -j64 kernel/\n\nit fails with:\n\n running make -j64 kernel/\n   CHK     include/linux/version.h\n   CHK     include/linux/utsrelease.h\n   CALL    scripts/checksyscalls.sh\n bisect run failed:\n bisect_good exited with error code 1\n\nalthough the command \"make -j64 kernel/\" returns with 0.\n\ni have to write a script around \"make -j64 kernel/\" to get this to work \n- it would be nice to have this \"out of box\".\n\n\tIngo\n"},{"id":"62457","messageId":"200712090633.36086.chriscool@tuxfamily.org","threadId":"11174","inReplyTo":"20071208152922.GB30270@elte.hu","subject":"git-bisect run make -j64 kernel/ (was Re: git-bisect feature suggestion: \"git-bisect diff\")","fromName":"Christian Couder","fromEmail":"chriscool@tuxfamily.org","sentAt":"2007-12-09T05:33:33Z","receivedAt":"2007-12-09T05:33:33Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Le samedi 8 décembre 2007, Ingo Molnar a écrit :\n> Currently, in the Linux kernel, if i do this:\n>\n>  $ git-bisect run make -j64 kernel/\n>\n> it fails with:\n>\n>  running make -j64 kernel/\n>    CHK     include/linux/version.h\n>    CHK     include/linux/utsrelease.h\n>    CALL    scripts/checksyscalls.sh\n>  bisect run failed:\n>  bisect_good exited with error code 1\n>\n> although the command \"make -j64 kernel/\" returns with 0.\n>\n> i have to write a script around \"make -j64 kernel/\" to get this to work\n> - it would be nice to have this \"out of box\".\n\nIt seems to work for me. After creating a .config, I did:\n\n$ git bisect good v2.6.23\n$ git bisect bad HEAD\n$ git bisect run make -j64 kernel/\n\nThen I had to answer some configuration questions (I hit <enter>  everytime) \nbut it run fine.\n\nMy git version is:\n\ngit version 1.5.3.7.2200.g9275-dirty\n\nI attached the log (from git bisect log) and here is the end of the \nbisection:\n\n\nBisecting: 74 revisions left to test after this\n[09f3eca2b7e2762e223fdd359f9d0f6303a85f6c] Merge branch 'for-2.6.24' of \ngit://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc\nrunning make -j64 kernel/\nscripts/kconfig/conf -s arch/x86/Kconfig\n#\n# configuration written to .config\n#\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CC      arch/x86/kernel/asm-offsets.s\n  GEN     include/asm-x86/asm-offsets.h\n  CALL    scripts/checksyscalls.sh\n  CC      kernel/sched.o\n  CC      kernel/fork.o\n  CC      kernel/panic.o\n  CC      kernel/printk.o\n  CC      kernel/profile.o\n  CC      kernel/exec_domain.o\n  CC      kernel/exit.o\n  CC      kernel/itimer.o\n  CC      kernel/time.o\n  CC      kernel/softirq.o\n  CC      kernel/resource.o\n  CC      kernel/sysctl.o\n  CC      kernel/capability.o\n  CC      kernel/ptrace.o\n  CC      kernel/timer.o\n  CC      kernel/user.o\n  CC      kernel/signal.o\n  CC      kernel/sys.o\n  CC      kernel/kmod.o\n  CC      kernel/user_namespace.o\n  CC      kernel/pid.o\n  CC      kernel/rcupdate.o\n  CC      kernel/workqueue.o\n  CC      kernel/params.o\n  CC      kernel/posix-timers.o\n  CC      kernel/kthread.o\n  CC      kernel/kfifo.o\n  CC      kernel/posix-cpu-timers.o\n  CC      kernel/mutex.o\n  CC      kernel/hrtimer.o\n  CC      kernel/rwsem.o\n  CC      kernel/latency.o\n  CC      kernel/nsproxy.o\n  CC      kernel/extable.o\n  CC      kernel/wait.o\n  CC      kernel/utsname.o\n  CC      kernel/notifier.o\n  CC      kernel/sysctl_check.o\n  CC      kernel/futex.o\n  CC      kernel/srcu.o\n  CC      kernel/irq/handle.o\n  CC      kernel/power/main.o\n  CC      kernel/power/pm.o\n  CC      kernel/time/timekeeping.o\n  CC      kernel/power/process.o\n  CC      kernel/irq/manage.o\n  CC      kernel/time/ntp.o\n  CC      kernel/irq/spurious.o\n  CC      kernel/time/jiffies.o\n  CC      kernel/time/clockevents.o\n  CC      kernel/time/timer_list.o\n  CC      kernel/time/tick-common.o\n  CC      kernel/rtmutex.o\n  CC      kernel/dma.o\n  CC      kernel/cpu.o\n  CC      kernel/power/console.o\n  CC      kernel/irq/resend.o\n  CC      kernel/power/poweroff.o\n  CC      kernel/irq/chip.o\n  CC      kernel/irq/devres.o\n  CC      kernel/time/clocksource.o\n  CC      kernel/time/tick-broadcast.o\n  CC      kernel/irq/proc.o\n  CC      kernel/irq/autoprobe.o\n  CC      kernel/irq/migration.o\n  CC      kernel/uid16.o\n  CC      kernel/spinlock.o\n  CC      kernel/module.o\n  CC      kernel/acct.o\n  CC      kernel/kexec.o\n  CC      kernel/stop_machine.o\n  CC      kernel/kallsyms.o\n  CC      kernel/audit.o\n  CC      kernel/auditfilter.o\n  CC      kernel/ksysfs.o\nkernel/power/pm.c:205: warning: 'pm_register' is deprecated (declared at \nkernel/power/pm.c:64)\nkernel/power/pm.c:205: warning: 'pm_register' is deprecated (declared at \nkernel/power/pm.c:64)\nkernel/power/pm.c:206: warning: 'pm_send_all' is deprecated (declared at \nkernel/power/pm.c:180)\nkernel/power/pm.c:206: warning: 'pm_send_all' is deprecated (declared at \nkernel/power/pm.c:180)\n  CC      kernel/utsname_sysctl.o\n  LD      kernel/power/built-in.o\n  LD      kernel/irq/built-in.o\n  LD      kernel/time/built-in.o\n  LD      kernel/built-in.o\nBisecting: 38 revisions left to test after this\n[e17587b5b90da78f56c7a948e54dbac3dc791f31] Merge branch 'for-linus' of \ngit://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6\nrunning make -j64 kernel/\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CALL    scripts/checksyscalls.sh\nBisecting: 17 revisions left to test after this\n[c32bc6e9b0778c891f7f3b97cd05c8cdf98b6721] e1000: fix memcpy in \ne1000_get_strings\nrunning make -j64 kernel/\nscripts/kconfig/conf -s arch/x86/Kconfig\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CALL    scripts/checksyscalls.sh\n  CC      kernel/sched.o\n  CC      kernel/hrtimer.o\n  CC      kernel/time/clockevents.o\n  LD      kernel/time/built-in.o\n  LD      kernel/built-in.o\nBisecting: 8 revisions left to test after this\n[4696c3c406a8b32112f8e1f70b3db1114950dcb1] ibm_newemac: Correct opb_bus_freq \nvalue\nrunning make -j64 kernel/\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CALL    scripts/checksyscalls.sh\nBisecting: 4 revisions left to test after this\n[7962024e9d16e9349d76b553326f3fa7be64305e] S2io: Check for register \ninitialization completion before accesing device registers\nrunning make -j64 kernel/\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CALL    scripts/checksyscalls.sh\nBisecting: 2 revisions left to test after this\n[d1aa690a7d1afa673c3383bfcd6e96ddb350939a] ata_piix: add Toshiba Tecra M4 to \nbroken suspend list\nrunning make -j64 kernel/\nscripts/kconfig/conf -s arch/x86/Kconfig\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CALL    scripts/checksyscalls.sh\nBisecting: 1 revisions left to test after this\n[459ad68893a84fb0881e57919340b97edbbc3dc7] libata: kill spurious NCQ \ncompletion detection\nrunning make -j64 kernel/\n  CHK     include/linux/version.h\n  CHK     include/linux/utsrelease.h\n  CALL    scripts/checksyscalls.sh\n94545baded0bfbabdc30a3a4cb48b3db479dd6ef is first bad commit\nbisect run success\n\nIt found the HEAD as the first bad commit as expected, because I had no \ncompilation error.\n\nChristian.\n\n\n\n\n\n\ngit-bisect start\n# good: [bbf25010f1a6b761914430f5fca081ec8c7accd1] Linux 2.6.23\ngit-bisect good bbf25010f1a6b761914430f5fca081ec8c7accd1\n# bad: [94545baded0bfbabdc30a3a4cb48b3db479dd6ef] Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\ngit-bisect bad 94545baded0bfbabdc30a3a4cb48b3db479dd6ef\n# good: [92d15c2ccbb3e31a3fc71ad28fdb55e1319383c0] Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block\ngit-bisect good 92d15c2ccbb3e31a3fc71ad28fdb55e1319383c0\n# good: [c09b360a2b0779e08bacb88d3fcd8458ebc49658] Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\ngit-bisect good c09b360a2b0779e08bacb88d3fcd8458ebc49658\n# good: [6fa02839bf9412e18e773d04e96182b4cd0b5d57] nfsd4: recheck for secure ports in fh_verify\ngit-bisect good 6fa02839bf9412e18e773d04e96182b4cd0b5d57\n# good: [b5faa4b89e4d83203b1f44f143a351b518f7cda2] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6\ngit-bisect good b5faa4b89e4d83203b1f44f143a351b518f7cda2\n# good: [c99da91e7a12724127475a85cc7a38214b3504e2] Merge branch 'master' into upstream-fixes\ngit-bisect good c99da91e7a12724127475a85cc7a38214b3504e2\n# good: [131b17d42de6194fa960132c1f62c29923c4f20c] spi: initial BF54x SPI support\ngit-bisect good 131b17d42de6194fa960132c1f62c29923c4f20c\n# good: [09f3eca2b7e2762e223fdd359f9d0f6303a85f6c] Merge branch 'for-2.6.24' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc\ngit-bisect good 09f3eca2b7e2762e223fdd359f9d0f6303a85f6c\n# good: [e17587b5b90da78f56c7a948e54dbac3dc791f31] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6\ngit-bisect good e17587b5b90da78f56c7a948e54dbac3dc791f31\n# good: [c32bc6e9b0778c891f7f3b97cd05c8cdf98b6721] e1000: fix memcpy in e1000_get_strings\ngit-bisect good c32bc6e9b0778c891f7f3b97cd05c8cdf98b6721\n# good: [4696c3c406a8b32112f8e1f70b3db1114950dcb1] ibm_newemac: Correct opb_bus_freq value\ngit-bisect good 4696c3c406a8b32112f8e1f70b3db1114950dcb1\n# good: [7962024e9d16e9349d76b553326f3fa7be64305e] S2io: Check for register initialization completion before accesing device registers\ngit-bisect good 7962024e9d16e9349d76b553326f3fa7be64305e\n# good: [d1aa690a7d1afa673c3383bfcd6e96ddb350939a] ata_piix: add Toshiba Tecra M4 to broken suspend list\ngit-bisect good d1aa690a7d1afa673c3383bfcd6e96ddb350939a\n# good: [459ad68893a84fb0881e57919340b97edbbc3dc7] libata: kill spurious NCQ completion detection\ngit-bisect good 459ad68893a84fb0881e57919340b97edbbc3dc7\n"},{"id":"62692","messageId":"20071211092446.GA4703@elte.hu","threadId":"11174","inReplyTo":"200712080636.12982.chriscool@tuxfamily.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-11T09:24:46Z","receivedAt":"2007-12-11T09:24:46Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Christian Couder <chriscool@tuxfamily.org> wrote:\n\n> Tell us if you have other scripts or suggestions related to \n> git-bisect.\n\nnot strictly git-bisect related, but i've got the git-authors oneliner \nscript below that i find very useful when figuring out whom to mail to \nrelated to a bug in any given kernel subsystem. For example when i see \nsome USB problem i can do:\n\n  git-authors v2.6.23.. drivers/usb/\n\nwhich gives me the most active (and hence most relevant) developers in \nan area:\n\n      9  Pete Zaitcev <zaitcev@redhat.com>\n     10  Inaky Perez-Gonzalez <inaky@linux.intel.com>\n     12  David Brownell <david-b@pacbell.net>\n     12  Oliver Neukum <oliver@neukum.org>\n     23  Alan Cox <alan@lxorguk.ukuu.org.uk>\n     49  Alan Stern <stern@rowland.harvard.edu>\n\nwith an email to pick up. In terms of accuracy this beats the \nMAINTAINERS file most of the time. And even when MAINTAINERS is accurate \n- in this particular case there are 48 'USB' related entries in the \nMAINTAINERS file - totally hard to sort out for a newbie.\n\ngit-authors is also much easier and more natural to use - when i find \nproblems it's usually related to a file, and i can run this:\n\n$ git-authors v2.6.23.. kernel/pid.c\n      1  Eric W. Biederman <ebiederm@xmission.com>\n      1  Pavel Emelianov <xemul@openvz.org>\n      1  Serge E. Hallyn <serue@us.ibm.com>\n      3  Sukadev Bhattiprolu <sukadev@us.ibm.com>\n     10  Pavel Emelyanov <xemul@openvz.org>\n\nwhich works on a very finegrained level and gives a better \"overview\" \nthan a pure git-log. Perhaps this could be a --authorstats option of \ngit-log perhaps?\n\n\tIngo\n\n---------{ git-authors }--------->\n#!/bin/bash\n\ngit-log $@ | grep Author: | cut -d: -f2 | sort | uniq -c | sort -n\n"},{"id":"62693","messageId":"20071211092916.GF30948@artemis.madism.org","threadId":"11174","inReplyTo":"20071211092446.GA4703@elte.hu","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Pierre Habouzit","fromEmail":"madcoder@debian.org","sentAt":"2007-12-11T09:29:16Z","receivedAt":"2007-12-11T09:29:16Z","isPatch":false,"sender":{"key":"madcoder@debian.org","avatar":"https://avatars.githubusercontent.com/u/44708?v=4"},"body":"On Tue, Dec 11, 2007 at 09:24:46AM +0000, Ingo Molnar wrote:\n> ---------{ git-authors }--------->\n> #!/bin/bash\n> \n> git-log $@ | grep Author: | cut -d: -f2 | sort | uniq -c | sort -n\n\nYou mean:\n    git shortlog -n -s HEAD -- \"$@\"\nto do exactly the same right ? :)\n\n-- \n·O·  Pierre Habouzit\n··O                                                madcoder@debian.org\nOOO                                                http://www.madism.org\n"},{"id":"62694","messageId":"m3ve75sfn3.fsf@roke.D-201","threadId":"11174","inReplyTo":"20071211092916.GF30948@artemis.madism.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-11T10:13:45Z","receivedAt":"2007-12-11T10:13:45Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Pierre Habouzit <madcoder@debian.org> writes:\n\n> On Tue, Dec 11, 2007 at 09:24:46AM +0000, Ingo Molnar wrote:\n> > ---------{ git-authors }--------->\n> > #!/bin/bash\n> > \n> > git-log $@ | grep Author: | cut -d: -f2 | sort | uniq -c | sort -n\n> \n> You mean:\n>     git shortlog -n -s HEAD -- \"$@\"\n> to do exactly the same right ? :)\n\nNot exactly, as it does not give us email address.\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"62695","messageId":"20071211101725.GB14372@elte.hu","threadId":"11174","inReplyTo":"20071211092916.GF30948@artemis.madism.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-11T10:17:25Z","receivedAt":"2007-12-11T10:17:25Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Pierre Habouzit <madcoder@debian.org> wrote:\n\n> On Tue, Dec 11, 2007 at 09:24:46AM +0000, Ingo Molnar wrote:\n> > ---------{ git-authors }--------->\n> > #!/bin/bash\n> > \n> > git-log $@ | grep Author: | cut -d: -f2 | sort | uniq -c | sort -n\n> \n> You mean:\n>     git shortlog -n -s HEAD -- \"$@\"\n> to do exactly the same right ? :)\n\ndidnt know about that - i guess i wrote git-authors before even \ngit-shortlog existed ;-)\n\nbut i still prefer this format:\n\n      2  Serge E. Hallyn <serue@us.ibm.com>\n     10  Eric W. Biederman <ebiederm@xmission.com>\n     10  Pavel Emelyanov <xemul@openvz.org>\n     10  Sukadev Bhattiprolu <sukadev@us.ibm.com>\n\nbecause i'm not just interested in the stats, i'm also interested in an \nemail address to pick. Also, the number should be the first column and \naligned, it's easier to read for humans that way. (and this summary \noutput is for humans.)\n\n\tIngo\n"},{"id":"62702","messageId":"20071211115914.GJ30948@artemis.madism.org","threadId":"11174","inReplyTo":"m3ve75sfn3.fsf@roke.D-201","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Pierre Habouzit","fromEmail":"madcoder@debian.org","sentAt":"2007-12-11T11:59:14Z","receivedAt":"2007-12-11T11:59:14Z","isPatch":false,"sender":{"key":"madcoder@debian.org","avatar":"https://avatars.githubusercontent.com/u/44708?v=4"},"body":"On Tue, Dec 11, 2007 at 10:13:45AM +0000, Jakub Narebski wrote:\n> Pierre Habouzit <madcoder@debian.org> writes:\n> \n> > On Tue, Dec 11, 2007 at 09:24:46AM +0000, Ingo Molnar wrote:\n> > > ---------{ git-authors }--------->\n> > > #!/bin/bash\n> > > \n> > > git-log $@ | grep Author: | cut -d: -f2 | sort | uniq -c | sort -n\n> > \n> > You mean:\n> >     git shortlog -n -s HEAD -- \"$@\"\n> > to do exactly the same right ? :)\n> \n> Not exactly, as it does not give us email address.\n\n  maybe it should be \"fixed\" so that it does, not to mention that other\nconcerns ingo raised look legit to me.\n\n-- \n·O·  Pierre Habouzit\n··O                                                madcoder@debian.org\nOOO                                                http://www.madism.org\n"},{"id":"62705","messageId":"20071211122539.GA13945@sigill.intra.peff.net","threadId":"11174","inReplyTo":"20071211115914.GJ30948@artemis.madism.org","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2007-12-11T12:25:39Z","receivedAt":"2007-12-11T12:25:39Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Dec 11, 2007 at 12:59:14PM +0100, Pierre Habouzit wrote:\n\n> > Not exactly, as it does not give us email address.\n> \n>   maybe it should be \"fixed\" so that it does, not to mention that other\n> concerns ingo raised look legit to me.\n\nPerhaps Junio is a time-traveller.\n\n$ git show 4602c17d\ncommit 4602c17d8911e14d537f6f87db02faab6e3f5d69\nAuthor: Junio C Hamano <gitster@pobox.com>\nDate:   Fri Dec 7 17:19:31 2007 -0800\n\n    git-shortlog -e: show e-mail address as well\n\n    This option shows the author's email address next to the name.\n\n    Signed-off-by: Junio C Hamano <gitster@pobox.com>\n"},{"id":"62706","messageId":"20071211123312.GA14965@sigill.intra.peff.net","threadId":"11174","inReplyTo":"20071211122539.GA13945@sigill.intra.peff.net","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2007-12-11T12:33:12Z","receivedAt":"2007-12-11T12:33:12Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Dec 11, 2007 at 07:25:39AM -0500, Jeff King wrote:\n\n> $ git show 4602c17d\n> commit 4602c17d8911e14d537f6f87db02faab6e3f5d69\n> Author: Junio C Hamano <gitster@pobox.com>\n> Date:   Fri Dec 7 17:19:31 2007 -0800\n> \n>     git-shortlog -e: show e-mail address as well\n> \n>     This option shows the author's email address next to the name.\n> \n>     Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nAnd here is a matching documentation patch. I know, it's not a v1.5.4\nbugfix, but hopefully it should be easy to review. ;)\n\n-- >8 --\nshortlog: document -e option\n\nThis was added in 4602c17d.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n Documentation/git-shortlog.txt |    7 +++++--\n 1 files changed, 5 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt\nindex 2220ef6..e14720b 100644\n--- a/Documentation/git-shortlog.txt\n+++ b/Documentation/git-shortlog.txt\n@@ -8,8 +8,8 @@ git-shortlog - Summarize 'git log' output\n SYNOPSIS\n --------\n [verse]\n-git-log --pretty=short | 'git-shortlog' [-h] [-n] [-s]\n-git-shortlog [-n|--numbered] [-s|--summary] [<committish>...]\n+git-log --pretty=short | 'git-shortlog' [-h] [-n] [-s] [-e]\n+git-shortlog [-n|--numbered] [-s|--summary] [-e|--email] [<committish>...]\n \n DESCRIPTION\n -----------\n@@ -32,6 +32,9 @@ OPTIONS\n -s, \\--summary::\n \tSuppress commit description and provide a commit count summary only.\n \n+-e, \\--email::\n+\tShow the email address of each author.\n+\n FILES\n -----\n \n-- \n1.5.3.7.2224.ge4a5\n"},{"id":"62719","messageId":"20071211140508.GA12204@elte.hu","threadId":"11174","inReplyTo":"20071211122539.GA13945@sigill.intra.peff.net","subject":"Re: git-bisect feature suggestion: \"git-bisect diff\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-11T14:05:08Z","receivedAt":"2007-12-11T14:05:08Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Jeff King <peff@peff.net> wrote:\n\n> On Tue, Dec 11, 2007 at 12:59:14PM +0100, Pierre Habouzit wrote:\n> \n> > > Not exactly, as it does not give us email address.\n> > \n> >   maybe it should be \"fixed\" so that it does, not to mention that other\n> > concerns ingo raised look legit to me.\n> \n> Perhaps Junio is a time-traveller.\n> \n> $ git show 4602c17d\n> commit 4602c17d8911e14d537f6f87db02faab6e3f5d69\n> Author: Junio C Hamano <gitster@pobox.com>\n> Date:   Fri Dec 7 17:19:31 2007 -0800\n> \n>     git-shortlog -e: show e-mail address as well\n> \n>     This option shows the author's email address next to the name.\n> \n>     Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nplease switch around the column too so that the commit count comes \nfirst, this is way too ugly:\n\n Junio C Hamano: 4826\n Shawn O. Pearce: 1146\n Linus Torvalds: 950\n Johannes Schindelin: 497\n Eric Wong: 383\n Jakub Narebski: 317\n Simon Hausmann: 243\n Nicolas Pitre: 235\n\n\tIngo\n"},{"id":"62722","messageId":"20071211144351.GA15448@artemis.madism.org","threadId":"11174","inReplyTo":"20071211140508.GA12204@elte.hu","subject":"[PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Pierre Habouzit","fromEmail":"madcoder@debian.org","sentAt":"2007-12-11T14:43:51Z","receivedAt":"2007-12-11T14:43:51Z","isPatch":true,"sender":{"key":"madcoder@debian.org","avatar":"https://avatars.githubusercontent.com/u/44708?v=4"},"body":"Also make it `cut` friendly using a tab to separate the numbers and names.\n\nSigned-off-by: Pierre Habouzit <madcoder@debian.org>\n---\n\n    On Tue, Dec 11, 2007 at 02:05:08PM +0000, Ingo Molnar wrote:\n    > please switch around the column too so that the commit count comes \n    > first, this is way too ugly:\n    > \n    >  Junio C Hamano: 4826\n    >  Shawn O. Pearce: 1146\n    >  Linus Torvalds: 950\n    [...]\n\n    Agreed, here is the patch that does that, and a sample output is:\n\n        $ git shortlog -n -s -e HEAD -- builtin-commit.c\n            11\tJunio C Hamano <gitster@pobox.com>\n             6\tJohannes Schindelin <Johannes.Schindelin@gmx.de>\n             6\tKristian Høgsberg <krh@redhat.com>\n             2\tJeff King <peff@peff.net>\n             1\tAlex Riesen <raa.lkml@gmail.com>\n             1\tPierre Habouzit <madcoder@debian.org>\n             1\tShawn Bohrer <shawn.bohrer@gmail.com>\n             1\tWincent Colaiuta <win@wincent.com>\n\n\n builtin-shortlog.c |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/builtin-shortlog.c b/builtin-shortlog.c\nindex 13df0c6..90666cb 100644\n--- a/builtin-shortlog.c\n+++ b/builtin-shortlog.c\n@@ -265,7 +265,7 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)\n \t\tstruct path_list *onelines = list.items[i].util;\n \n \t\tif (summary) {\n-\t\t\tprintf(\"%s: %d\\n\", list.items[i].path, onelines->nr);\n+\t\t\tprintf(\"%6d\\t%s\\n\", onelines->nr, list.items[i].path);\n \t\t} else {\n \t\t\tprintf(\"%s (%d):\\n\", list.items[i].path, onelines->nr);\n \t\t\tfor (j = onelines->nr - 1; j >= 0; j--) {\n-- \n1.5.3.7.2226.g8312-dirty\n\n"},{"id":"62724","messageId":"20071211145709.GB19427@elte.hu","threadId":"11174","inReplyTo":"20071211144351.GA15448@artemis.madism.org","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-11T14:57:09Z","receivedAt":"2007-12-11T14:57:09Z","isPatch":true,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Pierre Habouzit <madcoder@debian.org> wrote:\n\n>     Agreed, here is the patch that does that, and a sample output is:\n> \n>         $ git shortlog -n -s -e HEAD -- builtin-commit.c\n>             11\tJunio C Hamano <gitster@pobox.com>\n>              6\tJohannes Schindelin <Johannes.Schindelin@gmx.de>\n>              6\tKristian Høgsberg <krh@redhat.com>\n>              2\tJeff King <peff@peff.net>\n>              1\tAlex Riesen <raa.lkml@gmail.com>\n>              1\tPierre Habouzit <madcoder@debian.org>\n>              1\tShawn Bohrer <shawn.bohrer@gmail.com>\n>              1\tWincent Colaiuta <win@wincent.com>\n\ngreat - this looks really neat!\n\nbtw., stupid question: why are the git-shortlog command line arguments \ndifferent from git-log? I got used to things like:\n\n  git-log kernel/\n\nso for me it would be natural to just do:\n\n  git-shortlog -n -s kernel/\n\nbut this currently produces this output:\n\n  $ git-shortlog -n -s kernel/\n  (reading log to summarize from standard input)\n\nwhich is quite a bit confusing to someone who'd like to keep as few \ndetails of command line arguments in his head as possible :-)\n\n\tIngo\n"},{"id":"62732","messageId":"20071211152412.GB15448@artemis.madism.org","threadId":"11174","inReplyTo":"20071211145709.GB19427@elte.hu","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Pierre Habouzit","fromEmail":"madcoder@debian.org","sentAt":"2007-12-11T15:24:12Z","receivedAt":"2007-12-11T15:24:12Z","isPatch":true,"sender":{"key":"madcoder@debian.org","avatar":"https://avatars.githubusercontent.com/u/44708?v=4"},"body":"On Tue, Dec 11, 2007 at 02:57:09PM +0000, Ingo Molnar wrote:\n> \n> * Pierre Habouzit <madcoder@debian.org> wrote:\n> \n> >     Agreed, here is the patch that does that, and a sample output is:\n> > \n> >         $ git shortlog -n -s -e HEAD -- builtin-commit.c\n> >             11\tJunio C Hamano <gitster@pobox.com>\n> >              6\tJohannes Schindelin <Johannes.Schindelin@gmx.de>\n> >              6\tKristian Høgsberg <krh@redhat.com>\n> >              2\tJeff King <peff@peff.net>\n> >              1\tAlex Riesen <raa.lkml@gmail.com>\n> >              1\tPierre Habouzit <madcoder@debian.org>\n> >              1\tShawn Bohrer <shawn.bohrer@gmail.com>\n> >              1\tWincent Colaiuta <win@wincent.com>\n> \n> great - this looks really neat!\n> \n> btw., stupid question: why are the git-shortlog command line arguments \n> different from git-log? I got used to things like:\n> \n>   git-log kernel/\n> \n> so for me it would be natural to just do:\n> \n>   git-shortlog -n -s kernel/\n> \n> but this currently produces this output:\n> \n>   $ git-shortlog -n -s kernel/\n>   (reading log to summarize from standard input)\n> \n> which is quite a bit confusing to someone who'd like to keep as few \n> details of command line arguments in his head as possible :-)\n\nBecause git-shortlog insists on you passing a reference first, HEAD is\nnot implicit if you pass something that looks like a path first. This is\narguably wrong. What you meant here is:\n\n$ git-shortlog -n -s HEAD kernel/\n\nThe reason IIRC is that git-shortlog once only read things on stdin, and\nthis keeps backward compatbility to `git-shortlog` without any\narguments.\n\nSometimes history hurts :) I don't think there is much we can do on a\nshort timescale. Maybe the old way can be slowly deprecated, and then\ngit-shortlog will be able to act like git-log.\n\n-- \n·O·  Pierre Habouzit\n··O                                                madcoder@debian.org\nOOO                                                http://www.madism.org\n"},{"id":"62734","messageId":"alpine.LFD.0.99999.0712111032530.555@xanadu.home","threadId":"11174","inReplyTo":"20071211152412.GB15448@artemis.madism.org","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Nicolas Pitre","fromEmail":"nico@cam.org","sentAt":"2007-12-11T15:34:01Z","receivedAt":"2007-12-11T15:34:01Z","isPatch":true,"sender":{"key":"nico@fluxnic.net","avatar":"https://avatars.githubusercontent.com/u/702790?v=4"},"body":"On Tue, 11 Dec 2007, Pierre Habouzit wrote:\n\n> On Tue, Dec 11, 2007 at 02:57:09PM +0000, Ingo Molnar wrote:\n> > \n> > * Pierre Habouzit <madcoder@debian.org> wrote:\n> > \n> > >     Agreed, here is the patch that does that, and a sample output is:\n> > > \n> > >         $ git shortlog -n -s -e HEAD -- builtin-commit.c\n> > >             11\tJunio C Hamano <gitster@pobox.com>\n> > >              6\tJohannes Schindelin <Johannes.Schindelin@gmx.de>\n> > >              6\tKristian Høgsberg <krh@redhat.com>\n> > >              2\tJeff King <peff@peff.net>\n> > >              1\tAlex Riesen <raa.lkml@gmail.com>\n> > >              1\tPierre Habouzit <madcoder@debian.org>\n> > >              1\tShawn Bohrer <shawn.bohrer@gmail.com>\n> > >              1\tWincent Colaiuta <win@wincent.com>\n> > \n> > great - this looks really neat!\n> > \n> > btw., stupid question: why are the git-shortlog command line arguments \n> > different from git-log? I got used to things like:\n> > \n> >   git-log kernel/\n> > \n> > so for me it would be natural to just do:\n> > \n> >   git-shortlog -n -s kernel/\n> > \n> > but this currently produces this output:\n> > \n> >   $ git-shortlog -n -s kernel/\n> >   (reading log to summarize from standard input)\n> > \n> > which is quite a bit confusing to someone who'd like to keep as few \n> > details of command line arguments in his head as possible :-)\n> \n> Because git-shortlog insists on you passing a reference first, HEAD is\n> not implicit if you pass something that looks like a path first. This is\n> arguably wrong. What you meant here is:\n> \n> $ git-shortlog -n -s HEAD kernel/\n> \n> The reason IIRC is that git-shortlog once only read things on stdin, and\n> this keeps backward compatbility to `git-shortlog` without any\n> arguments.\n> \n> Sometimes history hurts :) I don't think there is much we can do on a\n> short timescale. Maybe the old way can be slowly deprecated, and then\n> git-shortlog will be able to act like git-log.\n\nAt least, HEAD could be assumed by default when stdin is a tty.\n\n\nNicolas\n"},{"id":"62736","messageId":"20071211154841.GA29805@elte.hu","threadId":"11174","inReplyTo":"20071211152412.GB15448@artemis.madism.org","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-11T15:48:41Z","receivedAt":"2007-12-11T15:48:41Z","isPatch":true,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Pierre Habouzit <madcoder@debian.org> wrote:\n\n> > which is quite a bit confusing to someone who'd like to keep as few \n> > details of command line arguments in his head as possible :-)\n> \n> Because git-shortlog insists on you passing a reference first, HEAD is \n> not implicit if you pass something that looks like a path first. This \n> is arguably wrong. What you meant here is:\n> \n> $ git-shortlog -n -s HEAD kernel/\n> \n> The reason IIRC is that git-shortlog once only read things on stdin, \n> and this keeps backward compatbility to `git-shortlog` without any \n> arguments.\n> \n> Sometimes history hurts :) I don't think there is much we can do on a \n> short timescale. Maybe the old way can be slowly deprecated, and then \n> git-shortlog will be able to act like git-log.\n\nif we are growing legacies in git this fast it will turn itself into CVS \nvery quickly, give or take 20 years ;-) I think a straightforward usage \nmodel is paramount, so phasing out such inconsistencies as early as \npossible in the project's lifetime should be a priority IMHO. Git has a \nvery, very 'refreshing' approach to information management, and that \nshould permeate it all across. It's easy to be \"fresh\" in the beginning \nof a project - maintaining freshness for years is a lot harder. (i dont \nsuggest to break compatibility, but to be aware of such inconsitencies \nand make it a priority to get rid of them. It does not help that such \ninconsistencies are only apparent to git newbies.)\n\nanother thing i noticed that bites git newbies is that there are \ncommands that do not do the \"obvious\" thing (to a newbie) and there are \ncommands that just dont tell what they are doing. It would be very \nhelpful if git was just a little bit more verbose about what it does. \nI.e. use the standard output for ... actual output, and there will be an \ninstant and pleasant feedback loop between newbie and tool.\n\nIt should basically \"teach\" the user along the way about what is being \ndone, so that it quickly becomes an automatism. Especially where \nconcepts differ from legacy SCMs. When is the index updated, when do \nfiles get modified, how branching works, etc.\n\nfor example, if i type \"git-checkout\" in a Linux kernel tree, it just \nsits there for up to a minute, and \"does nothing\". That is totally \nwrong, human-interaction wise. Then after a minute it just returns. What \nhappened? Why? Where? A newbie would then try \"git-checkout -v\", using \nthe well-established \"verbose\" flag, but that gives:\n\n Usage: /usr/bin/git-checkout [-q] [-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]\n\nThat's what a newbie asks. We are trying to turn the world of SCM's \nupside down with git, and we should do that by teaching things gradually \nand by being very explicit what happens and why, when a command is typed \n;-)\n\ni could go on and on with other examples. (should I ? ;-)\n\nIt's small, little details like that and if we fix a few dozen of them \nit will do _wonders_ to user education, really. The best tools are the \nones that emit just about information to essentially give a tutorial to \nthe newbie about the philosophy and workings of the tool - without being \nannoying to advanced users. It flattens the learning curve and increases \nadoption rate enormously. It also helps people learn their way out of \nthe mental deformations that CVS causes ;-)\n\nAnd we could do this by adding a -q \"quiet\" flag, to restore the current \n'silent' behavior of git. I could then do this in my .bashrc:\n\n   alias git='git -q'\n\nto get the old, quiet behavior. This issue is pretty much the only \nconceptual advantage i can see of the competition like hg/mercurial ;-)\n\nOk, enough ranting for today i guess =B-)\n\n\tIngo\n"},{"id":"62737","messageId":"20071211160744.GE15448@artemis.madism.org","threadId":"11174","inReplyTo":"20071211154841.GA29805@elte.hu","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Pierre Habouzit","fromEmail":"madcoder@debian.org","sentAt":"2007-12-11T16:07:45Z","receivedAt":"2007-12-11T16:07:45Z","isPatch":true,"sender":{"key":"madcoder@debian.org","avatar":"https://avatars.githubusercontent.com/u/44708?v=4"},"body":"On Tue, Dec 11, 2007 at 03:48:41PM +0000, Ingo Molnar wrote:\n> if we are growing legacies in git this fast it will turn itself into CVS \n> very quickly, give or take 20 years ;-) I think a straightforward usage \n> model is paramount, so phasing out such inconsistencies as early as \n> possible in the project's lifetime should be a priority IMHO. Git has a \n> very, very 'refreshing' approach to information management, and that \n> should permeate it all across. It's easy to be \"fresh\" in the beginning \n> of a project - maintaining freshness for years is a lot harder. (i dont \n> suggest to break compatibility, but to be aware of such inconsitencies \n> and make it a priority to get rid of them. It does not help that such \n> inconsistencies are only apparent to git newbies.)\n\n  Well that's what deprecation is for, but you cannot do that on short\ntimeframes.\n\n> for example, if i type \"git-checkout\" in a Linux kernel tree, it just \n> sits there for up to a minute, and \"does nothing\". That is totally \n> wrong, human-interaction wise. Then after a minute it just returns. What \n> happened? Why? Where? A newbie would then try \"git-checkout -v\", using \n> the well-established \"verbose\" flag, but that gives:\n> \n>  Usage: /usr/bin/git-checkout [-q] [-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]\n\nnot anymore:\n\n    $ git checkout -v\n    error: unknown switch `v'\n    usage: git-branch [options] [<branch>] [<paths>...]\n\n\t-b ...                create a new branch started at <branch>\n\t-l                    create the new branchs reflog\n\t--track               tells if the new branch should track the remote branch\n\t-f                    proceed even if the index or working tree is not HEAD\n\t-m                    performa  three-way merge on local modifications if needed\n\t-q, --quiet           be quiet\n\nNot all commands are migrated to this new scheme though.\n\nThe next git has a _lot_ of things done better wrt UI and such issues.\nThough some backward incompatible changes must be introduced with the\nproper deprecation warnings, so that people can adapt.\n\n-- \n·O·  Pierre Habouzit\n··O                                                madcoder@debian.org\nOOO                                                http://www.madism.org\n"},{"id":"62739","messageId":"20071211161104.GG15448@artemis.madism.org","threadId":"11174","inReplyTo":"20071211160744.GE15448@artemis.madism.org","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Pierre Habouzit","fromEmail":"madcoder@debian.org","sentAt":"2007-12-11T16:11:04Z","receivedAt":"2007-12-11T16:11:04Z","isPatch":true,"sender":{"key":"madcoder@debian.org","avatar":"https://avatars.githubusercontent.com/u/44708?v=4"},"body":"On Tue, Dec 11, 2007 at 04:07:45PM +0000, Pierre Habouzit wrote:\n> On Tue, Dec 11, 2007 at 03:48:41PM +0000, Ingo Molnar wrote:\n> > if we are growing legacies in git this fast it will turn itself into CVS \n> > very quickly, give or take 20 years ;-) I think a straightforward usage \n> > model is paramount, so phasing out such inconsistencies as early as \n> > possible in the project's lifetime should be a priority IMHO. Git has a \n> > very, very 'refreshing' approach to information management, and that \n> > should permeate it all across. It's easy to be \"fresh\" in the beginning \n> > of a project - maintaining freshness for years is a lot harder. (i dont \n> > suggest to break compatibility, but to be aware of such inconsitencies \n> > and make it a priority to get rid of them. It does not help that such \n> > inconsistencies are only apparent to git newbies.)\n> \n>   Well that's what deprecation is for, but you cannot do that on short\n> timeframes.\n> \n> > for example, if i type \"git-checkout\" in a Linux kernel tree, it just \n> > sits there for up to a minute, and \"does nothing\". That is totally \n> > wrong, human-interaction wise. Then after a minute it just returns. What \n> > happened? Why? Where? A newbie would then try \"git-checkout -v\", using \n> > the well-established \"verbose\" flag, but that gives:\n> > \n> >  Usage: /usr/bin/git-checkout [-q] [-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]\n> \n> not anymore:\n> \n>     $ git checkout -v\n>     error: unknown switch `v'\n>     usage: git-branch [options] [<branch>] [<paths>...]\n                 ^^^^^^\n  okay I felt stupid while reading this on list, a patch fixing this\n  stupid lapsus has just been sent. Doh.\n\n-- \n·O·  Pierre Habouzit\n··O                                                madcoder@debian.org\nOOO                                                http://www.madism.org\n"},{"id":"62755","messageId":"7vzlwhdsgk.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071211144351.GA15448@artemis.madism.org","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-11T17:58:03Z","receivedAt":"2007-12-11T17:58:03Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Pierre Habouzit <madcoder@debian.org> writes:\n\n> Also make it `cut` friendly using a tab to separate the numbers and names.\n>\n> Signed-off-by: Pierre Habouzit <madcoder@debian.org>\n> ---\n>\n>     On Tue, Dec 11, 2007 at 02:05:08PM +0000, Ingo Molnar wrote:\n>     > please switch around the column too so that the commit count comes \n>     > first, this is way too ugly:\n>     > \n>     >  Junio C Hamano: 4826\n>     >  Shawn O. Pearce: 1146\n>     >  Linus Torvalds: 950\n>     [...]\n>\n>     Agreed, here is the patch that does that, and a sample output is:\n>\n>         $ git shortlog -n -s -e HEAD -- builtin-commit.c\n>             11\tJunio C Hamano <gitster@pobox.com>\n>              6\tJohannes Schindelin <Johannes.Schindelin@gmx.de>\n>              6\tKristian Høgsberg <krh@redhat.com>\n>              2\tJeff King <peff@peff.net>\n>              1\tAlex Riesen <raa.lkml@gmail.com>\n\nThanks.  Looks good.\n"},{"id":"62757","messageId":"7vr6htdry7.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"alpine.LFD.0.99999.0712111032530.555@xanadu.home","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-11T18:09:04Z","receivedAt":"2007-12-11T18:09:04Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nicolas Pitre <nico@cam.org> writes:\n\n> On Tue, 11 Dec 2007, Pierre Habouzit wrote:\n> ...\n>> Sometimes history hurts :) I don't think there is much we can do on a\n>> short timescale. Maybe the old way can be slowly deprecated, and then\n>> git-shortlog will be able to act like git-log.\n>\n> At least, HEAD could be assumed by default when stdin is a tty.\n\nI'd say I agree.\n\n-- >8 --\nshortlog: default ot HEAD when standard input is a tty\n\nInstead of warning the user that it is expecting git log output from the\nstandard input (and instructing to type the log from the keyboard),\ndefault to traverse from HEAD when there is no rev parameter given.\n\nThis factors out a useful helper \"add_head()\" from builtin-diff.c to a\nmore appropriate place revision.c while renaming it to more descriptive\nname add_head_to_pending(), as that is what the function is about.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n\n builtin-shortlog.c |    5 +++--\n builtin-diff.c     |   14 +-------------\n builtin-log.c      |    5 +----\n revision.c         |   12 ++++++++++++\n revision.h         |    2 ++\n 5 files changed, 19 insertions(+), 19 deletions(-)\n\ndiff --git a/builtin-shortlog.c b/builtin-shortlog.c\nindex 90666cb..3d8d709 100644\n--- a/builtin-shortlog.c\n+++ b/builtin-shortlog.c\n@@ -249,9 +249,10 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)\n \n \tread_mailmap(&mailmap, \".mailmap\", &common_repo_prefix);\n \n+\t/* assume HEAD if from a tty */\n+\tif (!rev.pending.nr && isatty(0))\n+\t\tadd_head_to_pending(&rev);\n \tif (rev.pending.nr == 0) {\n-\t\tif (isatty(0))\n-\t\t\tfprintf(stderr, \"(reading log to summarize from standard input)\\n\");\n \t\tread_from_stdin(&list);\n \t}\n \telse\ndiff --git a/builtin-diff.c b/builtin-diff.c\nindex 1b61599..55fb84c 100644\n--- a/builtin-diff.c\n+++ b/builtin-diff.c\n@@ -176,18 +176,6 @@ static int builtin_diff_combined(struct rev_info *revs,\n \treturn 0;\n }\n \n-void add_head(struct rev_info *revs)\n-{\n-\tunsigned char sha1[20];\n-\tstruct object *obj;\n-\tif (get_sha1(\"HEAD\", sha1))\n-\t\treturn;\n-\tobj = parse_object(sha1);\n-\tif (!obj)\n-\t\treturn;\n-\tadd_pending_object(revs, obj, \"HEAD\");\n-}\n-\n static void refresh_index_quietly(void)\n {\n \tstruct lock_file *lock_file;\n@@ -272,7 +260,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix)\n \t\t\tif (!strcmp(arg, \"--\"))\n \t\t\t\tbreak;\n \t\t\telse if (!strcmp(arg, \"--cached\")) {\n-\t\t\t\tadd_head(&rev);\n+\t\t\t\tadd_head_to_pending(&rev);\n \t\t\t\tif (!rev.pending.nr)\n \t\t\t\t\tdie(\"No HEAD commit to compare with (yet)\");\n \t\t\t\tbreak;\ndiff --git a/builtin-log.c b/builtin-log.c\nindex e1f1cf6..d375c9d 100644\n--- a/builtin-log.c\n+++ b/builtin-log.c\n@@ -18,9 +18,6 @@\n static int default_show_root = 1;\n static const char *fmt_patch_subject_prefix = \"PATCH\";\n \n-/* this is in builtin-diff.c */\n-void add_head(struct rev_info *revs);\n-\n static void add_name_decoration(const char *prefix, const char *name, struct object *obj)\n {\n \tint plen = strlen(prefix);\n@@ -746,7 +743,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)\n \t\t\t * does not have.\n \t\t\t */\n \t\t\trev.pending.objects[0].item->flags |= UNINTERESTING;\n-\t\t\tadd_head(&rev);\n+\t\t\tadd_head_to_pending(&rev);\n \t\t}\n \t\t/*\n \t\t * Otherwise, it is \"format-patch -22 HEAD\", and/or\ndiff --git a/revision.c b/revision.c\nindex 2a59035..7e2f4f1 100644\n--- a/revision.c\n+++ b/revision.c\n@@ -139,6 +139,18 @@ void add_pending_object(struct rev_info *revs, struct object *obj, const char *n\n \tadd_pending_object_with_mode(revs, obj, name, S_IFINVALID);\n }\n \n+void add_head_to_pending(struct rev_info *revs)\n+{\n+\tunsigned char sha1[20];\n+\tstruct object *obj;\n+\tif (get_sha1(\"HEAD\", sha1))\n+\t\treturn;\n+\tobj = parse_object(sha1);\n+\tif (!obj)\n+\t\treturn;\n+\tadd_pending_object(revs, obj, \"HEAD\");\n+}\n+\n static struct object *get_reference(struct rev_info *revs, const char *name, const unsigned char *sha1, unsigned int flags)\n {\n \tstruct object *object;\ndiff --git a/revision.h b/revision.h\nindex 992e1e9..8572315 100644\n--- a/revision.h\n+++ b/revision.h\n@@ -130,6 +130,8 @@ extern void add_object(struct object *obj,\n \n extern void add_pending_object(struct rev_info *revs, struct object *obj, const char *name);\n \n+extern void add_head_to_pending(struct rev_info *);\n+\n enum commit_action {\n \tcommit_ignore,\n \tcommit_show,\n"},{"id":"62802","messageId":"20071211211341.GB6902@elte.hu","threadId":"11174","inReplyTo":"20071211160744.GE15448@artemis.madism.org","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-11T21:13:41Z","receivedAt":"2007-12-11T21:13:41Z","isPatch":true,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Pierre Habouzit <madcoder@debian.org> wrote:\n\n> > for example, if i type \"git-checkout\" in a Linux kernel tree, it \n> > just sits there for up to a minute, and \"does nothing\". That is \n> > totally wrong, human-interaction wise. Then after a minute it just \n> > returns. What happened? Why? Where? A newbie would then try \n> > \"git-checkout -v\", using the well-established \"verbose\" flag, but \n> > that gives:\n> > \n> >  Usage: /usr/bin/git-checkout [-q] [-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]\n> \n> not anymore:\n> \n>     $ git checkout -v\n>     error: unknown switch `v'\n>     usage: git-branch [options] [<branch>] [<paths>...]\n> \n> \t-b ...                create a new branch started at <branch>\n> \t-l                    create the new branchs reflog\n> \t--track               tells if the new branch should track the remote branch\n> \t-f                    proceed even if the index or working tree is not HEAD\n> \t-m                    performa  three-way merge on local modifications if needed\n> \t-q, --quiet           be quiet\n> \n> Not all commands are migrated to this new scheme though.\n> \n> The next git has a _lot_ of things done better wrt UI and such issues. \n> Though some backward incompatible changes must be introduced with the \n> proper deprecation warnings, so that people can adapt.\n\nhey, cool! Just when i decide to complain about it, after 2 years of \nsuffering, it's already fixed in the devel branch =;-) I'll post \nsuggestions once i have tried out the next version. I'm happy that the \ngit \"first impression\" that new users are getting (and the many pitfalls \nthat they can fall into) is being actively reviewed and improved. It's i \nthink the main barrier for git world dominance :-)\n\n\tIngo\n"},{"id":"62819","messageId":"7vlk80dga6.fsf@gitster.siamese.dyndns.org","threadId":"11174","inReplyTo":"20071211211341.GB6902@elte.hu","subject":"Re: [PATCH] Invert numbers and names in the git-shortlog summary mode.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-11T22:21:05Z","receivedAt":"2007-12-11T22:21:05Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ingo Molnar <mingo@elte.hu> writes:\n\n> * Pierre Habouzit <madcoder@debian.org> wrote:\n>\n>> The next git has a _lot_ of things done better wrt UI and such issues. \n>> Though some backward incompatible changes must be introduced with the \n>> proper deprecation warnings, so that people can adapt.\n>\n> hey, cool! Just when i decide to complain about it, after 2 years of \n> suffering, it's already fixed in the devel branch =;-)\n\nHeh, as I saw you post \"diff --git\" patches to the kernel mailing list\nand heard nothing from you for the last two years here, I naturally\nassumed you were one of the many people who were perfectly happy with\ngit.\n\nPlease direct more complaints to this list, not to the kernel list nor\nelsewhere ;-).\n"},{"id":"62885","messageId":"20071212094326.GF18018@elte.hu","threadId":"11174","inReplyTo":"200712090633.36086.chriscool@tuxfamily.org","subject":"Re: git-bisect run make -j64 kernel/ (was Re: git-bisect feature suggestion: \"git-bisect diff\")","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2007-12-12T09:43:26Z","receivedAt":"2007-12-12T09:43:26Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Christian Couder <chriscool@tuxfamily.org> wrote:\n\n> Le samedi 8 décembre 2007, Ingo Molnar a écrit :\n> > Currently, in the Linux kernel, if i do this:\n> >\n> >  $ git-bisect run make -j64 kernel/\n> >\n> > it fails with:\n> >\n> >  running make -j64 kernel/\n> >    CHK     include/linux/version.h\n> >    CHK     include/linux/utsrelease.h\n> >    CALL    scripts/checksyscalls.sh\n> >  bisect run failed:\n> >  bisect_good exited with error code 1\n> >\n> > although the command \"make -j64 kernel/\" returns with 0.\n> >\n> > i have to write a script around \"make -j64 kernel/\" to get this to work\n> > - it would be nice to have this \"out of box\".\n> \n> It seems to work for me. After creating a .config, I did:\n> \n> $ git bisect good v2.6.23\n> $ git bisect bad HEAD\n> $ git bisect run make -j64 kernel/\n> \n> Then I had to answer some configuration questions (I hit <enter>  everytime) \n> but it run fine.\n> \n> My git version is:\n> \n> git version 1.5.3.7.2200.g9275-dirty\n\ni've got: git-core-1.5.3.6-1.fc8, so it's fairly recent. I'll try this \nlater and come back to you if there's still a problem.\n\n\tIngo\n"}]}