All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sverre Rabbelier <srabbelier@gmail.com>
To: Git List <git@vger.kernel.org>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Daniel Barkalow <barkalow@iabervon.org>,
	Johan Herland <johan@herland.net>
Cc: Daniel Barkalow <barkalow@iabervon.org>,
	Sverre Rabbelier <srabbelier@gmail.com>
Subject: [PATCH v3 05/12] Add a config option for remotes to specify a foreign vcs
Date: Fri,  6 Nov 2009 23:52:39 +0100	[thread overview]
Message-ID: <1257547966-14603-6-git-send-email-srabbelier@gmail.com> (raw)
In-Reply-To: <1257547966-14603-5-git-send-email-srabbelier@gmail.com>

From: Daniel Barkalow <barkalow@iabervon.org>

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>
---

	Unchanged.

 Documentation/config.txt |    4 ++++
 remote.c                 |    4 +++-
 remote.h                 |    2 ++
 transport.c              |    5 +++++
 4 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index d1e2120..0d9d369 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1408,6 +1408,10 @@ remote.<name>.tagopt::
 	Setting this value to \--no-tags disables automatic tag following when
 	fetching from remote <name>
 
+remote.<name>.vcs::
+	Setting this to a value <vcs> will cause git to interact with
+	the remote with the git-remote-<vcs> helper.
+
 remotes.<group>::
 	The list of remotes which are fetched by "git remote update
 	<group>".  See linkgit:git-remote[1].
diff --git a/remote.c b/remote.c
index 15c9cec..09bb79c 100644
--- a/remote.c
+++ b/remote.c
@@ -54,7 +54,7 @@ static char buffer[BUF_SIZE];
 
 static int valid_remote(const struct remote *remote)
 {
-	return !!remote->url;
+	return (!!remote->url) || (!!remote->foreign_vcs);
 }
 
 static const char *alias_url(const char *url, struct rewrites *r)
@@ -444,6 +444,8 @@ static int handle_config(const char *key, const char *value, void *cb)
 	} else if (!strcmp(subkey, ".proxy")) {
 		return git_config_string((const char **)&remote->http_proxy,
 					 key, value);
+	} else if (!strcmp(subkey, ".vcs")) {
+		return git_config_string(&remote->foreign_vcs, key, value);
 	}
 	return 0;
 }
diff --git a/remote.h b/remote.h
index 5db8420..ac0ce2f 100644
--- a/remote.h
+++ b/remote.h
@@ -11,6 +11,8 @@ struct remote {
 	const char *name;
 	int origin;
 
+	const char *foreign_vcs;
+
 	const char **url;
 	int url_nr;
 	int url_alloc;
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;
-- 
1.6.5.2.158.g6dacb

  reply	other threads:[~2009-11-06 22:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-06 22:52 [PATCH v3 00/12] Reroll of the remote-vcs-helper series Sverre Rabbelier
2009-11-06 22:52 ` [PATCH v3 01/12] Fix memory leak in helper method for disconnect Sverre Rabbelier
2009-11-06 22:52   ` [PATCH v3 02/12] Allow programs to not depend on remotes having urls Sverre Rabbelier
2009-11-06 22:52     ` [PATCH v3 03/12] Use a function to determine whether a remote is valid Sverre Rabbelier
2009-11-06 22:52       ` [PATCH v3 04/12] Allow fetch to modify refs Sverre Rabbelier
2009-11-06 22:52         ` Sverre Rabbelier [this message]
2009-11-06 22:52           ` [PATCH v3 06/12] Allow specifying the remote helper in the url Sverre Rabbelier
2009-11-06 22:52             ` [PATCH v3 07/12] Add support for "import" helper command Sverre Rabbelier
2009-11-06 22:52               ` [PATCH v3 08/12] Allow helper to map private ref names into normal names Sverre Rabbelier
2009-11-06 22:52                 ` [PATCH v3 09/12] Allow helpers to report in "list" command that the ref is unchanged Sverre Rabbelier
2009-11-06 22:52                   ` [PATCH v3 10/12] Allow helpers to request the path to the .git directory Sverre Rabbelier
2009-11-06 22:52                     ` [PATCH v3 11/12] Basic build infrastructure for Python scripts Sverre Rabbelier
2009-11-06 22:52                       ` [PATCH v3 12/12] Add Python support library for remote helpers Sverre Rabbelier
2009-11-06 23:23                       ` [PATCH v3 11/12] Basic build infrastructure for Python scripts Andrzej K. Haczewski
2009-11-06 23:25                         ` Sverre Rabbelier
2009-11-07 12:13                           ` Johannes Schindelin
2009-11-06 23:12                 ` [PATCH v3 08/12] Allow helper to map private ref names into normal names Daniel Barkalow
2009-11-06 23:19                   ` Sverre Rabbelier
2009-11-09  6:42                     ` Sverre Rabbelier
2009-11-09 16:44                       ` Junio C Hamano
2009-11-09 17:10                         ` Sverre Rabbelier
2009-11-09 20:32                           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1257547966-14603-6-git-send-email-srabbelier@gmail.com \
    --to=srabbelier@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=barkalow@iabervon.org \
    --cc=git@vger.kernel.org \
    --cc=johan@herland.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.