Re: bash-completion now loads completions dynamically, so __git_ps1 is not defined when you open a shell
- From
- Kerrick Staley <mail@kerrickstaley.com>
- Date
- Mar 29, 2012, 00:00 UTC
- Message-ID
- <CANaWP3w9KDu57aHquRRYt8td_haSWTBKs7zUHy-xu0B61gmr9A@mail.gmail.com>
- In-Reply-To
- <20120328230642.GA16925@burratino>
On Wed, Mar 28, 2012 at 5:17 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 5 quoted lines
> Sorry, I don't quite get it. "newer verions" of what? > > To me, completion scripts have always been to be dot-sourced early, making > sure inclusion happen before PS1 is used. Did we change anything recently > to break it????
bash-completion 1.99 (still a "beta", but Arch Linux now ships it) will automatically source the git-completion.bash script when you type git <tab>. The script is no longer sourced when you first open a shell.
There are two main ways to fix this: 1) define __git_ps1 (and friends) in a different script, which will get installed in /etc/profile.d (this is the "proper way") 2) require that git-completion.bash always be loaded in the beginning instead of on-the-fly (which is how it works now now)
I can submit a patch implementing option (1) if needed.
This is a very minor issue, but some recommendation from upstream would be nice so that distros know how to handle this.
On Wed, Mar 28, 2012 at 6:06 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Yes, I think so. Do the release notes for version 2.0 of the > /etc/bash_completion wrapper script mention this change?
I'm not sure, but the feature is definitely there. The branch implementing this feature has been merged into the project's master (see http://anonscm.debian.org/gitweb/?p=bash-completion/bash-completion.git;a=commit;h=b377dc5de84913b69efa325590e9d0bb97d02128).
-Kerrick