git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Erik Faye-Lund <kusmabite@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: git checkout creates strange '(null)'-branch
Date: Tue, 8 May 2012 18:04:58 +0200	[thread overview]
Message-ID: <CABPQNSYzxDoer_Xhf+8EEU4zz58PLRQiZAsg_CWzP3ps6f_4rw@mail.gmail.com> (raw)
In-Reply-To: <7v62c6zon4.fsf@alter.siamese.dyndns.org>

On Tue, May 8, 2012 at 5:19 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Erik Faye-Lund <kusmabite@gmail.com> writes:
>
>> +     test_create_repo empty-repo &&
>> +     git submodule add ./empty-repo empty-submodule
>
> You have an empty-repo but that is not part of the superproject; the
> superproject will have empty-submodule submodule which is a clone of
> empty-repo.
>
>    $ git submodule add ./empty-repo empty-submodule
>    Cloning into 'empty-submodule'...
>    warning: You appear to have cloned an empty repository.
>    done.
>
> And after that, without you doing anything in empty-submodule, that
> repository already exhibits the (null) problem.  Perhaps somebody, after
> calling a successfull "git clone" of an empty repository (which is a silly
> thing to do to begin with, with or without submodules involved, but at
> least we do have a defined semantics of what happens when you do that),
> tried to run "git checkout", even though there is nothing to be checked
> out?  The culprit in that case to suspect would be "git submodule" script.
> Does it blindly assume that it can do a "git checkout" and runs that
> command?

Yes, it does. Basically, it calls "git checkout -f -q" from cmd_add if
$branch is empty. And it fails if the checkout-call fails.

I'm not saying it's a sane thing to do. But to me, it kind of feels
natural to initialize the shared (i.e bare) repos for both the
superproject and the submodule, clone the superproject, add the
submodule, and populate these from there. But that won't work the way
things currently are, because you can't "git submodule add" an empty
project.

To allow that, we would have to make sure "git submodule add" works
with empty repositories. And we can probably archive this in multiple
ways.

But for now, I'm happy with just erroring out on the "git submodule
add"-call. I didn't really expect adding an empty submodule to work, I
was just hoping it did ;)

I'm sending a proper patch with a saner test soon.

  reply	other threads:[~2012-05-08 16:05 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-08 11:24 git checkout creates strange '(null)'-branch Erik Faye-Lund
2012-05-08 11:34 ` Johannes Sixt
2012-05-08 11:50   ` Erik Faye-Lund
2012-05-08 12:10     ` Andreas Schwab
2012-05-08 16:25     ` Junio C Hamano
2012-05-10 14:22       ` Erik Faye-Lund
2012-05-10 16:49         ` Junio C Hamano
2012-05-08 15:09   ` Junio C Hamano
2012-05-08 15:05 ` Junio C Hamano
2012-05-08 15:19 ` Junio C Hamano
2012-05-08 16:04   ` Erik Faye-Lund [this message]
2012-05-08 16:22     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABPQNSYzxDoer_Xhf+8EEU4zz58PLRQiZAsg_CWzP3ps6f_4rw@mail.gmail.com \
    --to=kusmabite@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).