[PATCH 4/8] Add a function to set a non-default work tree
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 96dcb49..d88a4e2 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.610.gea6cd