Re: bash-completion now loads completions dynamically, so __git_ps1 is not defined when you open a shell
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