Bug 1263781

Summary: bash completions for git19-git don't work.
Product: Red Hat Software Collections Reporter: Severin Gehwolf <sgehwolf>
Component: gitAssignee: Marcel Plch <mplch>
Status: CLOSED WONTFIX QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rh-git29CC: hhorak, jorton, ovasik, pcahyna
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-04 13:54:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Severin Gehwolf 2015-09-16 16:48:49 UTC
Description of problem:
Bash completions for the git package in the git19 collection don't work.

How reproducible:
100%

Steps to Reproduce:
1. $ scl enable git19 bash
2. $ git --h<TAB><TAB>

Actual results:
Nothing.

Expected results:
Proposed completions for "--h" are shown: "--help" and "--html-path"

Comment 3 Joe Orton 2016-10-12 12:13:47 UTC
Red Hat does not currently plan to provide any further changes to this collection in a Red Hat Software Collections update release.

This software collection is nearing the retirement date (October 2016) after which customers are encouraged either to upgrade to a later release or continue on as self-supported without official Red Hat Support.

Please contact Red Hat Support if you have further questions, or refer to the support lifecycle page for more information. https://access.redhat.com/support/policy/updates/rhscl/

Comment 4 Petr Stodulka 2016-12-20 12:04:50 UTC
Switch to rh-git29. This is still actual in new collection.

Comment 8 Joe Orton 2018-10-01 09:19:30 UTC
Red Hat does not currently plan to provide any further changes to this collection in a Red Hat Software Collections update release.

This software collection is nearing the retirement date (November 2018) after which customers are encouraged to upgrade to a later release.

Please contact Red Hat Support if you have further questions, or refer to the support lifecycle page for more information. https://access.redhat.com/support/policy/updates/rhscl/

Comment 12 Marcel Plch 2018-10-03 13:38:13 UTC
Is bash-completion enabled in the running terminal?

I've tried to reproduce this with rh-git29.

Reproduced by:
$ git --h<TAB><TAB>
*nothing*
$ grep --<TAB><TAB>
*nothing*

Resolved by:
# yum install bash-completion
$ . /usr/share/bash-completion/bash_completion
$ git --h<TAB><TAB>
--help   --html-path

Comment 13 Honza Horak 2018-10-04 13:54:10 UTC
Well, technically, it is not possible to only change the bash completion script path to /etc/bash_completion.d/ and have a properly prefixed file there, like /etc/bash_completion.d/rh-git29-git, even though it would be tempting.

That way, the bash completion would work even when the collection would not be enabled, which is not anything we want; the bash completion for an scl-ized package should be enabled only when the scl is enabled.

That brings me to the idea how this could be implemented -- simply source the git's bash-completion script (which must include all changes required for the scl package) at the end of the enable scriptlet, like this:

rpm -q bash-completion >/dev/null && source /etc/opt/rh/rh-git29/bash-completion/git

However, there is another problem -- newer versions of scl-utils also support changing the environment via environment modules, and this behaviour with some complex code run during enable script execution would be hard to mitigate using that mechanism, since environment modules are only meant to change the environment, not executing a code.

Also, since I'm not aware of any other requests for making this to work, and this request is pretty old, I don't think this request is that much important for users. Based on those thoughts, I'm actually rather closing this bug as WONTFIX, since it does not seem to be important enough at this point.

Feel free to re-open and provide a good justification if it actually is important.