[PATCH] Do not verify filenames in a bare repository
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 20, 2007, 00:52 UTC
- Message-ID
- <Pine.LNX.4.63.0701200149010.22628@wbgn013.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