[arch-general] Funny issue with bash-completion and __git_ps1

Martti Kühne mysatyre at gmail.com
Wed Mar 28 10:19:45 EDT 2012


On Wed, Mar 28, 2012 at 01:58:51PM +0530, gt wrote:
> On Wed, Mar 28, 2012 at 08:49:15AM +0200, Martti Kühne wrote:
> > On Wed, Mar 28, 2012 at 08:05:48AM +0200, martin kalcher wrote:
> > > Hey hey
> > > 
> > > After the last bash-completion and git update there is a funny issue
> > > with the Git Prompt [1]: __git_ps1 is not defined
> > > 
> > > The bash-completion update moved most completion scripts to
> > > /usr/share/bash-completion/completions/
> > > 
> > > and sources them if needed. See line 1933 in:
> > > /usr/share/bash-completion/bash_completion
> > > 
> > > __git_ps1 is defined in:
> > > /usr/share/bash-completion/completions/git
> > > 
> > > So if you type 'git pul<TAB>' this file gets sourced and the error
> > > disappears. I worked around this by sourcing this file manually in
> > > my .bashrc
> > > 
> > > My question is, where i should report this bug. Is it a git problem
> > > or a bash-completion problem. I think its a git issue, because
> > > __git_ps1 is no complete function and should be defined somewhere
> > > else... Or shall i shut my mouth and continue sourcing it in my
> > > .bashrc?
> > 
> > 
> > you can go on sourcing the file in your .bashrc and report the issue upstream.
> > although my personal opinion to the whole story is pacman -Rcs, since the
> > problems with bash-completions are old, and the symptoms are recurring, in all
> > different shapes, and the source code is a legendary mess.
> 
> What would you recommend instead? I too face problems time and again
> with bash-completion and would like to get rid of it. Do you have some
> special settings in your .bashrc?


AFAIK, the bash_completion script that is installed with the bash-completion
package merely is a latch script where all other software's completion routines
are sourced from '/etc/bash_completion.d'. You're free to source or not source
whatever you want from that directory without the latch script installed, since
it's your system/cpu time. The dependencies arising from that can be made
flexible by wrapping the source with a test -f each time. That would leave you
with a few additional lines in your ~/.bashrc or /etc/bash.bashrc, while
keeping out the bloated mess that is bash_completion.
See also, /etc/bash.bashrc line 23

cheers!
mar77i


More information about the arch-general mailing list