# [BUG] --bare is ignored before command word

5 messages from 2015-11-18 to 2015-11-20. Participants: Ronny Borchert, Jacob Keller, Matthieu Moy, Jeff King.
Thread: https://gitlist.dev/t/40830

## Ronny Borchert, 2015-11-18 17:20

Subject: [BUG] --bare is ignored before command word
Message-ID: <loom.20151118T181639-5@post.gmane.org>
URL: https://gitlist.dev/e/loom.20151118T181639-5%40post.gmane.org

```
I was trying to clone a bare repository. Not sure why I did, maybe
description on website was wrong.
My try:

git --bare clone https://github.....

This was leading in creating a none bare repository! No error or warning
message here!
I guess this behavior is also for other --xxx commands.

```

## Jacob Keller, 2015-11-18 20:08

Subject: Re: [BUG] --bare is ignored before command word
Message-ID: <CA+P7+xoD2-eDZQt29KBqZF2g4i+K7XhJG0mhUgqf5iDURBPntg@mail.gmail.com>
URL: https://gitlist.dev/e/CA%2BP7%2BxoD2-eDZQt29KBqZF2g4i%2BK7XhJG0mhUgqf5iDURBPntg%40mail.gmail.com
In-Reply-To: <loom.20151118T181639-5@post.gmane.org>

```
On Wed, Nov 18, 2015 at 9:20 AM, Ronny Borchert <mister_rs@web.de> wrote:
> I was trying to clone a bare repository. Not sure why I did, maybe
> description on website was wrong.
> My try:
>
> git --bare clone https://github.....
>
> This was leading in creating a none bare repository! No error or warning
> message here!
> I guess this behavior is also for other --xxx commands.
>

This is how the git options work. Options before a command word are
always ignored. It may be better to warn about these options though,
so that they don't cause errors? The reasoning this is done is because
options between git and its command word are used to modify general
git behavior, while options after the command word modify each
specific command in their own way.

Regards,
Jake

```

## Matthieu Moy, 2015-11-18 21:29

Subject: Re: [BUG] --bare is ignored before command word
Message-ID: <vpqa8qbov2n.fsf@anie.imag.fr>
URL: https://gitlist.dev/e/vpqa8qbov2n.fsf%40anie.imag.fr
In-Reply-To: <CA+P7+xoD2-eDZQt29KBqZF2g4i+K7XhJG0mhUgqf5iDURBPntg@mail.gmail.com>

```
Jacob Keller <jacob.keller@gmail.com> writes:

> On Wed, Nov 18, 2015 at 9:20 AM, Ronny Borchert <mister_rs@web.de> wrote:
>> I was trying to clone a bare repository. Not sure why I did, maybe
>> description on website was wrong.
>> My try:
>>
>> git --bare clone https://github.....
>>
>> This was leading in creating a none bare repository! No error or warning
>> message here!
>> I guess this behavior is also for other --xxx commands.
>>
>
> This is how the git options work. Options before a command word are
> always ignored.

No, they are not ignored. For example

$ git --foobar init
Unknown option: --foobar

=> the option is processed, and rejected explicitly.

But as you say, options before the command word apply to "git", not to
the particular command. The case of --bare is a bit unfortunate: both
"git" and "git clone" accept a --bare option, with a different meaning
(read "man git" to find what the first does).

So, I wouldn't call the current behavior a really good one, but it's the
documented behavior.

It would be nice to warn in this case though: I don't see any use for
"git --bare clone".

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```

## Jeff King, 2015-11-19 04:46

Subject: Re: [BUG] --bare is ignored before command word
Message-ID: <20151119044646.GA8059@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20151119044646.GA8059%40sigill.intra.peff.net
In-Reply-To: <vpqa8qbov2n.fsf@anie.imag.fr>

```
On Wed, Nov 18, 2015 at 10:29:20PM +0100, Matthieu Moy wrote:

> But as you say, options before the command word apply to "git", not to
> the particular command. The case of --bare is a bit unfortunate: both
> "git" and "git clone" accept a --bare option, with a different meaning
> (read "man git" to find what the first does).
> 
> So, I wouldn't call the current behavior a really good one, but it's the
> documented behavior.
> 
> It would be nice to warn in this case though: I don't see any use for
> "git --bare clone".

We have a similar situation for "git init". Once upon a time there was
just "git --bare init", and then 74d3b23 (git-init: accept --bare
option, 2008-05-28) let us do it either way.

I'm tempted to say that "git --bare clone" should work the same way.
Both init and clone are special in that they are always about creating a
new repository, not working in an existing one.  That's technically a
non-compatible behavior change, but AFAICT with the current code the
option is silently ignored, which just seems buggy.

But perhaps I am missing some useful effect it does have.

I'd also be OK with simply flagging it as useless and issuing a warning
or error.

-Peff

```

## Matthieu Moy, 2015-11-20 14:52

Subject: Re: [BUG] --bare is ignored before command word
Message-ID: <vpqfv00hge7.fsf@anie.imag.fr>
URL: https://gitlist.dev/e/vpqfv00hge7.fsf%40anie.imag.fr
In-Reply-To: <20151119044646.GA8059@sigill.intra.peff.net>

```
Jeff King <peff@peff.net> writes:

> On Wed, Nov 18, 2015 at 10:29:20PM +0100, Matthieu Moy wrote:
>
>> But as you say, options before the command word apply to "git", not to
>> the particular command. The case of --bare is a bit unfortunate: both
>> "git" and "git clone" accept a --bare option, with a different meaning
>> (read "man git" to find what the first does).
>> 
>> So, I wouldn't call the current behavior a really good one, but it's the
>> documented behavior.
>> 
>> It would be nice to warn in this case though: I don't see any use for
>> "git --bare clone".
>
> We have a similar situation for "git init". Once upon a time there was
> just "git --bare init", and then 74d3b23 (git-init: accept --bare
> option, 2008-05-28) let us do it either way.
>
> I'm tempted to say that "git --bare clone" should work the same way.
> Both init and clone are special in that they are always about creating a
> new repository, not working in an existing one.  That's technically a
> non-compatible behavior change, but AFAICT with the current code the
> option is silently ignored, which just seems buggy.

I agree with this. I can't see a real use-case "git --bare clone" so it
could imply "git clone --bare".

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```
