Subject: Re: [PATCH] t1020-subdirectory: test alias expansion in a subdirectory

From: Nguyen Thai Ngoc Duy <[email-masked]>
Date: Mon, 8 Nov 2010 17:20:56 +0700

On Mon, Nov 08, 2010 at 09:32:03AM +0100, Michael J Gruber wrote:
> Add a test for alias expansion in a subdirectory of the worktree.
> 
> Signed-off-by: Michael J Gruber <[email-masked]>
> 
> ---
>     65f3a9e (Remove all logic from get_git_work_tree(), 2010-11-01) breaks this test,
>     which is why I am adding it.

How about squashing this in?

--8<--
Subject: Allow set_git_work_tree() to be called more than once

Usually one of the setup functions is called once. However alias
handling code needs to look ahead in $GIT_DIR/config for aliases. So
set_git_work_tree() may be called twice: once when alias is searched,
once when the actual command is run.

Loosen the condition and let it through. We can stricten it back when
alias handling is fixed.
---
diff --git a/environment.c b/environment.c
index 6db00da..f0d0b07 100644
--- a/environment.c
+++ b/environment.c
@@ -128,8 +128,6 @@ const char *get_git_dir(void)
 	return git_dir;
 }
 
-static int git_work_tree_initialized;
-
 /*
  * Note.  This works only before you used a work tree.  This was added
  * primarily to support git-clone to work in a new repository it just
@@ -137,9 +135,7 @@ static int git_work_tree_initialized;
  */
 void set_git_work_tree(const char *new_work_tree)
 {
-	if (git_work_tree_initialized)
-		die("internal error: work tree has already been set");
-	git_work_tree_initialized = 1;
+	free(work_tree);
 	work_tree = xstrdup(make_absolute_path(new_work_tree));
 }
 
--8<--
-- 
Duy