[zorg] r282676 - Run multiple svn command in time to speedup checkout.

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 28 19:52:19 PDT 2016


Author: vitalybuka
Date: Wed Sep 28 21:52:18 2016
New Revision: 282676

URL: http://llvm.org/viewvc/llvm-project?rev=282676&view=rev
Log:
Run multiple svn command in time to speedup checkout.

Reviewers: eugenis

Subscribers: beanz, mgorny

Differential Revision: https://reviews.llvm.org/D25052

Modified:
    zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_functions.sh

Modified: zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_functions.sh
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_functions.sh?rev=282676&r1=282675&r2=282676&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_functions.sh (original)
+++ zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_functions.sh Wed Sep 28 21:52:18 2016
@@ -7,7 +7,9 @@ function update_or_checkout {
   if [ -d ${tree} ]; then
     svn up "${tree}" $rev_arg
   else
-    svn co "${repo}" "${tree}" $rev_arg
+    mkdir -p svn_checkout
+    DIR=$(mktemp -d -p `pwd`/svn_checkout XXXXXX)
+    svn co "${repo}" $DIR/${tree} $rev_arg
   fi
 }
 
@@ -31,22 +33,33 @@ function buildbot_update {
       fi
     done
 
-    update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/llvm/trunk llvm
-
     if [ "$rev_arg" == "" ]; then
-        rev_arg="-r"$(svn info llvm | grep '^Revision:' | awk '{print $2}')
+        rev_arg="-r"$(svn info http://llvm.org/svn/llvm-project/llvm/trunk | grep '^Revision:' | awk '{print $2}')
     fi
 
+    rm -rf svn_checkout
+
+    update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/llvm/trunk llvm &
+
     # XXX: Keep this list in sync with the change filter in buildbot/osuosl/master/master.cfg.
-    update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/cfe/trunk llvm/tools/clang
-    update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/compiler-rt/trunk llvm/projects/compiler-rt
+    update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/cfe/trunk llvm/tools/clang &
+    update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/compiler-rt/trunk llvm/projects/compiler-rt &
     if [ "$CHECK_LIBCXX" != "0" ]; then
-      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/libcxx/trunk llvm/projects/libcxx
-      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/libcxxabi/trunk llvm/projects/libcxxabi
-      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/libunwind/trunk llvm/projects/libunwind
+      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/libcxx/trunk llvm/projects/libcxx &
+      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/libcxxabi/trunk llvm/projects/libcxxabi &
+      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/libunwind/trunk llvm/projects/libunwind &
     fi
     if [ "$CHECK_LLD" != "0" ]; then
-      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/lld/trunk llvm/tools/lld
+      update_or_checkout "$rev_arg" http://llvm.org/svn/llvm-project/lld/trunk llvm/tools/lld &
+    fi
+    wait
+
+    # Merge checked out temporarily directories.
+    if [ -d svn_checkout ]; then
+      for D in svn_checkout/*; do
+        cp -rfl $D/* .
+      done
+      rm -rf svn_checkout
     fi
 }
 




More information about the llvm-commits mailing list