test-lib-functions.sh: teach test_commit -C <dir>
[gitweb.git] / submodule.c
index 6f7d883de950af8ba6427537d09e021a4bed36bd..d4f7afe2f1ad539be760a5a4bd3eb342106a007b 100644 (file)
@@ -1223,27 +1223,28 @@ int merge_submodule(unsigned char result[20], const char *path,
 }
 
 /* Update gitfile and core.worktree setting to connect work tree and git dir */
-void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir)
+void connect_work_tree_and_git_dir(const char *work_tree_, const char *git_dir_)
 {
        struct strbuf file_name = STRBUF_INIT;
        struct strbuf rel_path = STRBUF_INIT;
-       const char *real_work_tree = xstrdup(real_path(work_tree));
+       char *git_dir = xstrdup(real_path(git_dir_));
+       char *work_tree = xstrdup(real_path(work_tree_));
 
        /* Update gitfile */
        strbuf_addf(&file_name, "%s/.git", work_tree);
        write_file(file_name.buf, "gitdir: %s",
-                  relative_path(git_dir, real_work_tree, &rel_path));
+                  relative_path(git_dir, work_tree, &rel_path));
 
        /* Update core.worktree setting */
        strbuf_reset(&file_name);
        strbuf_addf(&file_name, "%s/config", git_dir);
        git_config_set_in_file(file_name.buf, "core.worktree",
-                              relative_path(real_work_tree, git_dir,
-                                            &rel_path));
+                              relative_path(work_tree, git_dir, &rel_path));
 
        strbuf_release(&file_name);
        strbuf_release(&rel_path);
-       free((void *)real_work_tree);
+       free(work_tree);
+       free(git_dir);
 }
 
 int parallel_submodules(void)