Subject: Re: [PATCH v2] completion: Add '--edit-todo' to rebase

From: John Keeping <[email-masked]>
Date: Thu, 30 Jul 2015 12:29:40 +0100

On Thu, Jul 30, 2015 at 01:24:03PM +0200, SZEDER Gábor wrote:
> 
> Quoting Thomas Braun <[email-masked]>:
> 
> > Signed-off-by: Thomas Braun <[email-masked]>
> > ---
> >> John Keeping <[email-masked]> hat am 13. Juli 2015 um 15:11 geschrieben:
> >> git-rebase.sh contains:
> >>
> >> 	if test "$action" = "edit-todo" && test "$type" != "interactive"
> >> 	then
> >> 		die "$(gettext "The --edit-todo action can only be used during interactive
> >> rebase.")"
> >> 	fi
> >>
> >> I wonder if it's worth doing a similar check here, which presumably
> >> means testing if "$dir"/interactive exists.
> >
> > Good point. Thanks for the hint.
> 
> Perhaps the subject line could say "completion: offer '--edit-todo'  
> during interactive rebase" to be a bit more specific.
> 
> > contrib/completion/git-completion.bash | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/contrib/completion/git-completion.bash
> > b/contrib/completion/git-completion.bash
> > index c97c648..b03050e 100644
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -1668,7 +1668,11 @@ _git_rebase ()
> > {
> > 	local dir="$(__gitdir)"
> > 	if [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then
> > -		__gitcomp "--continue --skip --abort"
> > +		if [ -d "$dir"/interactive ]; then
> 
> This doesn't work for me, I think it looks for the right file at the  
> wrong place.  During an interactive rebase I have no  
> '.git/interactive' file but a '.git/rebase-merge/interactive', so I  
> never get '--edit-todo'.
> 
> After some playing around and a cursory look at the source it seems to  
> me that I have '.git/rebase-apply' during a "regular" rebase and  
> '.git/rebase-merge' during an interactive rebase, and git-rebase.sh  
> checks the presence of the 'interactive' file only in  
> '.git/rebase-merge'.  It's not clear to me yet whether it's possible  
> to have a '.git/rebase-merge' without the file 'interactive' in it.   
> If it is possible, then I'd like to know with which commands and under  
> what circumstances.  If it isn't, then we wouldn't have to look for  
> the file at all, because checking the presence of the directory would  
> be enough.

"git rebase --merge" will use ".git/rebase-merge" without creating the
"interactive" flag.