Browse Source

Windows: Hide the .git directory if hidedotfiles is set to non-false

Other .git files are not hidden with this patch

Change-Id: Idf63ca08d08f3a77c33f5848d02074f8d6a75758
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-3.5
Robin Rosenberg 11 years ago committed by Matthias Sohn
parent
commit
00c4a73fbc
  1. 7
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
  2. 6
      org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
  3. 14
      org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
  4. 14
      org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeOptions.java

7
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java

@ -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();

6
org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java

@ -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";

14
org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java

@ -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);

14
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeOptions.java

@ -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;
}
}

Loading…
Cancel
Save