Browse Source

Fix config value get to return last instead of 1st just like git

Before this fix, getting the value of 'key' below used to return
value1. This fix makes it so that value3 gets returned instead,
just like native git's get.

[section]
  key = value1
  key = value2
  key = value3

Change-Id: Iccb24de9b63c3ad8646c909494ca3f8c9ed6e29c
Signed-off-by: Marco Miller <marco.miller@ericsson.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-4.5
Marco Miller 9 years ago committed by Matthias Sohn
parent
commit
00db4ab06e
  1. 6
      org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
  2. 9
      org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java

6
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java

@ -739,6 +739,12 @@ public class ConfigTest {
c.getStringList("a", null, "x"));
}
@Test
public void testReadMultipleValuesForName() throws ConfigInvalidException {
Config c = parse("[foo]\nbar=false\nbar=true\n");
assertTrue(c.getBoolean("foo", "bar", false));
}
private static void assertReadLong(long exp) throws ConfigInvalidException {
assertReadLong(exp, String.valueOf(exp));
}

9
org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java

@ -633,12 +633,13 @@ public class Config {
private String getRawString(final String section, final String subsection,
final String name) {
String[] lst = getRawStringList(section, subsection, name);
if (lst != null)
return lst[0];
else if (baseConfig != null)
if (lst != null) {
return lst[lst.length - 1];
} else if (baseConfig != null) {
return baseConfig.getRawString(section, subsection, name);
else
} else {
return null;
}
}
private String[] getRawStringList(String section, String subsection,

Loading…
Cancel
Save