[PATCH] [RED] git-init: Cannot setup bare repository

Subsystems: the rest

DORMANTno replies

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] [RED] git-init: Cannot setup bare repository

From: Petr Baudis <hidden>
Date: 2016-06-15 22:43:31

git-init is totally broken wrt. setting up bare repository - it thinks no
repository is bare (maybe I could coerce it to think some repositories
indeed are bare, but I have my doubts). This patch is more like a cry for
help, not something to be applied, though it works as a crude workaround if
you're hit by the same problem as me. Unfortunately it's hard to make sense
of the tangled git_working_tree_cfg, work_tree, is_bare_tree_cfg etc.
network of variables, so I don't have any clear idea about a proper fix nor
the time to figure it out. :-(

Signed-off-by: Petr Baudis <redacted>
---

 builtin-init-db.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/builtin-init-db.c b/builtin-init-db.c
index 0d9b1e0..3718355 100644
--- a/builtin-init-db.c
+++ b/builtin-init-db.c
@@ -299,11 +299,15 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
 			usage(init_db_usage);
 	}
 
-	git_work_tree_cfg = xcalloc(PATH_MAX, 1);
-	if (!getcwd(git_work_tree_cfg, PATH_MAX))
-		die ("Cannot access current working directory.");
-	if (access(get_git_work_tree(), X_OK))
-		die ("Cannot access work tree '%s'", get_git_work_tree());
+	if (!strcmp(get_git_dir(), ".git")) {
+		git_work_tree_cfg = xcalloc(PATH_MAX, 1);
+		if (!getcwd(git_work_tree_cfg, PATH_MAX))
+			die ("Cannot access current working directory.");
+		if (access(get_git_work_tree(), X_OK))
+			die ("Cannot access work tree '%s'", get_git_work_tree());
+	} else {
+		git_work_tree_cfg = NULL;
+	}
 
 	/*
 	 * Set up the default .git directory contents

Re: [PATCH] [RED] git-init: Cannot setup bare repository

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:31

Hi,

On Sun, 26 Aug 2007, Petr Baudis wrote:
git-init is totally broken wrt. setting up bare repository - it thinks 
no repository is bare (maybe I could coerce it to think some 
repositories indeed are bare, but I have my doubts).
You were too busy playing Go, probably, so you missed my patch which tried 
to fix this issue.  Alas, it broke more than it fixed, so it was just 
worked around for git-clone --bare.

I'll have a more thorough go at it today.

Ciao,
Dscho

Re: [PATCH] [RED] git-init: Cannot setup bare repository

From: Petr Baudis <hidden>
Date: 2016-06-15 22:43:31

  Hi,

On Mon, Aug 27, 2007 at 10:51:04AM CEST, Johannes Schindelin wrote:
On Sun, 26 Aug 2007, Petr Baudis wrote:
quoted
git-init is totally broken wrt. setting up bare repository - it thinks 
no repository is bare (maybe I could coerce it to think some 
repositories indeed are bare, but I have my doubts).
You were too busy playing Go, probably, so you missed my patch which tried 
to fix this issue.  Alas, it broke more than it fixed, so it was just 
worked around for git-clone --bare.
  AFAICS that patch is already applied as well; I tried to ask on IRC
for more fixes but seemed there is none and Junio almost threatened to
even release 1.5.3 with this bug. ;-) Well, I just needed something that
would fix this on repo.or.cz which totally broke after upgrade to new
Git version.

-- 
				Petr "Pasky" Baudis
Early to rise and early to bed makes a male healthy and wealthy and dead.
                -- James Thurber
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help