]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc,tests: force checkout of submodules 4078/head
authorLoic Dachary <ldachary@redhat.com>
Wed, 18 Mar 2015 23:32:39 +0000 (00:32 +0100)
committerLoic Dachary <ldachary@redhat.com>
Wed, 18 Mar 2015 23:35:44 +0000 (00:35 +0100)
When updating submodules, always checkout even if the HEAD is the
desired commit hash (update --force) to avoid the following:

    * a directory gmock exists in hammer
    * a submodule gmock replaces the directory gmock in master
    * checkout master + submodule update : gmock/.git is created
    * checkout hammer : the gmock directory still contains the .git from
      master because it did not exist at the time and checkout won't
      remove untracked directories
    * checkout master + submodule update : git rev-parse HEAD is
      at the desired commit although the content of the gmock directory
      is from hammer

http://tracker.ceph.com/issues/11157 Fixes: #11157

Signed-off-by: Loic Dachary <ldachary@redhat.com>
autogen.sh

index 7b7a7d140826ed2c72ba1a5555b31131f338358b..71d8d8450ce72a474c7f81dd508be5afc8431613 100755 (executable)
@@ -29,7 +29,8 @@ else
 fi
 
 if test -d ".git" ; then
-  if ! git submodule update --init; then
+  force=$(if git submodule usage 2>&1 | grep --quiet 'update.*--force'; then echo --force ; fi)
+  if ! git submodule sync || ! git submodule update $force --init --recursive; then
     echo "Error: could not initialize submodule projects"
     echo "  Network connectivity might be required."
     exit 1