]> source.dussan.org Git - jgit.git/commit
Config: Distinguish between empty and null strings 69/49469/1
authorDave Borowitz <dborowitz@google.com>
Thu, 4 Jun 2015 18:35:24 +0000 (11:35 -0700)
committerDave Borowitz <dborowitz@google.com>
Thu, 4 Jun 2015 18:50:31 +0000 (11:50 -0700)
commit96eb3ee3976e7e9e3e118851fa614cce8a1f7d88
tree8b166e3198069656fabb8000363ecaa7ee94afb5
parent6227b340d33700bd3afe33cb0beacc286c0d4105
Config: Distinguish between empty and null strings

The C git API and command line tools distinguish between a key having
the empty string as a value and no key being present in the config
file:

$ echo -e '[a]\nx =' > foo.config
$ git config -f foo.config a.x; echo $?

0
$ git config -f foo.config a.y; echo $?
1

Make JGit make the same distinction. This is in line with the current
Javadoc of getString, which claims to return "a String value from the
config, null if not found". It is more reasonable to interpret "x ="
in the above example as "found" rather than "missing".

We need to maintain the special handling of a key name with no "="
resolving to a boolean true, but "=" with an empty string is still not
a valid boolean.

Change-Id: If0dbb7470c524259de0b167148db87f81be2d04a
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java