1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-18 12:26:33 +02:00

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>
This commit is contained in:
Johannes Schindelin 2005-11-17 22:44:55 +01:00 committed by Junio C Hamano
parent 10bea152a3
commit 1b1e59c508
3 changed files with 29 additions and 1 deletions

1
.gitignore vendored
View File

@ -17,6 +17,7 @@ git-clone
git-clone-pack
git-commit
git-commit-tree
git-config-set
git-convert-objects
git-count-objects
git-cvsexportcommit

View File

@ -125,7 +125,8 @@ PROGRAMS = \
git-unpack-objects$X git-update-index$X git-update-server-info$X \
git-upload-pack$X git-verify-pack$X git-write-tree$X \
git-update-ref$X git-symbolic-ref$X git-check-ref-format$X \
git-name-rev$X git-pack-redundant$X git-var$X $(SIMPLE_PROGRAMS)
git-name-rev$X git-pack-redundant$X git-config-set$X git-var$X \
$(SIMPLE_PROGRAMS)
# Backward compatibility -- to be removed after 1.0
PROGRAMS += git-ssh-pull$X git-ssh-push$X

26
config-set.c Normal file
View File

@ -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;
}