[sanitizer] Optimize git clone by using small depth

git-svn-id: https://llvm.org/svn/llvm-project/zorg/trunk@370290 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/zorg/buildbot/builders/sanitizers/buildbot_functions.sh b/zorg/buildbot/builders/sanitizers/buildbot_functions.sh
index 39f048f..a0cc0e8 100755
--- a/zorg/buildbot/builders/sanitizers/buildbot_functions.sh
+++ b/zorg/buildbot/builders/sanitizers/buildbot_functions.sh
@@ -122,19 +122,30 @@
     LLVM=$BUILDBOT_MONO_REPO_PATH/llvm
   else
     (
-      [[ -d llvm-project ]] || git clone https://github.com/llvm/llvm-project.git
+      local DEPTH=10
+      [[ -d llvm-project ]] || git clone --depth $DEPTH https://github.com/llvm/llvm-project.git
       cd llvm-project
       git fetch
       git clean -fd
+      local REV=
       if [[ "$BUILDBOT_REVISION" == "" ]] ; then
         REV=origin/master
       else
-        REV=$(git log --format="%H" -n1 --grep "^llvm-svn: ${BUILDBOT_REVISION}$" origin/master)
-        [[ "$REV" != "" ]] || exit 1
+        while true ; do
+          REV=$(git log --format="%H" -n1 --grep "^llvm-svn: ${BUILDBOT_REVISION}$" origin/master)
+          [[ "$REV" == "" ]] || break
+          git rev-list --pretty --max-count=1 origin/master
+          git rev-list --pretty --max-parents=0 origin/master
+          echo "DEPTH=$DEPTH is too small"
+          echo @@@STEP_EXCEPTION@@@
+          [[ "$DEPTH" -le "1000000" ]] || exit 1
+          DEPTH=$(( $DEPTH * 10 ))
+          git fetch --depth $DEPTH
+        done
       fi
       git checkout $REV
       git status
-      git log -n1 --oneline
+      git rev-list --pretty --max-count=1 HEAD
     ) || { echo @@@STEP_EXCEPTION@@@ ; exit 1 ; }
     LLVM=$ROOT/llvm-project/llvm
   fi