[CMake] CTest GIT support does not properly update recursive submodules

Brad King brad.king at kitware.com
Mon Feb 7 13:14:07 EST 2011


Hi Johan,

Let's move this over to the developers' list.  I'm cc-ing the users' list
just for this transition message.  Thanks.

On 02/05/2011 06:50 PM, Johan Björk wrote:
> The fix is extremely simple, in cmCTestGIT.cxx:266
> char const* git_submodule[] = {git, "submodule", "update", 0};
> modify to
> char const* git_submodule[] = {git, "submodule", "update",
> "--recursive", 0};

This would be a nice approach, but the --recursive option was added in
Git 1.6.5, released 2009-10-10.  Versions older than that were still
in common use when the submodule update code was added on 2010-05-04:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=67277bac

and may still be.  We have a few options:

(1) Hard-code --recursive and add a check to error out if the Git
version is not new enough.

(2) Test the Git version and pass --recursive only if new enough.
This could lead to subtle behavior differences between Git versions,
but perhaps we could print a warning.

(3) Add an interface to specify options for the invocation of the
submodule update command.

Comments?
-Brad


More information about the CMake mailing list