mirror of
https://github.com/git/git.git
synced 2025-01-25 00:43:41 +08: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:
parent
10bea152a3
commit
1b1e59c508
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
3
Makefile
3
Makefile
@ -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
26
config-set.c
Normal 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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user