]> source.dussan.org Git - jgit.git/commitdiff
Suppport the GIT_CONFIG_NOSYSTEM environment variable 02/20302/1
authorRobin Rosenberg <robin.rosenberg@dewire.com>
Mon, 6 Jan 2014 17:42:15 +0000 (18:42 +0100)
committerRobin Rosenberg <robin.rosenberg@dewire.com>
Mon, 6 Jan 2014 17:49:37 +0000 (18:49 +0100)
Change-Id: If3cc05931683d396b5ae2ea8952adceeb9a82ab9

org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Config.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java

index 0ec5c1e148ef1ffdb25bf8f57637ec1796dc1e4d..8569e9278ecf0d61cd730101cdf3e9376509a59b 100644 (file)
@@ -47,6 +47,7 @@ import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.StoredConfig;
 import org.eclipse.jgit.storage.file.FileBasedConfig;
 import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.StringUtils;
 import org.eclipse.jgit.util.SystemReader;
 import org.kohsuke.args4j.Option;
 
@@ -82,7 +83,10 @@ class Config extends TextBuiltin {
                        list(new FileBasedConfig(configFile, fs));
                        return;
                }
-               if (system || isListAll())
+               if (system
+                               || (isListAll() && StringUtils.isEmptyOrNull(SystemReader
+                                               .getInstance()
+                                               .getenv(Constants.GIT_CONFIG_NOSYSTEM_KEY))))
                        list(SystemReader.getInstance().openSystemConfig(null, fs));
                if (global || isListAll())
                        list(SystemReader.getInstance().openUserConfig(null, fs));
index d0c470988ae373366c5dd9fef2072a1db3f10a48..33026aad72db9ec77e66c3a1e55090ebec2744fe 100644 (file)
@@ -72,7 +72,9 @@ import org.eclipse.jgit.lib.ReflogReader;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.storage.file.FileBasedConfig;
 import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
+import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.StringUtils;
 import org.eclipse.jgit.util.SystemReader;
 
 /**
@@ -162,7 +164,21 @@ public class FileRepository extends Repository {
        public FileRepository(final BaseRepositoryBuilder options) throws IOException {
                super(options);
 
-               systemConfig = SystemReader.getInstance().openSystemConfig(null, getFS());
+               if (StringUtils.isEmptyOrNull(SystemReader.getInstance().getenv(
+                               Constants.GIT_CONFIG_NOSYSTEM_KEY)))
+                       systemConfig = SystemReader.getInstance().openSystemConfig(null,
+                                       getFS());
+               else
+                       systemConfig = new FileBasedConfig(null, FS.DETECTED) {
+                               public void load() {
+                                       // empty, do not load
+                               }
+
+                               public boolean isOutdated() {
+                                       // regular class would bomb here
+                                       return false;
+                               }
+                       };
                userConfig = SystemReader.getInstance().openUserConfig(systemConfig,
                                getFS());
                repoConfig = new FileBasedConfig(userConfig, getFS().resolve(
index 058addf8ac5cbabe7241557c41e59382d7516319..d9d04bd08237f96ff550af5ede79e3696a4b019d 100644 (file)
@@ -287,6 +287,9 @@ public final class Constants {
        /** The environment variable that contains the commiter's email */
        public static final String GIT_COMMITTER_EMAIL_KEY = "GIT_COMMITTER_EMAIL";
 
+       /** The environment variable that blocks use of the system config file */
+       public static final String GIT_CONFIG_NOSYSTEM_KEY = "GIT_CONFIG_NOSYSTEM";
+
        /**
         * The environment variable that limits how close to the root of the file
         * systems JGit will traverse when looking for a repository root.