init: avoid superfluous real_path() calls
authorRené Scharfe <l.s.r@web.de>
Mon, 28 Jul 2014 18:42:05 +0000 (20:42 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 28 Jul 2014 23:17:12 +0000 (16:17 -0700)
Feeding the result of a real_path() call to real_path() again doesn't
change that result -- the returned path won't get any more real. Avoid
such a double call in set_git_dir_init() and for the same reason stop
calling real_path() before feeding paths to set_git_work_tree(), as the
latter already takes care of that.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/init-db.c
index 56f85e239ae0d2607c38e3c46013007ba9e71b12..6d8ac2cc33b25ebb29655742f241b5a61e7ca563 100644 (file)
@@ -330,12 +330,12 @@ int set_git_dir_init(const char *git_dir, const char *real_git_dir,
                 * moving the target repo later on in separate_git_dir()
                 */
                git_link = xstrdup(real_path(git_dir));
+               set_git_dir(real_path(real_git_dir));
        }
        else {
-               real_git_dir = real_path(git_dir);
+               set_git_dir(real_path(git_dir));
                git_link = NULL;
        }
-       set_git_dir(real_path(real_git_dir));
        return 0;
 }
 
@@ -578,7 +578,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
                                die_errno (_("Cannot access current working directory"));
                }
                if (work_tree)
-                       set_git_work_tree(real_path(work_tree));
+                       set_git_work_tree(work_tree);
                else
                        set_git_work_tree(git_work_tree_cfg);
                if (access(get_git_work_tree(), X_OK))
@@ -587,7 +587,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
        }
        else {
                if (work_tree)
-                       set_git_work_tree(real_path(work_tree));
+                       set_git_work_tree(work_tree);
        }
 
        set_git_dir_init(git_dir, real_git_dir, 1);