Merge branch 'nr/git-cd-to-a-directory'
Just like "make -C <directory>", make "git -C <directory> ..." to go there before doing anything else. * nr/git-cd-to-a-directory: t0056: "git -C" test updates git: run in a directory given with -C option
This commit is contained in:
13
git.c
13
git.c
@ -7,7 +7,7 @@
|
||||
#include "commit.h"
|
||||
|
||||
const char git_usage_string[] =
|
||||
"git [--version] [--help] [-c name=value]\n"
|
||||
"git [--version] [--help] [-C <path>] [-c name=value]\n"
|
||||
" [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
|
||||
" [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]\n"
|
||||
" [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
|
||||
@ -165,6 +165,17 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
|
||||
set_alternate_shallow_file((*argv)[0]);
|
||||
if (envchanged)
|
||||
*envchanged = 1;
|
||||
} else if (!strcmp(cmd, "-C")) {
|
||||
if (*argc < 2) {
|
||||
fprintf(stderr, "No directory given for -C.\n" );
|
||||
usage(git_usage_string);
|
||||
}
|
||||
if (chdir((*argv)[1]))
|
||||
die_errno("Cannot change to '%s'", (*argv)[1]);
|
||||
if (envchanged)
|
||||
*envchanged = 1;
|
||||
(*argv)++;
|
||||
(*argc)--;
|
||||
} else {
|
||||
fprintf(stderr, "Unknown option: %s\n", cmd);
|
||||
usage(git_usage_string);
|
||||
|
Reference in New Issue
Block a user