]> git.ipfire.org Git - thirdparty/git.git/commitdiff
submodule--helper: remove repeated code in sync_submodule()
authorAtharva Raykar <raykar.ath@gmail.com>
Tue, 10 Aug 2021 11:46:35 +0000 (17:16 +0530)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Aug 2021 18:45:11 +0000 (11:45 -0700)
This part of `sync_submodule()` is doing the same thing that
`compute_submodule_clone_url()` is doing. Let's reuse that helper here.

Note that this change adds a small overhead where we allocate and free
the 'remote' twice, but that is a small price to pay for the higher
level of abstraction we get.

Signed-off-by: Atharva Raykar <raykar.ath@gmail.com>
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Shourya Shukla <periperidip@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c

index 75179fca89d00b018eea780b831378add21fc026..3dd122b4105b02654a9a6fc1b11e10aa3934e59a 100644 (file)
@@ -1373,20 +1373,10 @@ static void sync_submodule(const char *path, const char *prefix,
        if (sub && sub->url) {
                if (starts_with_dot_dot_slash(sub->url) ||
                    starts_with_dot_slash(sub->url)) {
-                       char *remote_url, *up_path;
-                       char *remote = get_default_remote();
-                       strbuf_addf(&sb, "remote.%s.url", remote);
-
-                       if (git_config_get_string(sb.buf, &remote_url))
-                               remote_url = xgetcwd();
-
-                       up_path = get_up_path(path);
-                       sub_origin_url = relative_url(remote_url, sub->url, up_path);
-                       super_config_url = relative_url(remote_url, sub->url, NULL);
-
-                       free(remote);
+                       char *up_path = get_up_path(path);
+                       sub_origin_url = compute_submodule_clone_url(sub->url, up_path, 1);
+                       super_config_url = compute_submodule_clone_url(sub->url, NULL, 1);
                        free(up_path);
-                       free(remote_url);
                } else {
                        sub_origin_url = xstrdup(sub->url);
                        super_config_url = xstrdup(sub->url);