Re: [PATCH v2] completion: Add '--edit-todo' to rebase
- From
SZEDER Gábor <szeder@ira.uka.de>
- Date
- Jul 30, 2015, 11:24 UTC
- Message-ID
- <20150730132403.Horde.qnEThoM2W0qI-S5EDFXGDg3@webmail.informatik.kit.edu>
- In-Reply-To
- <1064256694.3063.1438019649384.JavaMail.open-xchange@app07.ox.hosteurope.de>
Quoting Thomas Braun <thomas.braun@virtuell-zuhause.de>:
Show 15 quoted lines
> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de> > --- >> John Keeping <john@keeping.me.uk> 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.
Show 14 quoted lines
> 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 ]; thenThis 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.
Best, Gábor
Show 9 quoted lines
> + __gitcomp "--continue --skip --abort --edit-todo" > + else > + __gitcomp "--continue --skip --abort" > + fi > return > fi > __git_complete_strategy && return > -- > 2.4.5.windows.1