t1300: document some aesthetic failures of the config editor
commit53ca053b3062e985f6270570b42471fbeb2dd6a5
authorJeff King <peff@peff.net>
Fri, 29 Mar 2013 19:51:55 +0000 (29 15:51 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Mar 2013 22:13:53 +0000 (29 15:13 -0700)
treebeea5ccf628051a8a62902b4c30ddc45990a0037
parent631bc94e67383b66da190550866566f09d32f299
t1300: document some aesthetic failures of the config editor

The config-editing code used by "git config var value" is
built around the regular config callback parser, whose only
triggerable item is an actual key. As a result, it does not
know anything about section headers, which can result in
unnecessarily ugly output:

  1. When we delete the last key in a section, we should be
     able to delete the section header.

  2. When we add a key into a section, we should be able to
     reuse the same section header, even if that section did
     not have any keys in it already.

Unfortunately, fixing these is not trivial with the current
code. It would involve the config parser recording and
passing back information on each item it finds, including
headers, keys, and even comments (or even better, generating
an actual in-memory parse-tree).

Since these behaviors do not cause any functional problems
(i.e., the resulting config parses as expected, it is just
uglier than one would like), fixing them can wait until
somebody feels like substantially refactoring the parsing
code. In the meantime, let's document them as known issues
with some tests.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1300-repo-config.sh