Other .git files are not hidden with this patch Change-Id: Idf63ca08d08f3a77c33f5848d02074f8d6a75758 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>tags/v3.5.0.201409071800-rc1
@@ -64,6 +64,7 @@ import org.eclipse.jgit.internal.storage.file.ObjectDirectory.AlternateRepositor | |||
import org.eclipse.jgit.lib.BaseRepositoryBuilder; | |||
import org.eclipse.jgit.lib.ConfigConstants; | |||
import org.eclipse.jgit.lib.Constants; | |||
import org.eclipse.jgit.lib.CoreConfig.HideDotFiles; | |||
import org.eclipse.jgit.lib.CoreConfig.SymLinks; | |||
import org.eclipse.jgit.lib.ObjectId; | |||
import org.eclipse.jgit.lib.Ref; | |||
@@ -268,6 +269,12 @@ public class FileRepository extends Repository { | |||
JGitText.get().repositoryAlreadyExists, getDirectory())); | |||
} | |||
FileUtils.mkdirs(getDirectory(), true); | |||
HideDotFiles hideDotFiles = getConfig().getEnum( | |||
ConfigConstants.CONFIG_CORE_SECTION, null, | |||
ConfigConstants.CONFIG_KEY_HIDEDOTFILES, | |||
HideDotFiles.DOTGITONLY); | |||
if (hideDotFiles != HideDotFiles.FALSE) | |||
getFS().setHidden(getDirectory(), true); | |||
refs.create(); | |||
objectDatabase.create(); | |||
@@ -214,6 +214,12 @@ public class ConfigConstants { | |||
/** The "indexversion" key */ | |||
public static final String CONFIG_KEY_INDEXVERSION = "indexversion"; | |||
/** | |||
* The "hidedotfiles" key | |||
* @since 3.5 | |||
*/ | |||
public static final String CONFIG_KEY_HIDEDOTFILES = "hidedotfiles"; | |||
/** The "precomposeunicode" key */ | |||
public static final String CONFIG_KEY_PRECOMPOSEUNICODE = "precomposeunicode"; | |||
@@ -113,6 +113,20 @@ public class CoreConfig { | |||
TRUE | |||
} | |||
/** | |||
* Options for hiding files whose names start with a period | |||
* | |||
* @since 3.5 | |||
*/ | |||
public static enum HideDotFiles { | |||
/** Do not hide .files */ | |||
FALSE, | |||
/** Hide add .files */ | |||
TRUE, | |||
/** Hide only .git */ | |||
DOTGITONLY | |||
} | |||
private CoreConfig(final Config rc) { | |||
compression = rc.getInt(ConfigConstants.CONFIG_CORE_SECTION, | |||
ConfigConstants.CONFIG_KEY_COMPRESSION, DEFAULT_COMPRESSION); |
@@ -48,6 +48,7 @@ import org.eclipse.jgit.lib.ConfigConstants; | |||
import org.eclipse.jgit.lib.Config.SectionParser; | |||
import org.eclipse.jgit.lib.CoreConfig.AutoCRLF; | |||
import org.eclipse.jgit.lib.CoreConfig.CheckStat; | |||
import org.eclipse.jgit.lib.CoreConfig.HideDotFiles; | |||
import org.eclipse.jgit.lib.CoreConfig.SymLinks; | |||
/** Options used by the {@link WorkingTreeIterator}. */ | |||
@@ -67,6 +68,8 @@ public class WorkingTreeOptions { | |||
private final SymLinks symlinks; | |||
private final HideDotFiles hideDotFiles; | |||
private WorkingTreeOptions(final Config rc) { | |||
fileMode = rc.getBoolean(ConfigConstants.CONFIG_CORE_SECTION, | |||
ConfigConstants.CONFIG_KEY_FILEMODE, true); | |||
@@ -76,6 +79,9 @@ public class WorkingTreeOptions { | |||
ConfigConstants.CONFIG_KEY_CHECKSTAT, CheckStat.DEFAULT); | |||
symlinks = rc.getEnum(ConfigConstants.CONFIG_CORE_SECTION, null, | |||
ConfigConstants.CONFIG_KEY_SYMLINKS, SymLinks.TRUE); | |||
hideDotFiles = rc.getEnum(ConfigConstants.CONFIG_CORE_SECTION, null, | |||
ConfigConstants.CONFIG_KEY_HIDEDOTFILES, | |||
HideDotFiles.DOTGITONLY); | |||
} | |||
/** @return true if the execute bit on working files should be trusted. */ | |||
@@ -103,4 +109,12 @@ public class WorkingTreeOptions { | |||
public SymLinks getSymLinks() { | |||
return symlinks; | |||
} | |||
/** | |||
* @return how we create '.'-files (on Windows) | |||
* @since 3.5 | |||
*/ | |||
public HideDotFiles getHideDotFiles() { | |||
return hideDotFiles; | |||
} | |||
} |