Description of problem: Assume you are inside a Subversion working copy. There is a path src/foo/bar.c. There are other files as well in the foo directory, but you only want to commit bar.c. You would type "svn ci src/foo/bar.c". Using the auto-completion, it will be svn ci s<tab> which is then extended to "svn ci src ", note the space at the end? For each path element you then have to do <Backspace> and type a slash and then tab on. What the auto-completion should rather do is work like the completion for ls. After the first expansion it should show "svn ci src/". Version-Release number of selected component (if applicable): bash-completion-20060301-6.fc8 How reproducible: Always Steps to Reproduce: 1. Checkout something via svn 2. Try auto-completion to a path with a "svn ci" prepended Actual results: It completes every directory on the path to the dir name followed by a space. Expected results: Work like ls auto-completion, completing paths to dir/. Additional info: This behaviour actually slows one down instead of going faster.
Could you try replacing line 9088 in /etc/bash_completion: complete -F _svn $default svn ...with: complete -F _svn $filenames svn ...and let me know how it works for you? I think this is the right thing to do, but I'm not entirely sure if it has any side effects. Note that a new shell is required for the change to take effect.
Ville, that change is working well for me; I haven't noticed any side effects so far...
Works great for me! Thank you so much. BTW, is there a specific reason why the svn parts are not factored out to something like /etc/bash_completion.d/svn?
No particular reason except that upstream does it that way; I suppose their judgement is that svn is commonly available enough to be kept in the main bash_completion file. By the way, I have a nagging feeling that I've seen this same problem in some use cases with cvs as well as with svn, but I can't seem to be able to trigger it now. Anyone else remember seeing that? Off topic: Jeff, I'm considering dropping the disttag from the bash-completion package; there's nothing distro version specific in it and nothing that would really benefit from a disttag (rebuilds between distro releases). Objections?
Ok. Are you going to integrate that fix in the package?
bash-completion-20060301-9 has been submitted as an update for Fedora 8
bash-completion-20060301-9 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update bash-completion'. You can provide feedback for this update here: http://admin.fedoraproject.org/F8/FEDORA-2008-1104
bash-completion-20060301-9 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.