Set core.precomposeunicode to true when creating repository on Mac
Java has no option but to use precomposed Unicode, so we should state that when creating a new repository. Not that Java will use precomposed unicode regardless of this setting, but this reduces the risk of incompatibility with C Git. Change-Id: I3779b75f76d2e2061c836cbc9b4b7c2ae0cf18f4
This commit is contained in:
parent
f5ef963acd
commit
dccad56c9a
|
@ -44,6 +44,9 @@
|
||||||
|
|
||||||
import static org.junit.Assert.assertArrayEquals;
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.jgit.api.Git;
|
import org.eclipse.jgit.api.Git;
|
||||||
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
|
import org.eclipse.jgit.lib.CLIRepositoryTestCase;
|
||||||
import org.eclipse.jgit.util.SystemReader;
|
import org.eclipse.jgit.util.SystemReader;
|
||||||
|
@ -62,12 +65,18 @@ public void setUp() throws Exception {
|
||||||
public void testListConfig() throws Exception {
|
public void testListConfig() throws Exception {
|
||||||
boolean isWindows = SystemReader.getInstance().getProperty("os.name")
|
boolean isWindows = SystemReader.getInstance().getProperty("os.name")
|
||||||
.startsWith("Windows");
|
.startsWith("Windows");
|
||||||
|
boolean isMac = SystemReader.getInstance().getProperty("os.name")
|
||||||
|
.equals("Mac OS X");
|
||||||
|
|
||||||
String[] output = execute("git config --list");
|
String[] output = execute("git config --list");
|
||||||
assertArrayEquals("expected default configuration", //
|
List<String> expect = new ArrayList<String>();
|
||||||
new String[] { "core.filemode=" + !isWindows, //
|
expect.add("core.filemode=" + !isWindows);
|
||||||
"core.logallrefupdates=true", //
|
expect.add("core.logallrefupdates=true");
|
||||||
"core.repositoryformatversion=0", //
|
if (isMac)
|
||||||
"" /* ends with LF (last line empty) */}, output);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,4 +178,7 @@ public class ConfigConstants {
|
||||||
|
|
||||||
/** The "indexversion" key */
|
/** The "indexversion" key */
|
||||||
public static final String CONFIG_KEY_INDEXVERSION = "indexversion";
|
public static final String CONFIG_KEY_INDEXVERSION = "indexversion";
|
||||||
|
|
||||||
|
/** The "precomposeunicode" key */
|
||||||
|
public static final String CONFIG_KEY_PRECOMPOSEUNICODE = "precomposeunicode";
|
||||||
}
|
}
|
||||||
|
|
|
@ -280,6 +280,10 @@ public void create(boolean bare) throws IOException {
|
||||||
ConfigConstants.CONFIG_KEY_BARE, true);
|
ConfigConstants.CONFIG_KEY_BARE, true);
|
||||||
cfg.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
|
cfg.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null,
|
||||||
ConfigConstants.CONFIG_KEY_LOGALLREFUPDATES, !bare);
|
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();
|
cfg.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue