From: John Keeping Date: Thu, 30 Jul 2015 11:29:40 GMT Subject: Re: [PATCH v2] completion: Add '--edit-todo' to rebase Message-ID: <20150730112940.GL14935@serenity.lan> In-Reply-To: <20150730132403.Horde.qnEThoM2W0qI-S5EDFXGDg3@webmail.informatik.kit.edu> On Thu, Jul 30, 2015 at 01:24:03PM +0200, SZEDER Gábor wrote: > > Quoting Thomas Braun : > > > Signed-off-by: Thomas Braun > > --- > >> John Keeping 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.