config: arbitrary number of matches for --unset and --replace-all
commit83786fa412662f6d7cdade9e4043882c5ad21c1a
authorThomas Rast <tr@thomasrast.ch>
Wed, 13 Nov 2013 10:19:00 +0000 (13 11:19 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Dec 2013 19:48:47 +0000 (6 11:48 -0800)
tree4a2acc44af57157fbd5bf1e55a5425733442aa26
parentd7d2c87955f7700289c5b516f12579a5be4b879d
config: arbitrary number of matches for --unset and --replace-all

git-config used a static match array to hold the matches we want to
unset/replace when using --unset or --replace-all.  Use a
variable-sized array instead.

This in particular fixes the symptoms git-svn had when storing large
numbers of svn-remote.*.added-placeholder entries in the config file.

While the tests are rather more paranoid than just --unset and
--replace-all, the other operations already worked.  Indeed git-svn's
usage only breaks the first time *after* creating so many entries,
when it wants to unset and re-add them all.

Reported-by: Jess Hottenstein <jess.hottenstein@gmail.com>
Signed-off-by: Thomas Rast <tr@thomasrast.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.c
t/t1303-wacky-config.sh