I have an empty .git/remotes directory. Trying to complete the name of a remote always reports an error: git@master:1023> git fetch <TAB>ls: invalid option -- ' ' Try `ls --help' for more information. I have these: alias ls='ls $LS_OPTIONS' and LS_OPTIONS='-N --color=tty -T 0' I instrumented __git_remotes with set -x, which shows: git@master:1006> git fetch <TAB>+++ __gitdir +++ '[' -z '' ']' +++ '[' -n '' ']' +++ '[' -n '' ']' +++ '[' -d .git ']' +++ echo .git ++ local i 'IFS= ' d=.git ++ test -d .git/remotes ++ ls '-N --color=tty -T 0' -1 .git/remotes ls: invalid option -- ' ' Try `ls --help' for more information. ... Notice that the expansion of $LS_OPTIONS is not split at the blanks, obviously, because $IFS does not contain a blank at that moment. The patch below helps, but it looks like a work-around rather than a solution. Ideas? diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index be800e0..824f5b6 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -369,8 +369,9 @@ __git_refs_remotes () __git_remotes () { - local i IFS=$'\n' d="$(__gitdir)" + local i d="$(__gitdir)" test -d "$d/remotes" && ls -1 "$d/remotes" + local IFS=$'\n' for i in $(git --git-dir="$d" config --get-regexp 'remote\..*\.url' 2>/dev/null); do i="${i#remote.}" echo "${i/.url*/}" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html