From 7f29f7a95c906250c9c99d08242c2c4084c48d24 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Sun, 18 Jun 2006 01:23:58 +0200 Subject: Support for extracting configuration from different files Add $GIT_CONFIG environment variable whose content is used instead of .git/config if set. Also add $GIT_CONFIG_LOCAL as a forward-compatibility cue for whenever we will finally come to support] global configuration files (properly). Signed-off-by: Petr Baudis Signed-off-by: Junio C Hamano --- config.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'config.c') diff --git a/config.c b/config.c index 984c75f5dd..d46eb6d829 100644 --- a/config.c +++ b/config.c @@ -317,7 +317,17 @@ int git_config_from_file(config_fn_t fn, const char *filename) int git_config(config_fn_t fn) { - return git_config_from_file(fn, git_path("config")); + const char *filename = git_path("config"); + /* Forward-compatibility cue: $GIT_CONFIG makes git read _only_ + * the given config file, $GIT_CONFIG_LOCAL will make it process + * it in addition to the global config file, the same way it would + * the per-repository config file otherwise. */ + if (getenv("GIT_CONFIG")) { + filename = getenv("GIT_CONFIG"); + } else if (getenv("GIT_CONFIG_LOCAL")) { + filename = getenv("GIT_CONFIG_LOCAL"); + } + return git_config_from_file(fn, filename); } /* -- cgit v1.2.3