mirror of
https://github.com/git/git.git
synced 2026-01-10 01:56:42 +00:00
Merge branch 'jk/remote-wo-url'
Memory ownership rules for the in-core representation of remote.*.url configuration values have been straightened out, which resulted in a few leak fixes and code clarification. * jk/remote-wo-url: remote: drop checks for zero-url case remote: always require at least one url in a remote t5801: test remote.*.vcs config t5801: make remote-testgit GIT_DIR setup more robust remote: allow resetting url list config: document remote.*.url/pushurl interaction remote: simplify url/pushurl selection remote: use strvecs to store remote url/pushurl remote: transfer ownership of memory in add_url(), etc remote: refactor alias_url() memory ownership archive: fix check for missing url
This commit is contained in:
19
transport.c
19
transport.c
@@ -1114,6 +1114,7 @@ static struct transport_vtable builtin_smart_vtable = {
|
||||
struct transport *transport_get(struct remote *remote, const char *url)
|
||||
{
|
||||
const char *helper;
|
||||
const char *p;
|
||||
struct transport *ret = xcalloc(1, sizeof(*ret));
|
||||
|
||||
ret->progress = isatty(2);
|
||||
@@ -1129,19 +1130,15 @@ struct transport *transport_get(struct remote *remote, const char *url)
|
||||
ret->remote = remote;
|
||||
helper = remote->foreign_vcs;
|
||||
|
||||
if (!url && remote->url)
|
||||
url = remote->url[0];
|
||||
if (!url)
|
||||
url = remote->url.v[0];
|
||||
ret->url = url;
|
||||
|
||||
/* maybe it is a foreign URL? */
|
||||
if (url) {
|
||||
const char *p = url;
|
||||
|
||||
while (is_urlschemechar(p == url, *p))
|
||||
p++;
|
||||
if (starts_with(p, "::"))
|
||||
helper = xstrndup(url, p - url);
|
||||
}
|
||||
p = url;
|
||||
while (is_urlschemechar(p == url, *p))
|
||||
p++;
|
||||
if (starts_with(p, "::"))
|
||||
helper = xstrndup(url, p - url);
|
||||
|
||||
if (helper) {
|
||||
transport_helper_init(ret, helper);
|
||||
|
||||
Reference in New Issue
Block a user