# BUG: git --bare log HEAD

4 messages from 2007-01-19 to 2007-01-20. Participants: Han-Wen Nienhuys, Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/6435

## Han-Wen Nienhuys, 2007-01-19 12:02

Subject: BUG: git --bare log HEAD
Message-ID: <eoqc09$454$2@sea.gmane.org>
URL: https://gitlist.dev/e/eoqc09%24454%242%40sea.gmane.org

```

of course, when --bare is used, then HEAD is not ambiguous.


[lilydev@haring .git]$ git --bare log HEAD
fatal: ambiguous argument 'HEAD': both revision and filename
Use '--' to separate filenames from revisions

-- 
 Han-Wen Nienhuys - hanwen@xs4all.nl - http://www.xs4all.nl/~hanwen

```

## Johannes Schindelin, 2007-01-20 00:52

Subject: [PATCH] Do not verify filenames in a bare repository
Message-ID: <Pine.LNX.4.63.0701200149010.22628@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0701200149010.22628%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <eoqc09$454$2@sea.gmane.org>

```

For example, it makes no sense to check the presence of a file
named "HEAD" when calling "git log HEAD" in a bare repository.

Noticed by Han-Wen Nienhuys.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---

	On Fri, 19 Jan 2007, Han-Wen Nienhuys wrote:

	> of course, when --bare is used, then HEAD is not ambiguous.
	> 
	> 
	> [lilydev@haring .git]$ git --bare log HEAD
	> fatal: ambiguous argument 'HEAD': both revision and filename
	> Use '--' to separate filenames from revisions

	Note that it would still fail in your case, since saying "--bare" 
	does not get picked up if the current directory is named ".git".

	I was close to sending a patch which sets the environment variable
	"GIT_IS_BARE" when calling git with "--bare", and checking that, 
	but decided against it: it is more likely you are about to shoot 
	yourself in the foot, because real bare repositories are not named 
	".git".

 setup.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/setup.c b/setup.c
index cc97f9f..7181560 100644
--- a/setup.c
+++ b/setup.c
@@ -95,6 +95,9 @@ void verify_non_filename(const char *prefix, const char *arg)
 	const char *name;
 	struct stat st;
 
+	if (is_bare_repository())
+		return;
+
 	if (*arg == '-')
 		return; /* flag */
 	name = prefix ? prefix_filename(prefix, strlen(prefix), arg) : arg;
-- 
1.5.0.rc1.g38843-dirty

```

## Junio C Hamano, 2007-01-20 00:56

Subject: Re: [PATCH] Do not verify filenames in a bare repository
Message-ID: <7vmz4ebjoc.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vmz4ebjoc.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.63.0701200149010.22628@wbgn013.biozentrum.uni-wuerzburg.de>

```
This feels very sane.  Thanks.

A handful tests to make sure it catches the cases wants to catch
and it does not hiccup with the cases it shouldn't catch would
be appropriate, though.

```

## Johannes Schindelin, 2007-01-20 01:05

Subject: Re: [PATCH] Do not verify filenames in a bare repository
Message-ID: <Pine.LNX.4.63.0701200205011.22628@wbgn013.biozentrum.uni-wuerzburg.de>
URL: https://gitlist.dev/e/Pine.LNX.4.63.0701200205011.22628%40wbgn013.biozentrum.uni-wuerzburg.de
In-Reply-To: <7vmz4ebjoc.fsf@assigned-by-dhcp.cox.net>

```
Hi,

On Fri, 19 Jan 2007, Junio C Hamano wrote:

> This feels very sane.  Thanks.

I changed my mind. A saner check would be if the current directory starts 
with GIT_DIR, so that even (cd .git; git show HEAD) still works.

> A handful tests to make sure it catches the cases wants to catch and it 
> does not hiccup with the cases it shouldn't catch would be appropriate, 
> though.

Sure. I'll resend in a few minutes.

Ciao,
Dscho

```
