{"thread":{"id":"9149","subject":"[PATCH 2/3] Add setup_new_git_dir() function","startedAt":"2007-07-22T18:56:11Z","lastAt":"2007-07-22T18:56:11Z","messageCount":1,"participants":["Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"48163","messageId":"Pine.LNX.4.64.0707221956010.14781@racer.site","threadId":"9149","inReplyTo":null,"subject":"[PATCH 2/3] Add setup_new_git_dir() function","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-07-22T18:56:11Z","receivedAt":"2007-07-22T18:56:11Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"\nWith the function setup_new_git_dir() you can reset the path that will\nbe used for git_path(), git_dir() and friends.\n\nThe responsibility to close files and throw away information from the\nold git_dir lies with the caller.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n cache.h       |    1 +\n environment.c |    8 ++++++++\n 2 files changed, 9 insertions(+), 0 deletions(-)\n\ndiff --git a/cache.h b/cache.h\nindex 98af530..bd58853 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -214,6 +214,7 @@ extern char *get_object_directory(void);\n extern char *get_refs_directory(void);\n extern char *get_index_file(void);\n extern char *get_graft_file(void);\n+extern int setup_new_git_dir(const char *path);\n \n #define ALTERNATE_DB_ENVIRONMENT \"GIT_ALTERNATE_OBJECT_DIRECTORIES\"\n \ndiff --git a/environment.c b/environment.c\nindex f83fb9e..264392b 100644\n--- a/environment.c\n+++ b/environment.c\n@@ -107,3 +107,11 @@ char *get_graft_file(void)\n \t\tsetup_git_env();\n \treturn git_graft_file;\n }\n+\n+int setup_new_git_dir(const char *path)\n+{\n+\tif (setenv(GIT_DIR_ENVIRONMENT, path, 1))\n+\t\treturn error(\"Could not set GIT_DIR to '%s'\", path);\n+\tsetup_git_env();\n+\treturn 0;\n+}\n-- \n1.5.3.rc2.29.gc4640f\n"}]}