Commit 97fc6c5f authored by Andreas Ericsson's avatar Andreas Ericsson Committed by Junio C Hamano

git --help COMMAND brings up the git-COMMAND man-page.

It's by design a bit stupid (matching ^git rather than ^git-), so as
to work with 'gitk' and 'git' as well.
Signed-off-by: default avatarAndreas Ericsson <>
Signed-off-by: default avatarJunio C Hamano <>
parent cb22bc44
......@@ -24,6 +24,8 @@ OPTIONS
prints the synopsis and a list of available commands.
If a git command is named this option will bring up the
man-page for that command.
path to wherever your core git programs are installed.
......@@ -160,6 +160,26 @@ static void prepend_to_path(const char *dir, int len)
setenv("PATH", path, 1);
/* has anyone seen 'man' installed anywhere else than in /usr/bin? */
#define PATH_TO_MAN "/usr/bin/man"
static void show_man_page(char *git_cmd)
char *page;
if (!strncmp(git_cmd, "git", 3))
page = git_cmd;
else {
int page_len = strlen(git_cmd) + 4;
page = malloc(page_len + 1);
strcpy(page, "git-");
strcpy(page + 4, git_cmd);
page[page_len] = 0;
execlp(PATH_TO_MAN, "man", page, NULL);
int main(int argc, char **argv, char **envp)
char git_command[PATH_MAX + 1];
......@@ -199,8 +219,12 @@ int main(int argc, char **argv, char **envp)
usage(NULL, NULL);
if (i >= argc || show_help)
usage(exec_path, NULL);
if (i >= argc || show_help) {
if (i >= argc)
usage(exec_path, NULL);
/* allow relative paths, but run with exact */
if (chdir(exec_path)) {
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment