Re: [feature request] git add completion should exclude staged content
- From
Manlio Perillo <manlio.perillo@gmail.com>
- Date
- Jan 30, 2013, 18:24 UTC
- Message-ID
- <51096543.9050100@gmail.com>
- In-Reply-To
- <E59706EF8DB1D147B15BECA3322E4BDC097A7E@eusaamb103.ericsson.se>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Il 30/01/2013 15:06, Marc Khouzam ha scritto:
Show 10 quoted lines
> [...] >> I will try to update the patch, with your latest suggestions (avoid >> tricky POSIX shell syntax, and CDPATH issue - if I remember >> correctly), >> and with an update for the t/t9902-completion.sh test (that I >> completely >> missed). > > Hi Manlio, >
Hi.
Show 10 quoted lines
> I'm trying to update git-completion.tcsh to work properly with > your nice new completion feature. But I'm having trouble with > the missing '/' at the end of directories. > > The new logic in git-completion.bash tells bash that 'filenames' > completion is ongoing so bash will add a '/' after directories. > Sadly, tcsh won't do that, so it would be simpler if > git-completion.bash added the '/' itself. I looked at the > git-completion.bash script changes and I noticed that for > bash version < 4, you have to add the '/' yourself.
The compatible version is not only required for Bash; you can use it for other shells.
Try to redefine the __git_index_file_list_filter function to use the version that adds a slash to directory names.
Show 14 quoted lines
> I also noticed the following comment: > > # XXX if we append a slash to directory names when using > # `compopt -o filenames`, Bash will append another slash. > # This is pretty stupid, and this the reason why we have to > # define a compatible version for this function. > > So I gather you would rather add a '/' all the time to deal > with older bash version transparently. This would be great > for tcsh also. I'm trying to figure out > when bash mis-behaves when you add the '/' all the time? > When I try it (I have bash 4.1.5(1)-release) I didn't run > into the double slash problem you mention in the comment. >
I'm using the same version: 4.1.5(1), on Debian stable.
Show 5 quoted lines
> I'm hoping we can straighten this out and have > git-completion.bash add the '/' all the time. > > Could you explain when the problem happens? >
Bash 4.1.5(1) always adds an additional slash for directories. I have tested it right now: change the filter function to use the compatible version:
__git_index_file_list_filter ()
{
# Default to Bash >= 4.x
__git_index_file_list_filter_compat
}Then running `git add <TAB>` inside the git repository, I get this file completion list:
$ git add <TAB> contrib//
> Thanks >
Thanks to you
Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlEJZUMACgkQscQJ24LbaUQUGACgkMG/bZrJKBzlZ8toEQwmggQX m9kAn2ATJbSp87kOkoCCc00eHmh71r3y =D9iu -----END PGP SIGNATURE-----