Browse Source
When setup_work_tree() is called, it moves cwd to $GIT_WORK_TREE and makes internal copy of $GIT_WORK_TREE absolute. The environt variable, if set by user, remains unchanged. If the variable is relative, it is no longer correct because its base dir has changed. Instead of making $GIT_WORK_TREE absolute too, we just say "." and let subsequent git processes handle it. Reported-by: Michel Briand <michelbriand@free.fr> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Nguyễn Thái Ngọc Duy
14 years ago
committed by
Junio C Hamano
5 changed files with 38 additions and 0 deletions
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
#include "cache.h" |
||||
#include "run-command.h" |
||||
|
||||
int main(int argc, char **argv) |
||||
{ |
||||
const char *prefix; |
||||
struct child_process cp; |
||||
int nogit = 0; |
||||
|
||||
prefix = setup_git_directory_gently(&nogit); |
||||
if (nogit) |
||||
die("No git repo found"); |
||||
if (!strcmp(argv[1], "--setup-work-tree")) { |
||||
setup_work_tree(); |
||||
argv++; |
||||
} |
||||
memset(&cp, 0, sizeof(cp)); |
||||
cp.git_cmd = 1; |
||||
cp.argv = (const char **)argv+1; |
||||
return run_command(&cp); |
||||
} |
Loading…
Reference in new issue