Skip to content

Commit

Permalink
config: Add new option to open an editor.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Felipe Contreras authored and Junio C Hamano committed Feb 8, 2009
1 parent 621f1b4 commit 3bec8ff
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
6 changes: 6 additions & 0 deletions Documentation/git-config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
-----------
Expand Down Expand Up @@ -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
-----
Expand Down
13 changes: 12 additions & 1 deletion builtin-config.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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--;
Expand Down

0 comments on commit 3bec8ff

Please sign in to comment.