[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