Code

init-db, rev-parse --git-dir: do not append redundant slash
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sun, 14 Feb 2010 15:44:42 +0000 (22:44 +0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 14 Feb 2010 21:21:39 +0000 (13:21 -0800)
If git_dir already has the trailing slash, don't put another one
before .git. This only happens when git_dir is '/' or 'C:/'

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-init-db.c
builtin-rev-parse.c

index dd84caecbc2a07bca90c8524157d50a8fd5ae316..aae7a4d7ee946f0792a4be40ddaced570dc766ac 100644 (file)
@@ -331,11 +331,14 @@ int init_db(const char *template_dir, unsigned int flags)
                git_config_set("receive.denyNonFastforwards", "true");
        }
 
-       if (!(flags & INIT_DB_QUIET))
-               printf("%s%s Git repository in %s/\n",
+       if (!(flags & INIT_DB_QUIET)) {
+               const char *git_dir = get_git_dir();
+               int len = strlen(git_dir);
+               printf("%s%s Git repository in %s%s\n",
                       reinit ? "Reinitialized existing" : "Initialized empty",
                       shared_repository ? " shared" : "",
-                      get_git_dir());
+                      git_dir, len && git_dir[len-1] != '/' ? "/" : "");
+       }
 
        return 0;
 }
index 37d02335212dea9672e2472970f66dc4ac95dfd1..d0ccb4c96891749f1203d9bdb2ddd897cd2fb7f8 100644 (file)
@@ -608,6 +608,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
                        if (!strcmp(arg, "--git-dir")) {
                                const char *gitdir = getenv(GIT_DIR_ENVIRONMENT);
                                static char cwd[PATH_MAX];
+                               int len;
                                if (gitdir) {
                                        puts(gitdir);
                                        continue;
@@ -618,7 +619,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
                                }
                                if (!getcwd(cwd, PATH_MAX))
                                        die_errno("unable to get current working directory");
-                               printf("%s/.git\n", cwd);
+                               len = strlen(cwd);
+                               printf("%s%s.git\n", cwd, len && cwd[len-1] != '/' ? "/" : "");
                                continue;
                        }
                        if (!strcmp(arg, "--is-inside-git-dir")) {