Browse Source

config: Add new option to open an editor.

The idea was originated by discussion about usability of manually
editing the config file in 'special needs' systems such as Windows. Now
the user can forget a bit about where the config files actually are.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Felipe Contreras 16 years ago committed by Junio C Hamano
parent
commit
3bec8ff99a
  1. 6
      Documentation/git-config.txt
  2. 13
      builtin-config.c

6
Documentation/git-config.txt

@ -22,6 +22,7 @@ SYNOPSIS @@ -22,6 +22,7 @@ SYNOPSIS
'git config' [<file-option>] [-z|--null] -l | --list
'git config' [<file-option>] --get-color name [default]
'git config' [<file-option>] --get-colorbool name [stdout-is-tty]
'git config' [<file-option>] -e | --edit

DESCRIPTION
-----------
@ -157,6 +158,11 @@ See also <<FILES>>. @@ -157,6 +158,11 @@ See also <<FILES>>.
output. The optional `default` parameter is used instead, if
there is no color configured for `name`.

-e::
--edit::
Opens an editor to modify the specified config file; either
'--system', '--global', or repository (default).

[[FILES]]
FILES
-----

13
builtin-config.c

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
#include "color.h"

static const char git_config_set_usage[] =
"git config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-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 | --get-color var [default] | --get-colorbool name [stdout-is-tty]";
"git config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int | --bool-or-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 | --get-color var [default] | --get-colorbool name [stdout-is-tty] | --edit | -e ]";

static char *key;
static regex_t *key_regexp;
@ -362,6 +362,17 @@ int cmd_config(int argc, const char **argv, const char *prefix) @@ -362,6 +362,17 @@ int cmd_config(int argc, const char **argv, const char *prefix)
return get_color(argc-2, argv+2);
} else if (!strcmp(argv[1], "--get-colorbool")) {
return get_colorbool(argc-2, argv+2);
} else if (!strcmp(argv[1], "--edit") || !strcmp(argv[1], "-e")) {
const char *config_filename;
if (argc != 2)
usage(git_config_set_usage);
if (config_exclusive_filename)
config_filename = config_exclusive_filename;
else
config_filename = git_path("config");
git_config(git_default_config, NULL);
launch_editor(config_filename, NULL, NULL);
return 0;
} else
break;
argc--;

Loading…
Cancel
Save