[Bash-completion-devel] bash-completion now loads completions dynamically, so __git_ps1 is not defined when you open a shell
Kerrick Staley
mail at kerrickstaley.com
Thu Mar 29 00:00:35 UTC 2012
On Wed, Mar 28, 2012 at 5:17 PM, Junio C Hamano <gitster at pobox.com> wrote:
> 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 at 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
More information about the Bash-completion-devel
mailing list