{"thread":{"id":"39838","subject":"[PATCH] completion: Add '--edit-todo' to rebase","startedAt":"2015-07-13T11:27:56Z","lastAt":"2015-08-05T13:40:00Z","messageCount":9,"participants":["Thomas Braun","John Keeping","SZEDER Gábor"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"266081","messageId":"1436786876.6619.0.camel@virtuell-zuhause.de","threadId":"39838","inReplyTo":null,"subject":"[PATCH] completion: Add '--edit-todo' to rebase","fromName":"Thomas Braun","fromEmail":"thomas.braun@virtuell-zuhause.de","sentAt":"2015-07-13T11:27:56Z","receivedAt":"2015-07-13T11:27:56Z","isPatch":true,"sender":{"key":"thomas.braun@virtuell-zuhause.de","avatar":"https://avatars.githubusercontent.com/u/1185677?v=4"},"body":"Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n---\n contrib/completion/git-completion.bash | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\nindex c97c648..2567a61 100644\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -1668,7 +1668,7 @@ _git_rebase ()\n {\n \tlocal dir=\"$(__gitdir)\"\n \tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n-\t\t__gitcomp \"--continue --skip --abort\"\n+\t\t__gitcomp \"--continue --skip --abort --edit-todo\"\n \t\treturn\n \tfi\n \t__git_complete_strategy && return\n"},{"id":"266084","messageId":"20150713131107.GC1451@serenity.lan","threadId":"39838","inReplyTo":"1436786876.6619.0.camel@virtuell-zuhause.de","subject":"Re: [PATCH] completion: Add '--edit-todo' to rebase","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2015-07-13T13:11:07Z","receivedAt":"2015-07-13T13:11:07Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Mon, Jul 13, 2015 at 01:27:56PM +0200, Thomas Braun wrote:\n> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n> ---\n>  contrib/completion/git-completion.bash | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\n> index c97c648..2567a61 100644\n> --- a/contrib/completion/git-completion.bash\n> +++ b/contrib/completion/git-completion.bash\n> @@ -1668,7 +1668,7 @@ _git_rebase ()\n>  {\n>  \tlocal dir=\"$(__gitdir)\"\n>  \tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n> -\t\t__gitcomp \"--continue --skip --abort\"\n> +\t\t__gitcomp \"--continue --skip --abort --edit-todo\"\n\ngit-rebase.sh contains:\n\n\tif test \"$action\" = \"edit-todo\" && test \"$type\" != \"interactive\"\n\tthen\n\t\tdie \"$(gettext \"The --edit-todo action can only be used during interactive rebase.\")\"\n\tfi\n\nI wonder if it's worth doing a similar check here, which presumably\nmeans testing if \"$dir\"/interactive exists.\n\n>  \t\treturn\n>  \tfi\n>  \t__git_complete_strategy && return\n> \n> \n"},{"id":"266847","messageId":"1064256694.3063.1438019649384.JavaMail.open-xchange@app07.ox.hosteurope.de","threadId":"39838","inReplyTo":"20150713131107.GC1451@serenity.lan","subject":"[PATCH v2] completion: Add '--edit-todo' to rebase","fromName":"Thomas Braun","fromEmail":"thomas.braun@virtuell-zuhause.de","sentAt":"2015-07-27T17:54:09Z","receivedAt":"2015-07-27T17:54:09Z","isPatch":true,"sender":{"key":"thomas.braun@virtuell-zuhause.de","avatar":"https://avatars.githubusercontent.com/u/1185677?v=4"},"body":"Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n---\n> John Keeping <john@keeping.me.uk> hat am 13. Juli 2015 um 15:11 geschrieben:\n> git-rebase.sh contains:\n> \n> \tif test \"$action\" = \"edit-todo\" && test \"$type\" != \"interactive\"\n> \tthen\n> \t\tdie \"$(gettext \"The --edit-todo action can only be used during interactive\n> rebase.\")\"\n> \tfi\n> \n> I wonder if it's worth doing a similar check here, which presumably\n> means testing if \"$dir\"/interactive exists.\n\nGood point. Thanks for the hint.\n\n contrib/completion/git-completion.bash | 6 +++++-\n 1 file changed, 5 insertions(+), 1 deletion(-)\n\ndiff --git a/contrib/completion/git-completion.bash\nb/contrib/completion/git-completion.bash\nindex c97c648..b03050e 100644\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -1668,7 +1668,11 @@ _git_rebase ()\n {\n \tlocal dir=\"$(__gitdir)\"\n \tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n-\t\t__gitcomp \"--continue --skip --abort\"\n+\t\tif [ -d \"$dir\"/interactive ]; then\n+\t\t\t__gitcomp \"--continue --skip --abort --edit-todo\"\n+\t\telse\n+\t\t\t__gitcomp \"--continue --skip --abort\"\n+\t\tfi\n \t\treturn\n \tfi\n \t__git_complete_strategy && return\n-- \n2.4.5.windows.1\n"},{"id":"267134","messageId":"20150730132403.Horde.qnEThoM2W0qI-S5EDFXGDg3@webmail.informatik.kit.edu","threadId":"39838","inReplyTo":"1064256694.3063.1438019649384.JavaMail.open-xchange@app07.ox.hosteurope.de","subject":"Re: [PATCH v2] completion: Add '--edit-todo' to rebase","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2015-07-30T11:24:03Z","receivedAt":"2015-07-30T11:24:03Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"\nQuoting Thomas Braun <thomas.braun@virtuell-zuhause.de>:\n\n> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n> ---\n>> John Keeping <john@keeping.me.uk> hat am 13. Juli 2015 um 15:11 geschrieben:\n>> git-rebase.sh contains:\n>>\n>> \tif test \"$action\" = \"edit-todo\" && test \"$type\" != \"interactive\"\n>> \tthen\n>> \t\tdie \"$(gettext \"The --edit-todo action can only be used during interactive\n>> rebase.\")\"\n>> \tfi\n>>\n>> I wonder if it's worth doing a similar check here, which presumably\n>> means testing if \"$dir\"/interactive exists.\n>\n> Good point. Thanks for the hint.\n\nPerhaps the subject line could say \"completion: offer '--edit-todo'  \nduring interactive rebase\" to be a bit more specific.\n\n> contrib/completion/git-completion.bash | 6 +++++-\n> 1 file changed, 5 insertions(+), 1 deletion(-)\n>\n> diff --git a/contrib/completion/git-completion.bash\n> b/contrib/completion/git-completion.bash\n> index c97c648..b03050e 100644\n> --- a/contrib/completion/git-completion.bash\n> +++ b/contrib/completion/git-completion.bash\n> @@ -1668,7 +1668,11 @@ _git_rebase ()\n> {\n> \tlocal dir=\"$(__gitdir)\"\n> \tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n> -\t\t__gitcomp \"--continue --skip --abort\"\n> +\t\tif [ -d \"$dir\"/interactive ]; then\n\nThis doesn't work for me, I think it looks for the right file at the  \nwrong place.  During an interactive rebase I have no  \n'.git/interactive' file but a '.git/rebase-merge/interactive', so I  \nnever get '--edit-todo'.\n\nAfter some playing around and a cursory look at the source it seems to  \nme that I have '.git/rebase-apply' during a \"regular\" rebase and  \n'.git/rebase-merge' during an interactive rebase, and git-rebase.sh  \nchecks the presence of the 'interactive' file only in  \n'.git/rebase-merge'.  It's not clear to me yet whether it's possible  \nto have a '.git/rebase-merge' without the file 'interactive' in it.   \nIf it is possible, then I'd like to know with which commands and under  \nwhat circumstances.  If it isn't, then we wouldn't have to look for  \nthe file at all, because checking the presence of the directory would  \nbe enough.\n\n\nBest,\nGábor\n\n> +\t\t\t__gitcomp \"--continue --skip --abort --edit-todo\"\n> +\t\telse\n> +\t\t\t__gitcomp \"--continue --skip --abort\"\n> +\t\tfi\n> \t\treturn\n> \tfi\n> \t__git_complete_strategy && return\n> --\n> 2.4.5.windows.1\n"},{"id":"267135","messageId":"20150730112940.GL14935@serenity.lan","threadId":"39838","inReplyTo":"20150730132403.Horde.qnEThoM2W0qI-S5EDFXGDg3@webmail.informatik.kit.edu","subject":"Re: [PATCH v2] completion: Add '--edit-todo' to rebase","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2015-07-30T11:29:40Z","receivedAt":"2015-07-30T11:29:40Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Thu, Jul 30, 2015 at 01:24:03PM +0200, SZEDER Gábor wrote:\n> \n> Quoting Thomas Braun <thomas.braun@virtuell-zuhause.de>:\n> \n> > Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n> > ---\n> >> John Keeping <john@keeping.me.uk> hat am 13. Juli 2015 um 15:11 geschrieben:\n> >> git-rebase.sh contains:\n> >>\n> >> \tif test \"$action\" = \"edit-todo\" && test \"$type\" != \"interactive\"\n> >> \tthen\n> >> \t\tdie \"$(gettext \"The --edit-todo action can only be used during interactive\n> >> rebase.\")\"\n> >> \tfi\n> >>\n> >> I wonder if it's worth doing a similar check here, which presumably\n> >> means testing if \"$dir\"/interactive exists.\n> >\n> > Good point. Thanks for the hint.\n> \n> Perhaps the subject line could say \"completion: offer '--edit-todo'  \n> during interactive rebase\" to be a bit more specific.\n> \n> > contrib/completion/git-completion.bash | 6 +++++-\n> > 1 file changed, 5 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/contrib/completion/git-completion.bash\n> > b/contrib/completion/git-completion.bash\n> > index c97c648..b03050e 100644\n> > --- a/contrib/completion/git-completion.bash\n> > +++ b/contrib/completion/git-completion.bash\n> > @@ -1668,7 +1668,11 @@ _git_rebase ()\n> > {\n> > \tlocal dir=\"$(__gitdir)\"\n> > \tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n> > -\t\t__gitcomp \"--continue --skip --abort\"\n> > +\t\tif [ -d \"$dir\"/interactive ]; then\n> \n> This doesn't work for me, I think it looks for the right file at the  \n> wrong place.  During an interactive rebase I have no  \n> '.git/interactive' file but a '.git/rebase-merge/interactive', so I  \n> never get '--edit-todo'.\n> \n> After some playing around and a cursory look at the source it seems to  \n> me that I have '.git/rebase-apply' during a \"regular\" rebase and  \n> '.git/rebase-merge' during an interactive rebase, and git-rebase.sh  \n> checks the presence of the 'interactive' file only in  \n> '.git/rebase-merge'.  It's not clear to me yet whether it's possible  \n> to have a '.git/rebase-merge' without the file 'interactive' in it.   \n> If it is possible, then I'd like to know with which commands and under  \n> what circumstances.  If it isn't, then we wouldn't have to look for  \n> the file at all, because checking the presence of the directory would  \n> be enough.\n\n\"git rebase --merge\" will use \".git/rebase-merge\" without creating the\n\"interactive\" flag.\n"},{"id":"267192","messageId":"20150731121646.Horde.Mk6NzRZAsrRNDCE_y2uEdQ1@webmail.informatik.kit.edu","threadId":"39838","inReplyTo":"20150730112940.GL14935@serenity.lan","subject":"Re: [PATCH v2] completion: Add '--edit-todo' to rebase","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2015-07-31T10:16:46Z","receivedAt":"2015-07-31T10:16:46Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"\nQuoting John Keeping <john@keeping.me.uk>:\n\n> On Thu, Jul 30, 2015 at 01:24:03PM +0200, SZEDER Gábor wrote:\n>>\n>> Quoting Thomas Braun <thomas.braun@virtuell-zuhause.de>:\n>>\n>>> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n>>> ---\n>>>> John Keeping <john@keeping.me.uk> hat am 13. Juli 2015 um 15:11\n>> geschrieben:\n>>>> git-rebase.sh contains:\n>>>>\n>>>> \tif test \"$action\" = \"edit-todo\" && test \"$type\" != \"interactive\"\n>>>> \tthen\n>>>> \t\tdie \"$(gettext \"The --edit-todo action can only be used during\n>> interactive\n>>>> rebase.\")\"\n>>>> \tfi\n>>>>\n>>>> I wonder if it's worth doing a similar check here, which presumably\n>>>> means testing if \"$dir\"/interactive exists.\n>>>\n>>> Good point. Thanks for the hint.\n>>\n>> Perhaps the subject line could say \"completion: offer '--edit-todo'\n>> during interactive rebase\" to be a bit more specific.\n>>\n>>> contrib/completion/git-completion.bash | 6 +++++-\n>>> 1 file changed, 5 insertions(+), 1 deletion(-)\n>>>\n>>> diff --git a/contrib/completion/git-completion.bash\n>>> b/contrib/completion/git-completion.bash\n>>> index c97c648..b03050e 100644\n>>> --- a/contrib/completion/git-completion.bash\n>>> +++ b/contrib/completion/git-completion.bash\n>>> @@ -1668,7 +1668,11 @@ _git_rebase ()\n>>> {\n>>> \tlocal dir=\"$(__gitdir)\"\n>>> \tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n>>> -\t\t__gitcomp \"--continue --skip --abort\"\n>>> +\t\tif [ -d \"$dir\"/interactive ]; then\n>>\n>> This doesn't work for me, I think it looks for the right file at the\n>> wrong place.  During an interactive rebase I have no\n>> '.git/interactive' file but a '.git/rebase-merge/interactive', so I\n>> never get '--edit-todo'.\n\nJust noticed another issue here: it looks for a directory, though it  \nshould look for a file.\n\n\n>> After some playing around and a cursory look at the source it seems to\n>> me that I have '.git/rebase-apply' during a \"regular\" rebase and\n>> '.git/rebase-merge' during an interactive rebase, and git-rebase.sh\n>> checks the presence of the 'interactive' file only in\n>> '.git/rebase-merge'.  It's not clear to me yet whether it's possible\n>> to have a '.git/rebase-merge' without the file 'interactive' in it.\n>> If it is possible, then I'd like to know with which commands and under\n>> what circumstances.  If it isn't, then we wouldn't have to look for\n>> the file at all, because checking the presence of the directory would\n>> be enough.\n>\n> \"git rebase --merge\" will use \".git/rebase-merge\" without creating the\n> \"interactive\" flag.\n\nOh, right, thanks.  I should have remembered, I wrote the test of the\nprompt script for that case...\n(On a related note: is it possible to have a '.git/rebase-apply'\ndirectory, but neither 'rebasing' or 'applying' files within?  The\nprompt script has a long if-elif chain with such a branch, and I\nremember wondering how I could trigger it for testing.)\n\nAnyway, so this could be something like (modulo likely whitespace damage):\n\ndiff --git a/contrib/completion/git-completion.bash\nb/contrib/completion/git-completion.bash\nindex 07c34ef913..fac01d6985 100644\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -1667,7 +1667,10 @@ _git_push ()\n   _git_rebase ()\n   {\n   \tlocal dir=\"$(__gitdir)\"\n-\tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n+\tif [ -f \"$dir\"/rebase-merge/interactive ]; then\n+\t\t__gitcomp \"--continue --skip --abort --edit-todo\"\n+\t\treturn\n+\telif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n   \t\t__gitcomp \"--continue --skip --abort\"\n   \t\treturn\n   \tfi\n\n\nBest,\nGábor\n"},{"id":"267205","messageId":"55BBB244.3060309@virtuell-zuhause.de","threadId":"39838","inReplyTo":"20150731121646.Horde.Mk6NzRZAsrRNDCE_y2uEdQ1@webmail.informatik.kit.edu","subject":"Re: [PATCH v2] completion: Add '--edit-todo' to rebase","fromName":"Thomas Braun","fromEmail":"thomas.braun@virtuell-zuhause.de","sentAt":"2015-07-31T17:37:08Z","receivedAt":"2015-07-31T17:37:08Z","isPatch":true,"sender":{"key":"thomas.braun@virtuell-zuhause.de","avatar":"https://avatars.githubusercontent.com/u/1185677?v=4"},"body":"Am 31.07.2015 um 12:16 schrieb SZEDER Gábor:\n> \n> Quoting John Keeping <john@keeping.me.uk>:\n> \n>> On Thu, Jul 30, 2015 at 01:24:03PM +0200, SZEDER Gábor wrote:\n>>>\n>>> Quoting Thomas Braun <thomas.braun@virtuell-zuhause.de>:\n>>>\n>>>> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\n>>>> ---\n>>>>> John Keeping <john@keeping.me.uk> hat am 13. Juli 2015 um 15:11\n>>> geschrieben:\n>>>>> git-rebase.sh contains:\n>>>>>\n>>>>>     if test \"$action\" = \"edit-todo\" && test \"$type\" != \"interactive\"\n>>>>>     then\n>>>>>         die \"$(gettext \"The --edit-todo action can only be used during\n>>> interactive\n>>>>> rebase.\")\"\n>>>>>     fi\n>>>>>\n>>>>> I wonder if it's worth doing a similar check here, which presumably\n>>>>> means testing if \"$dir\"/interactive exists.\n>>>>\n>>>> Good point. Thanks for the hint.\n>>>\n>>> Perhaps the subject line could say \"completion: offer '--edit-todo'\n>>> during interactive rebase\" to be a bit more specific.\n>>>\n>>>> contrib/completion/git-completion.bash | 6 +++++-\n>>>> 1 file changed, 5 insertions(+), 1 deletion(-)\n>>>>\n>>>> diff --git a/contrib/completion/git-completion.bash\n>>>> b/contrib/completion/git-completion.bash\n>>>> index c97c648..b03050e 100644\n>>>> --- a/contrib/completion/git-completion.bash\n>>>> +++ b/contrib/completion/git-completion.bash\n>>>> @@ -1668,7 +1668,11 @@ _git_rebase ()\n>>>> {\n>>>>     local dir=\"$(__gitdir)\"\n>>>>     if [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n>>>> -        __gitcomp \"--continue --skip --abort\"\n>>>> +        if [ -d \"$dir\"/interactive ]; then\n>>>\n>>> This doesn't work for me, I think it looks for the right file at the\n>>> wrong place.  During an interactive rebase I have no\n>>> '.git/interactive' file but a '.git/rebase-merge/interactive', so I\n>>> never get '--edit-todo'.\n> \n> Just noticed another issue here: it looks for a directory, though it\n> should look for a file.\n> \n> \n>>> After some playing around and a cursory look at the source it seems to\n>>> me that I have '.git/rebase-apply' during a \"regular\" rebase and\n>>> '.git/rebase-merge' during an interactive rebase, and git-rebase.sh\n>>> checks the presence of the 'interactive' file only in\n>>> '.git/rebase-merge'.  It's not clear to me yet whether it's possible\n>>> to have a '.git/rebase-merge' without the file 'interactive' in it.\n>>> If it is possible, then I'd like to know with which commands and under\n>>> what circumstances.  If it isn't, then we wouldn't have to look for\n>>> the file at all, because checking the presence of the directory would\n>>> be enough.\n>>\n>> \"git rebase --merge\" will use \".git/rebase-merge\" without creating the\n>> \"interactive\" flag.\n> \n> Oh, right, thanks.  I should have remembered, I wrote the test of the\n> prompt script for that case...\n> (On a related note: is it possible to have a '.git/rebase-apply'\n> directory, but neither 'rebasing' or 'applying' files within?  The\n> prompt script has a long if-elif chain with such a branch, and I\n> remember wondering how I could trigger it for testing.)\n> \n> Anyway, so this could be something like (modulo likely whitespace damage):\n> \n> diff --git a/contrib/completion/git-completion.bash\n> b/contrib/completion/git-completion.bash\n> index 07c34ef913..fac01d6985 100644\n> --- a/contrib/completion/git-completion.bash\n> +++ b/contrib/completion/git-completion.bash\n> @@ -1667,7 +1667,10 @@ _git_push ()\n>   _git_rebase ()\n>   {\n>       local dir=\"$(__gitdir)\"\n> -    if [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n> +    if [ -f \"$dir\"/rebase-merge/interactive ]; then\n> +        __gitcomp \"--continue --skip --abort --edit-todo\"\n> +        return\n> +    elif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n>           __gitcomp \"--continue --skip --abort\"\n>           return\n>       fi\n\nThis looks much better than my attempt. Thanks.\n\nHow is the protocol now? Do I reroll and add \nHelped-By: John Keeping <john@keeping.me.uk>\nCompletely-Overhauled-And-Properly-Implemented: SZEDER Gábor <szeder@ira.uka.de>\n?\n\nThomas\n"},{"id":"267265","messageId":"20150801112507.Horde.r5NtLucc5RqP3Wy8gdC7CQ1@webmail.informatik.kit.edu","threadId":"39838","inReplyTo":"55BBB244.3060309@virtuell-zuhause.de","subject":"Re: [PATCH v2] completion: Add '--edit-todo' to rebase","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2015-08-01T09:25:07Z","receivedAt":"2015-08-01T09:25:07Z","isPatch":true,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"\nQuoting Thomas Braun <thomas.braun@virtuell-zuhause.de>:\n\n> Am 31.07.2015 um 12:16 schrieb SZEDER Gábor:\n>> Anyway, so this could be something like (modulo likely whitespace damage):\n>>\n>> diff --git a/contrib/completion/git-completion.bash\n>> b/contrib/completion/git-completion.bash\n>> index 07c34ef913..fac01d6985 100644\n>> --- a/contrib/completion/git-completion.bash\n>> +++ b/contrib/completion/git-completion.bash\n>> @@ -1667,7 +1667,10 @@ _git_push ()\n>>   _git_rebase ()\n>>   {\n>>       local dir=\"$(__gitdir)\"\n>> -    if [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n>> +    if [ -f \"$dir\"/rebase-merge/interactive ]; then\n>> +        __gitcomp \"--continue --skip --abort --edit-todo\"\n>> +        return\n>> +    elif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n>>           __gitcomp \"--continue --skip --abort\"\n>>           return\n>>       fi\n>\n> This looks much better than my attempt. Thanks.\n>\n> How is the protocol now? Do I reroll and add\n> Helped-By: John Keeping <john@keeping.me.uk>\n> Completely-Overhauled-And-Properly-Implemented: SZEDER Gábor  \n> <szeder@ira.uka.de>\n\nUgh :)  I'm quite happy with Helped-by, if you do a proper reroll  \nafter trying it out to see that it indeed does what it should.\n\n\nThanks,\nGábor\n"},{"id":"267512","messageId":"1331856388.22157.1438782000895.JavaMail.open-xchange@app06.ox.hosteurope.de","threadId":"39838","inReplyTo":"20150801112507.Horde.r5NtLucc5RqP3Wy8gdC7CQ1@webmail.informatik.kit.edu","subject":"[PATCH v3 1/1] completion: offer '--edit-todo' during interactive rebase","fromName":"Thomas Braun","fromEmail":"thomas.braun@virtuell-zuhause.de","sentAt":"2015-08-05T13:40:00Z","receivedAt":"2015-08-05T13:40:00Z","isPatch":true,"sender":{"key":"thomas.braun@virtuell-zuhause.de","avatar":"https://avatars.githubusercontent.com/u/1185677?v=4"},"body":"Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>\nHelped-by: John Keeping <john@keeping.me.uk>\nHelped-by: SZEDER Gábor <szeder@ira.uka.de>\n---\nTested by:\n- ensuring I'm in a bash shell\n- source git-completion.bash\n- git rebase -i HEAD~1, choose edit instead of pick in the editor\n- on entering \"git rebase\" you should be offered \"--edit-todo\"\n\n contrib/completion/git-completion.bash | 5 ++++-\n 1 file changed, 4 insertions(+), 1 deletion(-)\n\ndiff --git a/contrib/completion/git-completion.bash\nb/contrib/completion/git-completion.bash\nindex c97c648..087771b 100644\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -1667,7 +1667,10 @@ _git_push ()\n _git_rebase ()\n {\n \tlocal dir=\"$(__gitdir)\"\n-\tif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n+\tif [ -f \"$dir\"/rebase-merge/interactive ]; then\n+\t\t__gitcomp \"--continue --skip --abort --edit-todo\"\n+\t\treturn\n+\telif [ -d \"$dir\"/rebase-apply ] || [ -d \"$dir\"/rebase-merge ]; then\n \t\t__gitcomp \"--continue --skip --abort\"\n \t\treturn\n \tfi\n-- \n2.4.3.413.ga5fe668\n"}]}