make --exec=... option to git-push configurable
Having to specify git push --exec=... is annoying if you cannot have git-receivepack in your PATH on the remote side (or don't want to). This introduces the config item remote.<name>.receivepack to override the default value (which is "git-receive-pack"). Signed-off-by: Uwe Kleine-König <zeisberg@informatik.uni-freiburg.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
18bd8821ca
commit
060aafc11f
@ -356,6 +356,10 @@ remote.<name>.push::
|
|||||||
The default set of "refspec" for gitlink:git-push[1]. See
|
The default set of "refspec" for gitlink:git-push[1]. See
|
||||||
gitlink:git-push[1].
|
gitlink:git-push[1].
|
||||||
|
|
||||||
|
remote.<name>.receivepack::
|
||||||
|
The default program to execute on the remote side when pulling. See
|
||||||
|
option \--exec of gitlink:git-push[1].
|
||||||
|
|
||||||
repack.usedeltabaseoffset::
|
repack.usedeltabaseoffset::
|
||||||
Allow gitlink:git-repack[1] to create packs that uses
|
Allow gitlink:git-repack[1] to create packs that uses
|
||||||
delta-base offset. Defaults to false.
|
delta-base offset. Defaults to false.
|
||||||
|
@ -143,6 +143,7 @@ static const char *config_repo;
|
|||||||
static int config_repo_len;
|
static int config_repo_len;
|
||||||
static int config_current_uri;
|
static int config_current_uri;
|
||||||
static int config_get_refspecs;
|
static int config_get_refspecs;
|
||||||
|
static int config_get_receivepack;
|
||||||
|
|
||||||
static int get_remote_config(const char* key, const char* value)
|
static int get_remote_config(const char* key, const char* value)
|
||||||
{
|
{
|
||||||
@ -157,6 +158,15 @@ static int get_remote_config(const char* key, const char* value)
|
|||||||
else if (config_get_refspecs &&
|
else if (config_get_refspecs &&
|
||||||
!strcmp(key + 7 + config_repo_len, ".push"))
|
!strcmp(key + 7 + config_repo_len, ".push"))
|
||||||
add_refspec(xstrdup(value));
|
add_refspec(xstrdup(value));
|
||||||
|
else if (config_get_receivepack &&
|
||||||
|
!strcmp(key + 7 + config_repo_len, ".receivepack")) {
|
||||||
|
if (!execute) {
|
||||||
|
char *ex = xmalloc(strlen(value) + 8);
|
||||||
|
sprintf(ex, "--exec=%s", value);
|
||||||
|
execute = ex;
|
||||||
|
} else
|
||||||
|
error("more than one receivepack given, using the first");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -168,6 +178,7 @@ static int get_config_remotes_uri(const char *repo, const char *uri[MAX_URI])
|
|||||||
config_current_uri = 0;
|
config_current_uri = 0;
|
||||||
config_uri = uri;
|
config_uri = uri;
|
||||||
config_get_refspecs = !(refspec_nr || all || tags);
|
config_get_refspecs = !(refspec_nr || all || tags);
|
||||||
|
config_get_receivepack = (execute == NULL);
|
||||||
|
|
||||||
git_config(get_remote_config);
|
git_config(get_remote_config);
|
||||||
return config_current_uri;
|
return config_current_uri;
|
||||||
|
Loading…
Reference in New Issue
Block a user