X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=setup.c;h=43cd3f94ea31a7a2a8f8a07cbb67598bb1e52c39;hb=2ce1a1f23fd83d2cab22f87aff1165fb0c7ad450;hp=145eca50f41d811c4c8fcb21ed2604e6b2971aba;hpb=317efa63fc457d1a726902ddf97298c201df627c;p=git.git diff --git a/setup.c b/setup.c index 145eca50f..43cd3f94e 100644 --- a/setup.c +++ b/setup.c @@ -206,6 +206,22 @@ static const char *set_work_tree(const char *dir) return NULL; } +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; +} + /* * We cannot decide in this function whether we are in the work tree or * not, since the config can only be read _after_ this function was called.