]> git.lizzy.rs Git - rust.git/commitdiff
Hack around abysmally slow llvm clones
authorAidan Hobson Sayers <aidanhs@cantab.net>
Thu, 25 May 2017 00:37:36 +0000 (01:37 +0100)
committerAidan Hobson Sayers <aidanhs@cantab.net>
Thu, 25 May 2017 01:19:00 +0000 (02:19 +0100)
src/ci/init_repo.sh

index 1db2135eb6d868bbf25d45a2b02fe6cb11c6056a..0a17bd3b5710f6430a2817704b7bbfdc51f95dfd 100755 (executable)
@@ -64,6 +64,7 @@ if [ ! -d "$cache_src_dir/.git" ]; then
         git clone https://github.com/rust-lang/rust.git $cache_src_dir"
 fi
 retry sh -c "cd $cache_src_dir && git reset --hard && git pull"
+(cd $cache_src_dir && git rm src/llvm)
 retry sh -c "cd $cache_src_dir && \
     git submodule deinit -f . && git submodule sync && git submodule update --init"
 
@@ -76,6 +77,15 @@ touch "$cache_valid_file"
 # http://stackoverflow.com/questions/12641469/list-submodules-in-a-git-repository
 modules="$(git config --file .gitmodules --get-regexp '\.path$' | cut -d' ' -f2)"
 for module in $modules; do
+    if [ "$module" = src/llvm ]; then
+        commit="$(git ls-tree HEAD src/llvm | awk '{print $3}')"
+        git rm src/llvm
+        curl -sSL -O "https://github.com/rust-lang/llvm/archive/$commit.tar.gz"
+        tar -C src/ -xf "$commit.tar.gz"
+        rm "$commit.tar.gz"
+        mv "src/llvm-$commit" src/llvm
+        continue
+    fi
     if [ ! -d "$cache_src_dir/$module" ]; then
         echo "WARNING: $module not found in pristine repo"
         retry sh -c "git submodule deinit -f $module && git submodule update --init $module"