summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java3
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java4
3 files changed, 21 insertions, 5 deletions
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
index 71e4c38698..e869e85568 100644
--- a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
+++ b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java
@@ -44,6 +44,9 @@ package org.eclipse.jgit.pgm;
import static org.junit.Assert.assertArrayEquals;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
import org.eclipse.jgit.util.SystemReader;
@@ -62,12 +65,18 @@ public class ConfigTest extends CLIRepositoryTestCase {
public void testListConfig() throws Exception {
boolean isWindows = SystemReader.getInstance().getProperty("os.name")
.startsWith("Windows");
+ boolean isMac = SystemReader.getInstance().getProperty("os.name")
+ .equals("Mac OS X");
String[] output = execute("git config --list");
- assertArrayEquals("expected default configuration", //
- new String[] { "core.filemode=" + !isWindows, //
- "core.logallrefupdates=true", //
- "core.repositoryformatversion=0", //
- "" /* ends with LF (last line empty) */}, output);
+ List<String> expect = new ArrayList<String>();
+ expect.add("core.filemode=" + !isWindows);
+ expect.add("core.logallrefupdates=true");
+ if (isMac)
+ expect.add("core.precomposeunicode=true");
+ expect.add("core.repositoryformatversion=0");
+ expect.add(""); // ends with LF (last line empty)
+ assertArrayEquals("expected default configuration", expect.toArray(),
+ output);
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
index 237fb66d0a..aaa427bae6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
@@ -178,4 +178,7 @@ public class ConfigConstants {
/** The "indexversion" key */
public static final String CONFIG_KEY_INDEXVERSION = "indexversion";
+
+ /** The "precomposeunicode" key */
+ public static final String CONFIG_KEY_PRECOMPOSEUNICODE = "precomposeunicode";
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java
index 7934e7f9be..33a51269de 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java
@@ -280,6 +280,10 @@ public class FileRepository extends Repository {
ConfigConstants.CONFIG_KEY_BARE, true);
cfg.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
ConfigConstants.CONFIG_KEY_LOGALLREFUPDATES, !bare);
+ if (SystemReader.getInstance().isMacOS())
+ // Java has no other way
+ cfg.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
+ ConfigConstants.CONFIG_KEY_PRECOMPOSEUNICODE, true);
cfg.save();
}