54

I'm working on a project in one git repository (A) that is including another git repository (B), which in turn includes a third git repository (C). In A, I added B via:

git submodule add https://github.com/blt04/sfDoctrine2Plugin.git plugins/sfDoctrine2Plugin

Click here, and you can see where B references C: https://github.com/doctrine/doctrine2

After doing my git submodule add, my plugins/sfDoctrine2Plugin/lib/vendor/doctrine folder (should contain C) is empty. I tried doing a git submodule update --recursive as per this StackOverflow answer, but it still didn't import the files to that path. I'm at a loss as to what to do here.

Community
  • 1
  • 1
Matt Huggins
  • 81,398
  • 36
  • 149
  • 218

1 Answers1

87

You need to do git submodule update --init --recursive. The problem here is the submodule C is never being initialized in the first place.

Lily Ballard
  • 182,031
  • 33
  • 381
  • 347
  • 3
    Wow, that did the trick. I don't know why git isn't smart enough to do that in the first place. Oh well, thanks! – Matt Huggins Jan 05 '11 at 04:37
  • 2
    git assumes that if you didn't init the submodule, it's because you don't want it. This is confusing to newcomers, but it can be extremely useful in cases where the submodule is optional. – Lily Ballard Jan 05 '11 at 04:43
  • 27
    It's always surprised me that you can't just do: git submodule add --recursive . – Eric apRhys Nov 08 '14 at 00:24