Tweak build/clone logic to always do a checkout, and to bail gracefully when a commit doesn't exist (skipping the relevant repoTag build)

This commit is contained in:
Tianon Gravi 2014-09-23 12:10:00 -06:00
parent 4b6f49153d
commit 845488129d
1 changed files with 23 additions and 18 deletions

View File

@ -193,8 +193,12 @@ while [ "$#" -gt 0 ]; do
echo "Processing $repoTag ..."
if [ "$doClone" ]; then
( cd "$gitRepo" && git clean -dfxq && git checkout -q "$gitRef" && "$dir/git-set-dir-times" )
if ! ( cd "$gitRepo" && git rev-parse --verify "${gitRef}^{commit}" &> /dev/null ); then
echo "- skip; invalid ref: $gitRef"
continue
fi
( cd "$gitRepo" && git clean -dfxq && git checkout -q "$gitRef" )
# TODO git tag
IFS=$'\n'
@ -211,9 +215,10 @@ while [ "$#" -gt 0 ]; do
fi
done
done
fi
if [ "$doBuild" ]; then
( cd "$gitRepo/$gitDir" && "$dir/git-set-dir-times" )
thisLog="$logDir/build-$repoTag.log"
touch "$thisLog"
ln -sf "$thisLog" "$latestLogDir/$(basename "$thisLog")"