]> asedeno.scripts.mit.edu Git - git.git/blobdiff - setup.c
Merge branch 'lt/rev-list-gitlink'
[git.git] / setup.c
diff --git a/setup.c b/setup.c
index df006d9c4a674b224f36318742ef01b339d797b3..43cd3f94ea31a7a2a8f8a07cbb67598bb1e52c39 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -206,13 +206,20 @@ static const char *set_work_tree(const char *dir)
        return NULL;
 }
 
-void setup_work_tree(void) {
-       const char *work_tree = get_git_work_tree();
-       const char *git_dir = get_git_dir();
+void setup_work_tree(void)
+{
+       const char *work_tree, *git_dir;
+       static int initialized = 0;
+
+       if (initialized)
+               return;
+       work_tree = get_git_work_tree();
+       git_dir = get_git_dir();
        if (!is_absolute_path(git_dir))
                set_git_dir(make_absolute_path(git_dir));
        if (!work_tree || chdir(work_tree))
                die("This operation must be run in a work tree");
+       initialized = 1;
 }
 
 /*