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 71e4c3869..e869e8556 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 expect = new ArrayList(); + 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 237fb66d0..aaa427bae 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 7934e7f9b..33a51269d 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(); }