{"thread":{"id":"15282","subject":"[PATCH] setup_git_directory(): fix move to worktree toplevel directory","startedAt":"2008-08-30T09:15:32Z","lastAt":"2008-08-30T09:15:32Z","messageCount":1,"participants":["Nguyễn Thái Ngọc Duy"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"89195","messageId":"1220087732-2288-1-git-send-email-pclouds@gmail.com","threadId":"15282","inReplyTo":null,"subject":"[PATCH] setup_git_directory(): fix move to worktree toplevel directory","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2008-08-30T09:15:32Z","receivedAt":"2008-08-30T09:15:32Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"When setup_git_directory() returns successfully, it is supposed to move\ncurrent working directory to worktree toplevel directory.\n\nHowever, the code recomputing prefix inside setup_git_directory() has\nto move cwd back to original working directory, in order to get new\nprefix.  After that, it should move cwd back to worktree toplevel\ndirectory as expected.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n This is a revised version of \"Preserve cwd in setup_git_directory()\"\n I sent before. Hopefully this time the commit message makes it clear.\n\n setup.c |    2 ++\n 1 files changed, 2 insertions(+), 0 deletions(-)\n\ndiff --git a/setup.c b/setup.c\nindex 6cf9094..2e3248a 100644\n--- a/setup.c\n+++ b/setup.c\n@@ -581,6 +581,8 @@ const char *setup_git_directory(void)\n \t\tif (retval && chdir(retval))\n \t\t\tdie (\"Could not jump back into original cwd\");\n \t\trel = get_relative_cwd(buffer, PATH_MAX, get_git_work_tree());\n+\t\tif (rel && *rel && chdir(get_git_work_tree()))\n+\t\t\tdie (\"Could not jump to working directory\");\n \t\treturn rel && *rel ? strcat(rel, \"/\") : NULL;\n \t}\n \n-- \n1.6.0.96.g2fad1.dirty\n"}]}