diff options
Diffstat (limited to 'git.c')
| -rw-r--r-- | git.c | 35 | 
1 files changed, 23 insertions, 12 deletions
| @@ -7,8 +7,8 @@  const char git_usage_string[] =  	"git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" -	"           [-p|--paginate|--no-pager] [--no-replace-objects]\n" -	"           [--bare] [--git-dir=<path>] [--work-tree=<path>]\n" +	"           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]\n" +	"           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"  	"           [-c name=value] [--help]\n"  	"           <command> [<args>]"; @@ -126,6 +126,20 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)  			setenv(GIT_DIR_ENVIRONMENT, cmd + 10, 1);  			if (envchanged)  				*envchanged = 1; +		} else if (!strcmp(cmd, "--namespace")) { +			if (*argc < 2) { +				fprintf(stderr, "No namespace given for --namespace.\n" ); +				usage(git_usage_string); +			} +			setenv(GIT_NAMESPACE_ENVIRONMENT, (*argv)[1], 1); +			if (envchanged) +				*envchanged = 1; +			(*argv)++; +			(*argc)--; +		} else if (!prefixcmp(cmd, "--namespace=")) { +			setenv(GIT_NAMESPACE_ENVIRONMENT, cmd + 12, 1); +			if (envchanged) +				*envchanged = 1;  		} else if (!strcmp(cmd, "--work-tree")) {  			if (*argc < 2) {  				fprintf(stderr, "No directory given for --work-tree.\n" ); @@ -183,8 +197,6 @@ static int handle_alias(int *argcp, const char ***argv)  		if (alias_string[0] == '!') {  			const char **alias_argv;  			int argc = *argcp, i; -			struct strbuf sb = STRBUF_INIT; -			const char *env[2];  			commit_pager_choice(); @@ -195,13 +207,7 @@ static int handle_alias(int *argcp, const char ***argv)  				alias_argv[i] = (*argv)[i];  			alias_argv[argc] = NULL; -			strbuf_addstr(&sb, "GIT_PREFIX="); -			if (subdir) -				strbuf_addstr(&sb, subdir); -			env[0] = sb.buf; -			env[1] = NULL; -			ret = run_command_v_opt_cd_env(alias_argv, RUN_USING_SHELL, NULL, env); -			strbuf_release(&sb); +			ret = run_command_v_opt(alias_argv, RUN_USING_SHELL);  			if (ret >= 0)   /* normal exit */  				exit(ret); @@ -328,7 +334,7 @@ static void handle_internal_command(int argc, const char **argv)  		{ "annotate", cmd_annotate, RUN_SETUP },  		{ "apply", cmd_apply, RUN_SETUP_GENTLY },  		{ "archive", cmd_archive }, -		{ "bisect--helper", cmd_bisect__helper, RUN_SETUP | NEED_WORK_TREE }, +		{ "bisect--helper", cmd_bisect__helper, RUN_SETUP },  		{ "blame", cmd_blame, RUN_SETUP },  		{ "branch", cmd_branch, RUN_SETUP },  		{ "bundle", cmd_bundle, RUN_SETUP_GENTLY }, @@ -428,6 +434,7 @@ static void handle_internal_command(int argc, const char **argv)  		{ "update-ref", cmd_update_ref, RUN_SETUP },  		{ "update-server-info", cmd_update_server_info, RUN_SETUP },  		{ "upload-archive", cmd_upload_archive }, +		{ "upload-archive--writer", cmd_upload_archive_writer },  		{ "var", cmd_var, RUN_SETUP_GENTLY },  		{ "verify-pack", cmd_verify_pack },  		{ "verify-tag", cmd_verify_tag, RUN_SETUP }, @@ -467,6 +474,8 @@ static void execv_dashed_external(const char **argv)  	const char *tmp;  	int status; +	if (use_pager == -1) +		use_pager = check_pager_config(argv[0]);  	commit_pager_choice();  	strbuf_addf(&cmd, "git-%s", argv[0]); @@ -529,6 +538,8 @@ int main(int argc, const char **argv)  	if (!cmd)  		cmd = "git-help"; +	git_setup_gettext(); +  	/*  	 * "git-xxxx" is the same as "git xxxx", but we obviously:  	 * | 
