]> source.dussan.org Git - jgit.git/commitdiff
Windows: Hide the .git directory if hidedotfiles is set to non-false 83/9383/48
authorRobin Rosenberg <robin.rosenberg@dewire.com>
Tue, 11 Feb 2014 00:06:27 +0000 (01:06 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Thu, 4 Sep 2014 09:24:54 +0000 (11:24 +0200)
Other .git files are not hidden with this patch

Change-Id: Idf63ca08d08f3a77c33f5848d02074f8d6a75758
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeOptions.java

index 4c420f693c707b8828adf87959e35bedc45cfc38..447e357d5a3be5b617b36432af4a7202cbd283ee 100644 (file)
@@ -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();
 
index b52ecd81568918587484773900719ea865b2e40a..378d91c58c5981ff4fba779164827747d89d1c59 100644 (file)
@@ -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";
 
index 962f2e7c240f60a1a657ab96964ef1fcad12df9e..8f31d96de60d3e08d671a7918470c95d8b38c7fd 100644 (file)
@@ -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);
index e5e22413d233b094ec3a03fba2b3ba6aa39cb529..a6dccce0312642b1069838384e9111e89757cddf 100644 (file)
@@ -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;
+       }
 }