git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/5] init-db, rev-parse --git-dir: do not append redundant slash

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Feb 11, 2010, 14:43 UTC
Message-ID
<1265899403-15904-3-git-send-email-pclouds@gmail.com>
In-Reply-To
<1265899403-15904-1-git-send-email-pclouds@gmail.com>

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>
---
 builtin-init-db.c   |    9 ++++++---
 builtin-rev-parse.c |    4 +++-
 2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/builtin-init-db.c b/builtin-init-db.c
index dd84cae..aae7a4d 100644
--- a/builtin-init-db.c
+++ b/builtin-init-db.c
@@ -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;
 }
diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c
index a8c5043..88bad9a 100644
--- a/builtin-rev-parse.c
+++ b/builtin-rev-parse.c
@@ -637,6 +637,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;
@@ -647,7 +648,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")) {
-- 
1.7.0.rc2.182.g3adef
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 3 of 10 in “Worktree/Gitdir at root directory”
  1. 0/5 Worktree/Gitdir at root directoryNguyễn Thái Ngọc Duy, Feb 11, 2010
  2. 1/5 make_absolute_path(): Do not append redundant slashNguyễn Thái Ngọc Duy, Feb 11, 2010
  3. 2/5 init-db, rev-parse --git-dir: do not append redundant slashNguyễn Thái Ngọc Duy, Feb 11, 2010
  4. 3/5 Add is_root_path()Nguyễn Thái Ngọc Duy, Feb 11, 2010
  5. Johannes SixtFeb 12, 2010
  6. 4/5 Support working directory located at rootNguyễn Thái Ngọc Duy, Feb 11, 2010
  7. 5/5 Add test for using Git at root directoryNguyễn Thái Ngọc Duy, Feb 11, 2010
  8. Johannes SixtFeb 12, 2010
  9. João Carlos Mendes LuísFeb 12, 2010
  10. Johannes SixtFeb 12, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.