threads / patch / 9662

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

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

## tl;dr

4 messages between Aug 26, 2007 and Aug 27, 2007. Diffs are folded; open one to read it.

replies: 3people: 3as markdown or json

Petr Baudis· Aug 26, 2007, 20:45 UTC · lore

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 <pasky@suse.cz>
---
 builtin-init-db.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
Show changes to builtin-init-db.c +9 −5
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
Johannes Schindelin· Aug 27, 2007, 08:51 UTC · re: Petr Baudis · lore

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

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

Petr Baudis· Aug 27, 2007, 09:55 UTC · re: Johannes Schindelin · lore

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

  Hi,
On Mon, Aug 27, 2007 at 10:51:04AM CEST, Johannes Schindelin wrote:
Show 9 quoted lines
> 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.
  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
Junio C Hamano· Aug 27, 2007, 10:01 UTC · re: Petr Baudis · lore

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

Petr Baudis <pasky@suse.cz> writes:
Show 12 quoted lines
> On Mon, Aug 27, 2007 at 10:51:04AM CEST, Johannes Schindelin wrote:
>> On Sun, 26 Aug 2007, Petr Baudis wrote:
>> ...
>> 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.

Heh, "threaten" is a good word. Could you two help me with this issue? I suspect you (and probably Shawn) have the most "old fashioned" scripts that rather rely on pre-work-tree behaviour and have better chance than others to catch unintended side effects like the current "git --bare init" issues.

← back to recent threads