From ce9b593ddf2530613f6da9d7f7e4a5ff93da8b36 Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Mon, 13 Oct 2008 00:50:59 +0200 Subject: [PATCH] git config file is case insensitive Keys are now always compared with ignore case rules. Signed-off-by: Robin Rosenberg Signed-off-by: Shawn O. Pearce --- .../tst/org/spearce/jgit/lib/RepositoryConfigTest.java | 7 +++++++ org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java index da7e704e..34ce04aa 100644 --- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java +++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/RepositoryConfigTest.java @@ -109,4 +109,11 @@ public class RepositoryConfigTest extends RepositoryTestCase { .getStringList("my", null, "somename"))); checkFile(cfgFile, "[my]\n\tsomename = value1\n\tsomename = value2\n"); } + + public void test006_readCaseInsensitive() throws IOException { + final File path = writeTrashFile("config_001", "[Foo]\nBar\n"); + RepositoryConfig repositoryConfig = new RepositoryConfig(null, path); + assertEquals(true, repositoryConfig.getBoolean("foo", null, "bar", false)); + assertEquals("", repositoryConfig.getString("foo", null, "bar")); + } } diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java index 45c2f8a2..3291bbae 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java @@ -236,9 +236,9 @@ public class RepositoryConfig { return defaultValue; n = n.toLowerCase(); - if (MAGIC_EMPTY_VALUE.equals(n) || "yes".equals(n) || "true".equals(n) || "1".equals(n)) { + if (MAGIC_EMPTY_VALUE.equals(n) || "yes".equalsIgnoreCase(n) || "true".equalsIgnoreCase(n) || "1".equals(n)) { return true; - } else if ("no".equals(n) || "false".equals(n) || "0".equals(n)) { + } else if ("no".equalsIgnoreCase(n) || "false".equalsIgnoreCase(n) || "0".equalsIgnoreCase(n)) { return false; } else { throw new IllegalArgumentException("Invalid boolean value: " @@ -300,7 +300,7 @@ public class RepositoryConfig { final Set result = new HashSet(); for (final Entry e : entries) { - if (section.equals(e.base) && e.extendedBase != null) + if (section.equalsIgnoreCase(e.base) && e.extendedBase != null) result.add(e.extendedBase); } if (baseConfig != null) @@ -954,7 +954,7 @@ public class RepositoryConfig { return true; if (a == null || b == null) return false; - return a.equals(b); + return a.equalsIgnoreCase(b); } } } -- 2.11.4.GIT