aboutsummaryrefslogtreecommitdiff
path: root/builtin-config.c
diff options
context:
space:
mode:
authorAlex Riesen <raa.lkml@gmail.com>2007-07-31 11:58:43 +0200
committerJunio C Hamano <gitster@pobox.com>2007-07-31 22:56:15 -0700
commit67d454fed6ae1f127d2daa57db946df200f2382a (patch)
tree3e07d121a4050dcd66b7671dc87dab834e83b705 /builtin-config.c
parent10861beaa89a4cec61e04dd4954452da24b7a757 (diff)
downloadgit-67d454fed6ae1f127d2daa57db946df200f2382a.tar.gz
git-67d454fed6ae1f127d2daa57db946df200f2382a.tar.xz
Add an option to specify a file to config builtin
There are (really!) systems where using environment variables is very cumbersome (yes, Windows, it has problems unsetting them). Besides this form is shorter. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-config.c')
-rw-r--r--builtin-config.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/builtin-config.c b/builtin-config.c
index 7d2063c1d..0a605e01a 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -2,7 +2,7 @@
#include "cache.h"
static const char git_config_set_usage[] =
-"git-config [ --global | --system ] [ --bool | --int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list";
+"git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list";
static char *key;
static regex_t *key_regexp;
@@ -186,6 +186,13 @@ int cmd_config(int argc, const char **argv, const char *prefix)
}
else if (!strcmp(argv[1], "--system"))
setenv(CONFIG_ENVIRONMENT, ETC_GITCONFIG, 1);
+ else if (!strcmp(argv[1], "--file") || !strcmp(argv[1], "-f")) {
+ if (argc < 3)
+ usage(git_config_set_usage);
+ setenv(CONFIG_ENVIRONMENT, argv[2], 1);
+ argc--;
+ argv++;
+ }
else if (!strcmp(argv[1], "--null") || !strcmp(argv[1], "-z")) {
term = '\0';
delim = '\n';