[PATCH] Do not verify filenames in a bare repository
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