summaryrefslogtreecommitdiff
path: root/transport.c
diff options
context:
space:
mode:
authorDaniel Barkalow <barkalow@iabervon.org>2009-11-18 01:42:25 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-11-18 05:45:44 (GMT)
commitc578f51d52fe75e71d75566c2c216af989b65e6e (patch)
tree11acf3075dcc33e76423030412ff8e35140403c6 /transport.c
parent3714831189b32591ffe33c08e209a9a61c25a2f6 (diff)
downloadgit-c578f51d52fe75e71d75566c2c216af989b65e6e.zip
git-c578f51d52fe75e71d75566c2c216af989b65e6e.tar.gz
git-c578f51d52fe75e71d75566c2c216af989b65e6e.tar.bz2
Add a config option for remotes to specify a foreign vcs
If this is set, the url is not required, and the transport always uses a helper named "git-remote-<value>". It is a separate configuration option in order to allow a sensible configuration for foreign systems which either have no meaningful urls for repositories or which require urls that do not specify the system used by the repository at that location. However, this only affects how the name of the helper is determined, not anything about the interaction with the helper, and the contruction is such that, if the foreign scm does happen to use a co-named url method, a url with that method may be used directly. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'transport.c')
-rw-r--r--transport.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/transport.c b/transport.c
index 5ae8db6..13bab4e 100644
--- a/transport.c
+++ b/transport.c
@@ -818,6 +818,11 @@ struct transport *transport_get(struct remote *remote, const char *url)
url = remote->url[0];
ret->url = url;
+ if (remote && remote->foreign_vcs) {
+ transport_helper_init(ret, remote->foreign_vcs);
+ return ret;
+ }
+
if (!prefixcmp(url, "rsync:")) {
ret->get_refs_list = get_refs_via_rsync;
ret->fetch = fetch_objs_via_rsync;