Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> wrote: > 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 45c2f8a..7a34cde 100644 > --- a/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java > +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RepositoryConfig.java > @@ -682,7 +683,12 @@ public void load() throws IOException { > > private void clear() { > entries = new ArrayList<Entry>(); > - byName = new HashMap<String, Object>(); > + byName = new TreeMap<String, Object>(new Comparator<String>() { > + > + public int compare(String o1, String o2) { > + return o1.compareToIgnoreCase(o2); > + } > + }); > } This isn't necessary. Everyone who does a get or a put against the byName map already is forming a lower case key string. I'd rather keep the lookup O(1) than O(log N), especially if the code has a ton of .toLowerCase() calls in it to normalize the keys. If you are going to change it to a TreeMap with a custom Comparator then maybe we should cleanup the code that operates on byName so it can use the original input strings, instead of the .toLowerCase() forms. For now I'm going to apply your patch without this one hunk. If you want to switch to a TreeMap lets also cleanup the get/put calls. -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html