summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: dfaf75b)
raw | patch | inline | side by side (parent: dfaf75b)
author | Christian Couder <chriscool@tuxfamily.org> | |
Sat, 15 Dec 2007 04:57:28 +0000 (05:57 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sat, 15 Dec 2007 05:58:35 +0000 (21:58 -0800) |
This config variable makes it possible to choose the default format
used to display help. This format will be used only if no option
like -a|--all|-i|--info|-m|--man|-w|--web is passed to "git-help".
The following values are possible for this variable:
- "man" --> "man" program is used
- "info" --> "info" program is used
- "web" --> "git-browse-help" is used
By default we still show help using "man".
This patch also adds -m|--man command line option to use "man"
to allow overriding the "help.format" configuration variable.
Note that this patch also revert some recent changes in
"git-browse-help" because they prevented to look for config
variables in the global configuration file.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
used to display help. This format will be used only if no option
like -a|--all|-i|--info|-m|--man|-w|--web is passed to "git-help".
The following values are possible for this variable:
- "man" --> "man" program is used
- "info" --> "info" program is used
- "web" --> "git-browse-help" is used
By default we still show help using "man".
This patch also adds -m|--man command line option to use "man"
to allow overriding the "help.format" configuration variable.
Note that this patch also revert some recent changes in
"git-browse-help" because they prevented to look for config
variables in the global configuration file.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-help.txt | patch | blob | history | |
git-browse-help.sh | patch | blob | history | |
git-sh-setup.sh | patch | blob | history | |
help.c | patch | blob | history |
index ac9e15d7748a17bdd552acfb0c690ffea459a87c..31ec403a705456b0fcc41eb7196484e0919eccae 100644 (file)
SYNOPSIS
--------
-'git help' [-a|--all|-i|--info|-w|--web] [COMMAND]
+'git help' [-a|--all|-i|--info|-m|--man|-w|--web] [COMMAND]
DESCRIPTION
-----------
If a git command is named, a manual page for that command is brought
up. The 'man' program is used by default for this purpose, but this
-can be overriden by other options.
+can be overriden by other options or configuration variables.
Note that 'git --help ...' is identical as 'git help ...' because the
former is internally converted into the latter.
Use the 'info' program to display the manual page, instead of
the 'man' program that is used by default.
+-m|--man::
+ Use the 'man' program to display the manual page. This may be
+ used to override a value set in the 'help.format'
+ configuration variable.
+
-w|--web::
Use a web browser to display the HTML manual page, instead of
the 'man' program that is used by default.
Note that the script tries, as much as possible, to display the HTML
page in a new tab on an already opened browser.
+CONFIGURATION VARIABLES
+-----------------------
+
+If no command line option is passed, the 'help.format' configuration
+variable will be checked. The following values are supported for this
+variable; they make 'git-help' behave as their corresponding command
+line option:
+
+* "man" corresponds to '-m|--man',
+* "info" corresponds to '-i|--info',
+* "web" or "html" correspond to '-w|--web',
+
+The 'help.browser', 'web.browser' and 'browser.<tool>.path' will also
+be checked if the 'web' format is choosen (either by command line
+option or configuration variable). See '-w|--web' in the OPTIONS
+section above.
+
+Note that these configuration variables should probably be set using
+the '--global' flag, for example like this:
+
+------------------------------------------------
+$ git config --global help.format web
+$ git config --global web.browser firefox
+------------------------------------------------
+
+as they are probably more user specific than repository specific.
+See gitlink:git-config[1] for more information about this.
+
Author
------
Written by Junio C Hamano <gitster@pobox.com> and the git-list
diff --git a/git-browse-help.sh b/git-browse-help.sh
index b465911c9a418d79f5ff592d9c409b70d92d49e9..10b0a36a3d2728d092f9943ace860205d340f220 100755 (executable)
--- a/git-browse-help.sh
+++ b/git-browse-help.sh
}
init_browser_path() {
- test -z "$GIT_DIR" || browser_path=`git config browser.$1.path`
+ browser_path=`git config browser.$1.path`
test -z "$browser_path" && browser_path=$1
}
shift
done
-if test -z "$browser" && test -n "$GIT_DIR"
+if test -z "$browser"
then
for opt in "help.browser" "web.browser"
do
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index b366761b976a136144c7483de5c883a084996816..270d559297259d8a94f7b5b25b87649d00139e84 100755 (executable)
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
# Make sure we are in a valid repository of a vintage we understand,
# if we require to be in a git repository.
-if test -n "$NONGIT_OK"
+if test -z "$NONGIT_OK"
then
- if git rev-parse --git-dir >/dev/null 2>&1
- then
- : ${GIT_DIR=.git}
- fi
-else
if [ -z "$SUBDIRECTORY_OK" ]
then
: ${GIT_DIR=.git}
index c96b1670f33a97daef215ee691016a8bfa9555c9..551b5b93b37f49e53746cb628416ab34d1dd9bd5 100644 (file)
--- a/help.c
+++ b/help.c
#include "exec_cmd.h"
#include "common-cmds.h"
+static const char *help_default_format;
+
+static enum help_format {
+ man_format,
+ info_format,
+ web_format,
+} help_format = man_format;
+
+static void parse_help_format(const char *format)
+{
+ if (!format) {
+ help_format = man_format;
+ return;
+ }
+ if (!strcmp(format, "man")) {
+ help_format = man_format;
+ return;
+ }
+ if (!strcmp(format, "info")) {
+ help_format = info_format;
+ return;
+ }
+ if (!strcmp(format, "web") || !strcmp(format, "html")) {
+ help_format = web_format;
+ return;
+ }
+ die("unrecognized help format '%s'", format);
+}
+
+static int git_help_config(const char *var, const char *value)
+{
+ if (!strcmp(var, "help.format")) {
+ help_default_format = xstrdup(value);
+ return 0;
+ }
+ return git_default_config(var, value);
+}
+
/* most GUI terminals set COLUMNS (although some don't export it) */
static int term_columns(void)
{
show_info_page(argc > 2 ? argv[2] : NULL);
}
- else
- show_man_page(help_cmd);
+ else if (!strcmp(help_cmd, "--man") || !strcmp(help_cmd, "-m")) {
+ show_man_page(argc > 2 ? argv[2] : NULL);
+ }
+
+ else {
+ int nongit;
+
+ setup_git_directory_gently(&nongit);
+ git_config(git_help_config);
+ if (help_default_format)
+ parse_help_format(help_default_format);
+
+ switch (help_format) {
+ case man_format:
+ show_man_page(help_cmd);
+ break;
+ case info_format:
+ show_info_page(help_cmd);
+ break;
+ case web_format:
+ show_html_page(help_cmd);
+ break;
+ }
+ }
return 0;
}