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

4 messages from 2007-08-26 to 2007-08-27. Participants: Petr Baudis, Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/9662

## Petr Baudis, 2007-08-26 20:45

Subject: [PATCH] [RED] git-init: Cannot setup bare repository
Message-ID: <20070826204531.11592.36481.stgit@rover>
URL: https://gitlist.dev/e/20070826204531.11592.36481.stgit%40rover

```
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(-)

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, 2007-08-27 08:51

Subject: Re: [PATCH] [RED] git-init: Cannot setup bare repository
Message-ID: <Pine.LNX.4.64.0708270949590.28586@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0708270949590.28586%40racer.site
In-Reply-To: <20070826204531.11592.36481.stgit@rover>

```
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, 2007-08-27 09:55

Subject: Re: [PATCH] [RED] git-init: Cannot setup bare repository
Message-ID: <20070827095523.GQ1219@pasky.or.cz>
URL: https://gitlist.dev/e/20070827095523.GQ1219%40pasky.or.cz
In-Reply-To: <Pine.LNX.4.64.0708270949590.28586@racer.site>

```
  Hi,

On Mon, Aug 27, 2007 at 10:51:04AM CEST, Johannes Schindelin wrote:
> 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, 2007-08-27 10:01

Subject: Re: [PATCH] [RED] git-init: Cannot setup bare repository
Message-ID: <7vtzqljnxq.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vtzqljnxq.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <20070827095523.GQ1219@pasky.or.cz>

```
Petr Baudis <pasky@suse.cz> writes:

> 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.

```
