Skip to content

Commit

Permalink
git-config: document accidental multi-line setting in deprecated syntax
Browse files Browse the repository at this point in the history
The bug was noticed when writing the previous patch; a fix for this bug
is not easy though: If we choose to ignore the case of the subsection
(and revert most of the code of the previous patch, just keeping
s/strncasecmp/strcmp/), then we'd introduce new sections using the
new syntax, such that

 --------
   [section.subsection]
     key = value1
 --------

  git config section.Subsection.key value2

would result in

 --------
   [section.subsection]
     key = value1
   [section.Subsection]
     key = value2
 --------

which is even more confusing. A proper fix would replace the first
occurrence of 'key'. As the syntax is deprecated, let's prefer to not
spend time on fixing the behavior and just document it instead.

Signed-off-by: Stefan Beller <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
stefanbeller authored and gitster committed Aug 8, 2018
1 parent 2d84f13 commit bff7df7
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions Documentation/git-config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,27 @@ http.sslverify false

include::config.txt[]

BUGS
----
When using the deprecated `[section.subsection]` syntax, changing a value
will result in adding a multi-line key instead of a change, if the subsection
is given with at least one uppercase character. For example when the config
looks like

--------
[section.subsection]
key = value1
--------

and running `git config section.Subsection.key value2` will result in

--------
[section.subsection]
key = value1
key = value2
--------


GIT
---
Part of the linkgit:git[1] suite

0 comments on commit bff7df7

Please sign in to comment.