aboutsummaryrefslogtreecommitdiff
path: root/config-set.c
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2005-11-17 22:44:55 +0100
committerJunio C Hamano <junkio@cox.net>2005-11-19 20:47:29 -0800
commit1b1e59c5084ac8b0af0aa443bb1713179d400211 (patch)
tree478bb4e57cd4eb5a898476373e44681a04b66bc8 /config-set.c
parent10bea152a34b2bf1194ede5e0c9e5595ab2100f3 (diff)
downloadgit-1b1e59c5084ac8b0af0aa443bb1713179d400211.tar.gz
git-1b1e59c5084ac8b0af0aa443bb1713179d400211.tar.xz
Add git-config-set, a simple helper for scripts to set config variables
This is meant for the end user, who cannot be expected to edit .git/config by hand. Example: git-config-set core.filemode true will set filemode in the section [core] to true, git-config-set --unset core.filemode will remove the entry (failing if it is not there), and git-config-set --unset diff.twohead ^recar will remove the unique entry whose value matches the regex "^recar" (failing if there is no unique such entry). It is just a light wrapper around git_config_set() and git_config_set_multivar(). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'config-set.c')
-rw-r--r--config-set.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/config-set.c b/config-set.c
new file mode 100644
index 000000000..1b1547b53
--- /dev/null
+++ b/config-set.c
@@ -0,0 +1,26 @@
+#include "cache.h"
+
+static const char git_config_set_usage[] =
+"git-config-set name [value [value_regex]] | --unset name [value_regex]";
+
+int main(int argc, const char **argv)
+{
+ setup_git_directory();
+ switch (argc) {
+ case 2:
+ return git_config_set(argv[1], NULL);
+ case 3:
+ if (!strcmp(argv[1], "--unset"))
+ return git_config_set(argv[2], NULL);
+ else
+ return git_config_set(argv[1], argv[2]);
+ case 4:
+ if (!strcmp(argv[1], "--unset"))
+ return git_config_set_multivar(argv[2], NULL, argv[3]);
+ else
+ return git_config_set_multivar(argv[1], argv[2], argv[3]);
+ default:
+ usage(git_config_set_usage);
+ }
+ return 0;
+}