From: Johan Herland Date: Sat, 19 Apr 2008 17:33:51 GMT Subject: Re: [PATCH 4/8] Add a function to set a non-default work tree Message-ID: <200804191933.51303.johan@herland.net> In-Reply-To: On Friday 18 April 2008, Daniel Barkalow wrote: > Signed-off-by: Daniel Barkalow > --- > 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)); Shouldn't we free(work_tree) before resetting it? > +} > + > const char *get_git_work_tree(void) > { > static int initialized = 0; ...Johan -- Johan Herland, www.herland.net