diff options
author | Petr Baudis <pasky@suse.cz> | 2006-06-18 01:23:58 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-06-18 21:19:07 -0700 |
commit | 7f29f7a95c906250c9c99d08242c2c4084c48d24 (patch) | |
tree | cd28340e59a2c9528b5031328eab2e498701d9b1 | |
parent | 64e86c57867593ba0ee77a7b0ff0eb8e9d4d8ed5 (diff) | |
download | git-7f29f7a95c906250c9c99d08242c2c4084c48d24.tar.gz git-7f29f7a95c906250c9c99d08242c2c4084c48d24.tar.xz |
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 <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | Documentation/git-repo-config.txt | 12 | ||||
-rw-r--r-- | config.c | 12 |
2 files changed, 23 insertions, 1 deletions
diff --git a/Documentation/git-repo-config.txt b/Documentation/git-repo-config.txt index d5142e0dc..803c0d5ca 100644 --- a/Documentation/git-repo-config.txt +++ b/Documentation/git-repo-config.txt @@ -73,6 +73,18 @@ OPTIONS List all variables set in .git/config. +ENVIRONMENT +----------- + +GIT_CONFIG:: + Take the configuration from the given file instead of .git/config. + +GIT_CONFIG_LOCAL:: + Currently the same as $GIT_CONFIG; when Git will support global + configuration files, this will cause it to take the configuration + from the global configuration file in addition to the given file. + + EXAMPLE ------- @@ -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); } /* |