Add --global option to git-repo-config.
Allow user to set variables in global ~/.gitconfig file using command line. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
@ -3,19 +3,19 @@ git-repo-config(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-repo-config - Get and set options in .git/config
|
git-repo-config - Get and set repository or global options.
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git-repo-config' [type] name [value [value_regex]]
|
'git-repo-config' [--global] [type] name [value [value_regex]]
|
||||||
'git-repo-config' [type] --replace-all name [value [value_regex]]
|
'git-repo-config' [--global] [type] --replace-all name [value [value_regex]]
|
||||||
'git-repo-config' [type] --get name [value_regex]
|
'git-repo-config' [--global] [type] --get name [value_regex]
|
||||||
'git-repo-config' [type] --get-all name [value_regex]
|
'git-repo-config' [--global] [type] --get-all name [value_regex]
|
||||||
'git-repo-config' [type] --unset name [value_regex]
|
'git-repo-config' [--global] [type] --unset name [value_regex]
|
||||||
'git-repo-config' [type] --unset-all name [value_regex]
|
'git-repo-config' [--global] [type] --unset-all name [value_regex]
|
||||||
'git-repo-config' -l | --list
|
'git-repo-config' [--global] -l | --list
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
@ -41,8 +41,9 @@ This command will fail if:
|
|||||||
. Can not write to .git/config,
|
. Can not write to .git/config,
|
||||||
. no section was provided,
|
. no section was provided,
|
||||||
. the section or key is invalid,
|
. the section or key is invalid,
|
||||||
. you try to unset an option which does not exist, or
|
. you try to unset an option which does not exist,
|
||||||
. you try to unset/set an option for which multiple lines match.
|
. you try to unset/set an option for which multiple lines match, or
|
||||||
|
. you use --global option without $HOME being properly set.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
@ -64,14 +65,17 @@ OPTIONS
|
|||||||
--get-regexp::
|
--get-regexp::
|
||||||
Like --get-all, but interprets the name as a regular expression.
|
Like --get-all, but interprets the name as a regular expression.
|
||||||
|
|
||||||
|
--global::
|
||||||
|
Use global ~/.gitconfig file rather than the repository .git/config.
|
||||||
|
|
||||||
--unset::
|
--unset::
|
||||||
Remove the line matching the key from .git/config.
|
Remove the line matching the key from config file.
|
||||||
|
|
||||||
--unset-all::
|
--unset-all::
|
||||||
Remove all matching lines from .git/config.
|
Remove all matching lines from config file.
|
||||||
|
|
||||||
-l, --list::
|
-l, --list::
|
||||||
List all variables set in .git/config.
|
List all variables set in config file.
|
||||||
|
|
||||||
|
|
||||||
ENVIRONMENT
|
ENVIRONMENT
|
||||||
@ -79,6 +83,7 @@ ENVIRONMENT
|
|||||||
|
|
||||||
GIT_CONFIG::
|
GIT_CONFIG::
|
||||||
Take the configuration from the given file instead of .git/config.
|
Take the configuration from the given file instead of .git/config.
|
||||||
|
Using the "--global" option forces this to ~/.gitconfig.
|
||||||
|
|
||||||
GIT_CONFIG_LOCAL::
|
GIT_CONFIG_LOCAL::
|
||||||
Currently the same as $GIT_CONFIG; when Git will support global
|
Currently the same as $GIT_CONFIG; when Git will support global
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
|
|
||||||
static const char git_config_set_usage[] =
|
static const char git_config_set_usage[] =
|
||||||
"git-repo-config [ --bool | --int ] [--get | --get-all | --get-regexp | --replace-all | --unset | --unset-all] name [value [value_regex]] | --list";
|
"git-repo-config [ --global ] [ --bool | --int ] [--get | --get-all | --get-regexp | --replace-all | --unset | --unset-all] name [value [value_regex]] | --list";
|
||||||
|
|
||||||
static char *key;
|
static char *key;
|
||||||
static regex_t *key_regexp;
|
static regex_t *key_regexp;
|
||||||
@ -139,7 +139,16 @@ int cmd_repo_config(int argc, const char **argv, const char *prefix)
|
|||||||
type = T_BOOL;
|
type = T_BOOL;
|
||||||
else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l"))
|
else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l"))
|
||||||
return git_config(show_all_config);
|
return git_config(show_all_config);
|
||||||
else
|
else if (!strcmp(argv[1], "--global")) {
|
||||||
|
char *home = getenv("HOME");
|
||||||
|
if (home) {
|
||||||
|
char *user_config = xstrdup(mkpath("%s/.gitconfig", home));
|
||||||
|
setenv("GIT_CONFIG", user_config, 1);
|
||||||
|
free(user_config);
|
||||||
|
} else {
|
||||||
|
die("$HOME not set");
|
||||||
|
}
|
||||||
|
} else
|
||||||
break;
|
break;
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
Reference in New Issue
Block a user