Sam3k
Sam3k

Reputation: 950

Submodule merge failure - "not checked out" warning

How can I merge this submodule after having had the following warning?

warning: Failed to merge submodule sites/all/modules/contrib/panelizer 
                (not checked out)

Upvotes: 2

Views: 2795

Answers (1)

VonC
VonC

Reputation: 1324757

That error message comes from submodule.c, specifically the merge_submodule() method:

int merge_submodule(unsigned char result[20], const char *path,
                    const unsigned char base[20], const unsigned char a[20],
                    const unsigned char b[20], int search)
{
  struct commit *commit_base, *commit_a, *commit_b;
  int parent_count;
  struct object_array merges;

  // [...]

  if (add_submodule_odb(path)) {
    MERGE_WARNING(path, "not checked out");
    return 0;
  }

And the add_submodule_odb() method is checking for .git presence within said submodule.

So, as Jefromi comments, you probably didn't do a git submodule update as described in the Pro Git book.
You should see the SO question "Git - easy way pull latest of all submodules" for more on how to get back the content of all your submodules.

With a recent git, you can pull and update in one go:

git alias update_submodules='git pull --recurse-submodules && git submodule update' 

Upvotes: 1

Related Questions