Change-Id: If3cc05931683d396b5ae2ea8952adceeb9a82ab9tags/v3.3.0.201402191814-rc1
@@ -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)); |
@@ -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( |
@@ -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. |