# [PATCH 06/11] Add a function to set a non-default work tree

1 messages from 2008-03-08 to 2008-03-08. Participants: Daniel Barkalow.
Thread: https://gitlist.dev/t/12587

## Daniel Barkalow, 2008-03-08 23:04

Subject: [PATCH 06/11] Add a function to set a non-default work tree
Message-ID: <alpine.LNX.1.00.0803081804120.19665@iabervon.org>
URL: https://gitlist.dev/e/alpine.LNX.1.00.0803081804120.19665%40iabervon.org

```
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
---
 cache.h       |    1 +
 environment.c |    6 ++++++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/cache.h b/cache.h
index 6aae174..32e8746 100644
--- a/cache.h
+++ b/cache.h
@@ -311,6 +311,7 @@ extern char *get_index_file(void);
 extern char *get_graft_file(void);
 extern int set_git_dir(const char *path);
 extern const char *get_git_work_tree(void);
+extern void set_git_work_tree(const char *tree);
 
 #define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES"
 
diff --git a/environment.c b/environment.c
index 6739a3f..d6c6a6b 100644
--- a/environment.c
+++ b/environment.c
@@ -81,6 +81,12 @@ const char *get_git_dir(void)
 	return git_dir;
 }
 
+void set_git_work_tree(const char *new_work_tree)
+{
+	get_git_work_tree(); /* make sure it's initialized */
+	work_tree = xstrdup(make_absolute_path(new_work_tree));
+}
+
 const char *get_git_work_tree(void)
 {
 	static int initialized = 0;
-- 
1.5.4.3.327.g614d7.dirty


```
