git-commit-vandalism/contrib/completion
SZEDER Gábor 905f2036d0 completion: list variable names reliably with 'git config --name-only'
Recenty I created a multi-line branch description with '.' and '='
characters on one of the lines, and noticed that fragments of that line
show up when completing set variable names for 'git config', e.g.:

  $ git config --get branch.b.description
  Branch description to fool the completion script with a
  second line containing dot . and equals = characters.
  $ git config --unset <TAB>
  ...
  second line containing dot . and equals
  ...

The completion script runs 'git config --list' and processes its output
to strip the values and keep only the variable names.  It does so by
looking for lines containing '.' and '=' and outputting everything
before the '=', which was fooled by my multi-line branch description.

A similar issue exists with aliases and pretty format aliases with
multi-line values, but in that case 'git config --get-regexp' is run and
lines in its output are simply stripped after the first space, so
subsequent lines don't even have to contain '.' and '=' to fool the
completion script.

Use the new '--name-only' option added in the previous commit to list
config variable names reliably in both cases, without error-prone post
processing.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-10 10:34:40 -07:00
..
git-completion.bash completion: list variable names reliably with 'git config --name-only' 2015-08-10 10:34:40 -07:00
git-completion.tcsh remove #!interpreter line from shell libraries 2013-11-26 14:23:56 -08:00
git-completion.zsh Merge branch 'pd/completion-filenames-fix' 2015-01-07 13:06:37 -08:00
git-prompt.sh Merge branch 'ct/prompt-untracked-fix' 2015-03-25 12:54:18 -07:00