[PATCH 2/5] Server-side support for user-relative paths.
From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:42:12
Subsystem:
the rest · Maintainer:
Linus Torvalds
This patch basically just removes the redundant code from
{receive,upload}-pack.c in favour of the library code in path.c.
Signed-off-by: Andreas Ericsson <redacted>
---
receive-pack.c | 17 ++++-------------
upload-pack.c | 15 +++------------
2 files changed, 7 insertions(+), 25 deletions(-)
applies-to: b08588da04c14104d2e158d26881062c8f21598a
03ddd42c1ad92bafbb536e9b50368a57013fdba2diff --git a/receive-pack.c b/receive-pack.c
index 8f157bc..1873506 100644
--- a/receive-pack.c
+++ b/receive-pack.c@@ -248,11 +248,11 @@ static void unpack(void) int main(int argc, char **argv) { int i; - const char *dir = NULL; + char *dir = NULL; argv++; for (i = 1; i < argc; i++) { - const char *arg = *argv++; + char *arg = *argv++; if (*arg == '-') { /* Do flag handling here */
@@ -265,18 +265,9 @@ int main(int argc, char **argv) if (!dir) usage(receive_pack_usage); - /* chdir to the directory. If that fails, try appending ".git" */ - if (chdir(dir) < 0) { - if (chdir(mkpath("%s.git", dir)) < 0) - die("unable to cd to %s", dir); - } - - /* If we have a ".git" directory, chdir to it */ - chdir(".git"); - putenv("GIT_DIR=."); + if(!enter_repo(dir, 0)) + die("'%s': unable to chdir or not a git archive", dir); - if (access("objects", X_OK) < 0 || access("refs/heads", X_OK) < 0) - die("%s doesn't appear to be a git directory", dir); write_head_info(); /* EOF */
diff --git a/upload-pack.c b/upload-pack.c
index be63132..1834b6b 100644
--- a/upload-pack.c
+++ b/upload-pack.c@@ -248,7 +248,7 @@ static int upload_pack(void) int main(int argc, char **argv) { - const char *dir; + char *dir; int i; int strict = 0;
@@ -275,18 +275,9 @@ int main(int argc, char **argv) usage(upload_pack_usage); dir = argv[i]; - /* chdir to the directory. If that fails, try appending ".git" */ - if (chdir(dir) < 0) { - if (strict || chdir(mkpath("%s.git", dir)) < 0) - die("git-upload-pack unable to chdir to %s", dir); - } - if (!strict) - chdir(".git"); - - if (access("objects", X_OK) || access("refs", X_OK)) - die("git-upload-pack: %s doesn't seem to be a git archive", dir); + if (!enter_repo(dir, strict)) + die("'%s': unable to chdir or not a git archive", dir); - putenv("GIT_DIR=."); upload_pack(); return 0; }
--- 0.99.9.GIT