]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc,tests: force checkout of submodules 4079/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:39:05 +0000 (00:39 +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 103caa4577f075a948fc5386ba171b3a91ec6c81..e71245255b5bb0010d810cfe1cafd4ae276377b4 100755 (executable)
@@ -23,6 +23,15 @@ else
   exit 1
 fi
 
+if test -d ".git" ; 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
+  fi
+fi
+
 rm -f config.cache
 aclocal -I m4 --install
 check_for_pkg_config