{"thread":{"id":"29961","subject":"[PATCH] rebase -i: inform the user they can re-order commits","startedAt":"2012-03-16T10:21:46Z","lastAt":"2012-03-21T10:34:15Z","messageCount":15,"participants":["Nelson Benitez Leon","Matthieu Moy","Junio C Hamano","Jakub Narebski","Philip Oakley"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"187081","messageId":"vpqlin0n8w5.fsf@bauges.imag.fr","threadId":"29961","inReplyTo":"4F63205A.6000202@seap.minhap.es","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2012-03-16T10:21:46Z","receivedAt":"2012-03-16T10:21:46Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n\n> +# You can re-order the commit lines to affect the order on which\n> +# the commits will be applied.\n\nThat's probably the main use of \"rebase -i\", so it deserves a mention,\nyes.\n\nMaybe shorten it to one line like\n\n  You can re-order the lines to change the order of commits in history.\n\n(BTW, is it not 'order in which', not '_on_ which'?)\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"187080","messageId":"4F63205A.6000202@seap.minhap.es","threadId":"29961","inReplyTo":null,"subject":"[PATCH] rebase -i: inform the user they can re-order commits","fromName":"Nelson Benitez Leon","fromEmail":"nelsonjesus.benitez@seap.minhap.es","sentAt":"2012-03-16T11:13:30Z","receivedAt":"2012-03-16T11:13:30Z","isPatch":true,"sender":{"key":"nelsonjesus.benitez@seap.minhap.es","avatar":null},"body":"Same as they are informed of what the different commands\ndo and that they can remove commits.\n---\nHi, I was using git rebase -i for some time now and never\noccured to me I could reorder the commit lines to affect\nthe order the commits are applied, learnt that recently \nfrom a git tutorial, I must admit I have now checked the \nman page and it's well explained, but remarking that on\nthe user-input screen is an useful addition imo.\n\n git-rebase--interactive.sh |    2 ++\n 1 files changed, 2 insertions(+), 0 deletions(-)\n\ndiff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh\nindex 5812222..acf1f5c 100644\n--- a/git-rebase--interactive.sh\n+++ b/git-rebase--interactive.sh\n@@ -846,6 +846,8 @@ cat >> \"$todo\" << EOF\n #  f, fixup = like \"squash\", but discard this commit's log message\n #  x, exec = run command (the rest of the line) using shell\n #\n+# You can re-order the commit lines to affect the order on which\n+# the commits will be applied.\n # If you remove a line here THAT COMMIT WILL BE LOST.\n # However, if you remove everything, the rebase will be aborted.\n #\n-- \n1.7.7.6\n"},{"id":"187082","messageId":"4F632543.50402@seap.minhap.es","threadId":"29961","inReplyTo":"vpqlin0n8w5.fsf@bauges.imag.fr","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Nelson Benitez Leon","fromEmail":"nelsonjesus.benitez@seap.minhap.es","sentAt":"2012-03-16T11:34:27Z","receivedAt":"2012-03-16T11:34:27Z","isPatch":true,"sender":{"key":"nelsonjesus.benitez@seap.minhap.es","avatar":null},"body":"On 03/16/2012 11:21 AM, Matthieu Moy wrote:\n> Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n> \n>> +# You can re-order the commit lines to affect the order on which\n>> +# the commits will be applied.\n> \n> That's probably the main use of \"rebase -i\", so it deserves a mention,\n> yes.\n> \n> Maybe shorten it to one line like\n> \n>   You can re-order the lines to change the order of commits in history.\n\nI like it but the word 'history' seems a bit too technical for me, and may\nscare the normal user,, what about:\n\nYou can re-order the lines to change the order the commits are applied.\n\n> (BTW, is it not 'order in which', not '_on_ which'?)\n> \n\nMay be, non-native english speaker here..\n"},{"id":"187085","messageId":"vpq7gyklq3i.fsf@bauges.imag.fr","threadId":"29961","inReplyTo":"4F632543.50402@seap.minhap.es","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2012-03-16T11:53:05Z","receivedAt":"2012-03-16T11:53:05Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n\n>>   You can re-order the lines to change the order of commits in history.\n>\n> I like it but the word 'history' seems a bit too technical for me, and may\n> scare the normal user,, what about:\n>\n> You can re-order the lines to change the order the commits are applied.\n\nPerfect. \"are applied\" says more than my \"in history\", since rebase -i\nis all about various ways to apply commits.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"187088","messageId":"7vty1oivub.fsf@alter.siamese.dyndns.org","threadId":"29961","inReplyTo":"vpqlin0n8w5.fsf@bauges.imag.fr","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-03-16T12:17:16Z","receivedAt":"2012-03-16T12:17:16Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n\n> Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n>\n>> +# You can re-order the commit lines to affect the order on which\n>> +# the commits will be applied.\n>\n> That's probably the main use of \"rebase -i\", so it deserves a mention,\n> yes.\n\nErm, read in isolation by people like you who _know_ what the command\ndoes, the addition might look sensible, but I find that line of thinking\nsomewhat disturbing in the first place.\n\nThese are meant to be a short _reminder_ for people who _learned_ how the\ncommand they already _know_ is spelled.\n\nIf the user does not even know that one of the primary use of the command\nis to reorder, isn't he playing with fire?\n\nIf we come up with a politely worded message that makes the user realize\nthat the user does not know what he is doing and gently nudges the user to\nread the documentation before continuing to potentially harm himself, that\nwould be a good addition, but...\n\nSo, I dunno.\n"},{"id":"187090","messageId":"m3pqccllbt.fsf@localhost.localdomain","threadId":"29961","inReplyTo":"vpq7gyklq3i.fsf@bauges.imag.fr","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-03-16T13:36:04Z","receivedAt":"2012-03-16T13:36:04Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n> Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n> \n> > >   You can re-order the lines to change the order of commits in history.\n> >\n> > I like it but the word 'history' seems a bit too technical for me, and may\n> > scare the normal user,, what about:\n> >\n> > You can re-order the lines to change the order the commits are applied.\n> \n> Perfect. \"are applied\" says more than my \"in history\", since rebase -i\n> is all about various ways to apply commits.\n\nNitpick: shouldn't it be s/the commits/commits/\n\n    You can re-order the lines to change the order commits are applied.\n\n-- \nJakub Narebski\n"},{"id":"187093","messageId":"vpqaa3geiso.fsf@bauges.imag.fr","threadId":"29961","inReplyTo":"4F63571D.4070405@seap.minhap.es","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2012-03-16T14:12:39Z","receivedAt":"2012-03-16T14:12:39Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n\n> On 03/16/2012 01:17 PM, Junio C Hamano wrote:\n>> If the user does not even know that one of the primary use of the command\n>> is to reorder, isn't he playing with fire?\n>\n> In an ideal world everybody should study the manpages and documentation of\n> a program prior to using it, unfortunately most people often start with an\n> easy-to-follow tutorial where there are commands to type in, the user\n> will type them (confident in the tutorial reputation) and try to learn along\n> the way, in this case giving the user more indications about what he can \n> do in any moment is, in my opinion, a good thing (as git already does). \n\nThe case of \"rebase\" is a bit different, since \"rebase\" is potentially\ndangerous.\n\nBut if the user sees the help message of \"rebase -i\", then I don't think\nwe will stop him from breaking anything by not mentionning that\nreordering commits can work. We already give other commands that rewrite\nhistory with more or less danger, so the additional messages isn't\nreally harmful.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"187094","messageId":"7vpqccipuv.fsf@alter.siamese.dyndns.org","threadId":"29961","inReplyTo":"vpqaa3geiso.fsf@bauges.imag.fr","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-03-16T14:26:32Z","receivedAt":"2012-03-16T14:26:32Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n\n> But if the user sees the help message of \"rebase -i\", then I don't think\n> we will stop him from breaking anything by not mentionning that\n> reordering commits can work. We already give other commands that rewrite\n> history with more or less danger, so the additional messages isn't\n> really harmful.\n\nI was not questioning that \"You can also reorder\" is dangerous in any way.\n\nWhat is dangerous is to give an illusion that it is safe to use \"rebase\n-i\" without reading a decent documentation that does not even say that\nreordering is one of the primary purpose of the command, and the mindset\nthat it is OK to give such an illusion with these reminder lines.\n"},{"id":"187095","messageId":"vpq3998ehp3.fsf@bauges.imag.fr","threadId":"29961","inReplyTo":"7vpqccipuv.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2012-03-16T14:36:24Z","receivedAt":"2012-03-16T14:36:24Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n>\n>> But if the user sees the help message of \"rebase -i\", then I don't think\n>> we will stop him from breaking anything by not mentionning that\n>> reordering commits can work. We already give other commands that rewrite\n>> history with more or less danger, so the additional messages isn't\n>> really harmful.\n>\n> I was not questioning that \"You can also reorder\" is dangerous in any way.\n>\n> What is dangerous is to give an illusion that it is safe to use \"rebase\n> -i\" without reading a decent documentation that does not even say that\n> reordering is one of the primary purpose of the command, and the mindset\n> that it is OK to give such an illusion with these reminder lines.\n\nYes, but my point is that you can already do that. Nelson just gave an\nexample when explaining how he came out with this patch.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"187096","messageId":"7vlin0ip9l.fsf@alter.siamese.dyndns.org","threadId":"29961","inReplyTo":"7vpqccipuv.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-03-16T14:39:18Z","receivedAt":"2012-03-16T14:39:18Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n>\n>> But if the user sees the help message of \"rebase -i\", then I don't think\n>> we will stop him from breaking anything by not mentionning that\n>> reordering commits can work. We already give other commands that rewrite\n>> history with more or less danger, so the additional messages isn't\n>> really harmful.\n>\n> I was not questioning that \"You can also reorder\" is dangerous in any way.\n>\n> What is dangerous is to give an illusion that it is safe to use \"rebase\n> -i\" without reading a decent documentation that does not even say that\n> reordering is one of the primary purpose of the command, and the mindset\n> that it is OK to give such an illusion with these reminder lines.\n\nAnother reason we may not want to say \"you can re-order\" is that we will\nprobably need to say that you cannot arbitrarily re-order (can s/f come at\nthe beginning?) unless you want to actively harm the user. Once we go down\nthat path, we would end up repeating the manual.\n\nHaving said that, I do not personally care about this too deeply.  Let's\nqueue a reworded Nelson's patch so it is not lost while waiting for others\nto chime in.\n\nHow about this?  I avoided phrases \"applying commit\" (incorrect: you apply\npatches, and you replay or cherry-pick commits) and \"history\" (to people\nwho know, it is redundant; to people who don't, it is vague mystery), but\nadded one more useful reminder (top to bottom).\n\n git-rebase--interactive.sh |    2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh\nindex 5812222..fd04c8f 100644\n--- a/git-rebase--interactive.sh\n+++ b/git-rebase--interactive.sh\n@@ -846,6 +846,8 @@ cat >> \"$todo\" << EOF\n #  f, fixup = like \"squash\", but discard this commit's log message\n #  x, exec = run command (the rest of the line) using shell\n #\n+# These lines can be re-ordered; they are executed from top to bottom.\n+# \n # If you remove a line here THAT COMMIT WILL BE LOST.\n # However, if you remove everything, the rebase will be aborted.\n #\n"},{"id":"187097","messageId":"7vhaxoioxw.fsf@alter.siamese.dyndns.org","threadId":"29961","inReplyTo":"vpq3998ehp3.fsf@bauges.imag.fr","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-03-16T14:46:19Z","receivedAt":"2012-03-16T14:46:19Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n>>\n>>> But if the user sees the help message of \"rebase -i\", then I don't think\n>>> we will stop him from breaking anything by not mentionning that\n>>> reordering commits can work. We already give other commands that rewrite\n>>> history with more or less danger, so the additional messages isn't\n>>> really harmful.\n>>\n>> I was not questioning that \"You can also reorder\" is dangerous in any way.\n>>\n>> What is dangerous is to give an illusion that it is safe to use \"rebase\n>> -i\" without reading a decent documentation that does not even say that\n>> reordering is one of the primary purpose of the command, and the mindset\n>> that it is OK to give such an illusion with these reminder lines.\n>\n> Yes, but my point is that you can already do that. Nelson just gave an\n> example when explaining how he came out with this patch.\n\nYes, I know that.\n\nAnd a patch like this will _encourage_ the users to follow that path even\nmore. Is it a good thing?  That is what I was questioning.\n"},{"id":"187092","messageId":"4F63571D.4070405@seap.minhap.es","threadId":"29961","inReplyTo":"7vty1oivub.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Nelson Benitez Leon","fromEmail":"nelsonjesus.benitez@seap.minhap.es","sentAt":"2012-03-16T15:07:09Z","receivedAt":"2012-03-16T15:07:09Z","isPatch":true,"sender":{"key":"nelsonjesus.benitez@seap.minhap.es","avatar":null},"body":"On 03/16/2012 01:17 PM, Junio C Hamano wrote:\n> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:\n> \n>> Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n>>\n>>> +# You can re-order the commit lines to affect the order on which\n>>> +# the commits will be applied.\n>>\n>> That's probably the main use of \"rebase -i\", so it deserves a mention,\n>> yes.\n> \n> Erm, read in isolation by people like you who _know_ what the command\n> does, the addition might look sensible, but I find that line of thinking\n> somewhat disturbing in the first place.\n> \n> These are meant to be a short _reminder_ for people who _learned_ how the\n> command they already _know_ is spelled.\n> \n> If the user does not even know that one of the primary use of the command\n> is to reorder, isn't he playing with fire?\n\nIn an ideal world everybody should study the manpages and documentation of\na program prior to using it, unfortunately most people often start with an\neasy-to-follow tutorial where there are commands to type in, the user\nwill type them (confident in the tutorial reputation) and try to learn along\nthe way, in this case giving the user more indications about what he can \ndo in any moment is, in my opinion, a good thing (as git already does). \n\n\n> If we come up with a politely worded message that makes the user realize\n> that the user does not know what he is doing and gently nudges the user to\n> read the documentation before continuing to potentially harm himself, that\n> would be a good addition, but...\n> \n> So, I dunno.\n"},{"id":"187366","messageId":"7vobrq50su.fsf@alter.siamese.dyndns.org","threadId":"29961","inReplyTo":"7vlin0ip9l.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-03-20T23:07:29Z","receivedAt":"2012-03-20T23:07:29Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Having said that, I do not personally care about this too deeply.  Let's\n> queue a reworded Nelson's patch so it is not lost while waiting for others\n> to chime in.\n>\n> How about this?  I avoided phrases \"applying commit\" (incorrect: you apply\n> patches, and you replay or cherry-pick commits) and \"history\" (to people\n> who know, it is redundant; to people who don't, it is vague mystery), but\n> added one more useful reminder (top to bottom).\n\nI didn't hear anything from anybody on this one, so I take it that nobody\ndeeply cares either way.\n\nI'll queue this to 'next' so that we can start the post-1.7.10 cycle with\nthis patch.\n\n-- >8 --\nSubject: [PATCH] rebase -i: remind that the lines are top-to-bottom\n\nNelson Benitez Leon opened a discussion with a patch with this in the\nnote:\n\n    Hi, I was using git rebase -i for some time now and never occured to\n    me I could reorder the commit lines to affect the order the commits\n    are applied, learnt that recently from a git tutorial.\n\nNelson's patch was to stress the fact that the lines in the insn sheet can\nbe re-ordered in a much more verbose way.  Let's add a one-liner reminder\nand also remind that the lines in the insn sheet is read from top to\nbottom, unlike the \"git log\" output.\n\nDiscussion-triggered-by: Nelson Benitez Leon\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n git-rebase--interactive.sh |    2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh\nindex 5812222..2b7eb6d 100644\n--- a/git-rebase--interactive.sh\n+++ b/git-rebase--interactive.sh\n@@ -846,6 +846,8 @@ cat >> \"$todo\" << EOF\n #  f, fixup = like \"squash\", but discard this commit's log message\n #  x, exec = run command (the rest of the line) using shell\n #\n+# These lines can be re-ordered; they are executed from top to bottom.\n+#\n # If you remove a line here THAT COMMIT WILL BE LOST.\n # However, if you remove everything, the rebase will be aborted.\n #\n-- \n1.7.10.rc1.63.g3c4e6\n"},{"id":"187377","messageId":"vpq7gyee4x7.fsf@bauges.imag.fr","threadId":"29961","inReplyTo":"7vobrq50su.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2012-03-21T08:25:56Z","receivedAt":"2012-03-21T08:25:56Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> --- a/git-rebase--interactive.sh\n> +++ b/git-rebase--interactive.sh\n> @@ -846,6 +846,8 @@ cat >> \"$todo\" << EOF\n>  #  f, fixup = like \"squash\", but discard this commit's log message\n>  #  x, exec = run command (the rest of the line) using shell\n>  #\n> +# These lines can be re-ordered; they are executed from top to bottom.\n> +#\n\nGreat, it says everything that needs to be said, in just a line!\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"187382","messageId":"4ED2974882CF442CB1A79A12057F94EE@PhilipOakley","threadId":"29961","inReplyTo":"vpq7gyee4x7.fsf@bauges.imag.fr","subject":"Re: [PATCH] rebase -i: inform the user they can re-order commits","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.org","sentAt":null,"receivedAt":"2012-03-21T10:34:15Z","isPatch":true,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"From: \"Matthieu Moy\" <Matthieu.Moy@grenoble-inp.fr> Sent: Wednesday, March \n21, 2012 8:25 AM\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> --- a/git-rebase--interactive.sh\n>> +++ b/git-rebase--interactive.sh\n>> @@ -846,6 +846,8 @@ cat >> \"$todo\" << EOF\n>>  #  f, fixup = like \"squash\", but discard this commit's log message\n>>  #  x, exec = run command (the rest of the line) using shell\n>>  #\n>> +# These lines can be re-ordered; they are executed from top to bottom.\n>> +#\n>\n> Great, it says everything that needs to be said, in just a line!\n>\n> -- \n> Matthieu Moy\n> http://www-verimag.imag.fr/~moy/\n> --\n\nI agree. It says all that needs to be made clear.\nPhilip Oakley \n"}]}