]> git.ipfire.org Git - thirdparty/git.git/commit - config.c
Merge branch 'js/empty-config-section-fix'
authorJunio C Hamano <gitster@pobox.com>
Tue, 8 May 2018 06:59:18 +0000 (15:59 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 8 May 2018 06:59:18 +0000 (15:59 +0900)
commit4f4d0b42bae8091fd989aa6d7db72ecdd86aa36b
treea0b15e8fa1e918fe12d58fde93f3d656462f820a
parentb7da73ac8b953afd788e096b5b216e3bd9845659
parentc71d8bb38a73abc910a63bf7a81f3869dc9c2f34
Merge branch 'js/empty-config-section-fix'

"git config --unset a.b", when "a.b" is the last variable in an
otherwise empty section "a", left an empty section "a" behind, and
worse yet, a subsequent "git config a.c value" did not reuse that
empty shell and instead created a new one.  These have been
(partially) corrected.

* js/empty-config-section-fix:
  git_config_set: reuse empty sections
  git config --unset: remove empty sections (in the common case)
  git_config_set: make use of the config parser's event stream
  git_config_set: do not use a state machine
  config_set_store: rename some fields for consistency
  config: avoid using the global variable `store`
  config: introduce an optional event stream while parsing
  t1300: `--unset-all` can leave an empty section behind (bug)
  t1300: add a few more hairy examples of sections becoming empty
  t1300: remove unreasonable expectation from TODO
  t1300: avoid relying on a bug
  config --replace-all: avoid extra line breaks
  t1300: demonstrate that --replace-all can "invent" newlines
  t1300: rename it to reflect that `repo-config` was deprecated
  git_config_set: fix off-by-two
config.c
t/t1300-config.sh