{"thread":{"id":"2572","subject":"[PATCH 2/5] Server-side support for user-relative paths.","startedAt":"2005-11-17T19:37:14Z","lastAt":"2005-11-17T19:37:14Z","messageCount":1,"participants":["Andreas Ericsson"],"isPatch":true,"patchVersion":1,"patchTotal":5},"messages":[{"id":"12133","messageId":"20051117193714.35B275BF8E@nox.op5.se","threadId":"2572","inReplyTo":null,"subject":"[PATCH 2/5] Server-side support for user-relative paths.","fromName":"Andreas Ericsson","fromEmail":"exon@op5.se","sentAt":"2005-11-17T19:37:14Z","receivedAt":"2005-11-17T19:37:14Z","isPatch":true,"sender":{"key":"exon@op5.se","avatar":"https://gravatar.com/avatar/b948c4f759e868f8e721e545e37afe2cf89cfa8e2ee8b70a432f0d76aee39891?d=mp&s=160"},"body":"\nThis patch basically just removes the redundant code from\n{receive,upload}-pack.c in favour of the library code in path.c.\n\nSigned-off-by: Andreas Ericsson <ae@op5.se>\n\n---\n\n receive-pack.c |   17 ++++-------------\n upload-pack.c  |   15 +++------------\n 2 files changed, 7 insertions(+), 25 deletions(-)\n\napplies-to: b08588da04c14104d2e158d26881062c8f21598a\n03ddd42c1ad92bafbb536e9b50368a57013fdba2\ndiff --git a/receive-pack.c b/receive-pack.c\nindex 8f157bc..1873506 100644\n--- a/receive-pack.c\n+++ b/receive-pack.c\n@@ -248,11 +248,11 @@ static void unpack(void)\n int main(int argc, char **argv)\n {\n \tint i;\n-\tconst char *dir = NULL;\n+\tchar *dir = NULL;\n \n \targv++;\n \tfor (i = 1; i < argc; i++) {\n-\t\tconst char *arg = *argv++;\n+\t\tchar *arg = *argv++;\n \n \t\tif (*arg == '-') {\n \t\t\t/* Do flag handling here */\n@@ -265,18 +265,9 @@ int main(int argc, char **argv)\n \tif (!dir)\n \t\tusage(receive_pack_usage);\n \n-\t/* chdir to the directory. If that fails, try appending \".git\" */\n-\tif (chdir(dir) < 0) {\n-\t\tif (chdir(mkpath(\"%s.git\", dir)) < 0)\n-\t\t\tdie(\"unable to cd to %s\", dir);\n-\t}\n-\n-\t/* If we have a \".git\" directory, chdir to it */\n-\tchdir(\".git\");\n-\tputenv(\"GIT_DIR=.\");\n+\tif(!enter_repo(dir, 0))\n+\t\tdie(\"'%s': unable to chdir or not a git archive\", dir);\n \n-\tif (access(\"objects\", X_OK) < 0 || access(\"refs/heads\", X_OK) < 0)\n-\t\tdie(\"%s doesn't appear to be a git directory\", dir);\n \twrite_head_info();\n \n \t/* EOF */\ndiff --git a/upload-pack.c b/upload-pack.c\nindex be63132..1834b6b 100644\n--- a/upload-pack.c\n+++ b/upload-pack.c\n@@ -248,7 +248,7 @@ static int upload_pack(void)\n \n int main(int argc, char **argv)\n {\n-\tconst char *dir;\n+\tchar *dir;\n \tint i;\n \tint strict = 0;\n \n@@ -275,18 +275,9 @@ int main(int argc, char **argv)\n \t\tusage(upload_pack_usage);\n \tdir = argv[i];\n \n-\t/* chdir to the directory. If that fails, try appending \".git\" */\n-\tif (chdir(dir) < 0) {\n-\t\tif (strict || chdir(mkpath(\"%s.git\", dir)) < 0)\n-\t\t\tdie(\"git-upload-pack unable to chdir to %s\", dir);\n-\t}\n-\tif (!strict)\n-\t\tchdir(\".git\");\n-\n-\tif (access(\"objects\", X_OK) || access(\"refs\", X_OK))\n-\t\tdie(\"git-upload-pack: %s doesn't seem to be a git archive\", dir);\n+\tif (!enter_repo(dir, strict))\n+\t\tdie(\"'%s': unable to chdir or not a git archive\", dir);\n \n-\tputenv(\"GIT_DIR=.\");\n \tupload_pack();\n \treturn 0;\n }\n---\n0.99.9.GIT\n"}]}