66 lines
2.0 KiB
Bash
66 lines
2.0 KiB
Bash
#!/bin/sh
|
|
|
|
unset CDPATH
|
|
|
|
REPO_URL=http://svn.dvm-system.org/svn/dvmhrepo/dvm
|
|
REPO_USER=dvmhuser
|
|
REPO_PASS=dvmh2013
|
|
PATHS_OF_INTEREST="cdvm/trunk cdvmh-clang/trunk driver/trunk fdvm/trunk general/examples/trunk general/platforms/trunk general/trunk rts/trunk rts-dvmh/trunk tools/pppa/trunk tools/predictor/trunk"
|
|
|
|
SVN_PARAMS="--username $REPO_USER --password $REPO_PASS --non-interactive"
|
|
|
|
PREV_REV=`cat latest-seen-revision`
|
|
[ "$PREV_REV" -ge 0 ] 2>/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
PREV_REV=0
|
|
fi
|
|
|
|
NEW_REV=`svn info $SVN_PARAMS $REPO_URL | grep "Revision" | awk '{ print $2 }'`
|
|
[ "$NEW_REV" -ge 1 ] 2>/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
NEW_REV=0
|
|
fi
|
|
|
|
# If latest-seen-revision is corrupted, then inspect only latest revision
|
|
if [ $PREV_REV -eq 0 -a $NEW_REV -gt 0 ]; then
|
|
PREV_REV=$(( NEW_REV - 1 ))
|
|
fi
|
|
|
|
CUR_REV=$(( PREV_REV + 1 ))
|
|
while [ $CUR_REV -le $NEW_REV ]; do
|
|
TO_TEST=1
|
|
COMMIT_MSG=`svn log $SVN_PARAMS --incremental -c $CUR_REV $REPO_URL | tail -n +4`
|
|
IS_INTERMEDIATE=`echo "$COMMIT_MSG" | grep -i "intermediate" | wc -l`
|
|
IS_TRIVIAL=`echo "$COMMIT_MSG" | grep -i "trivial" | wc -l`
|
|
IS_COSMETICS=`echo "$COMMIT_MSG" | grep -i "cosmetics" | wc -l`
|
|
IS_MAJOR=`echo "$COMMIT_MSG" | grep -i "major" | wc -l`
|
|
if [ $IS_INTERMEDIATE -ne 0 -o $IS_TRIVIAL -ne 0 -o $IS_COSMETICS -ne 0 ]; then
|
|
TO_TEST=0
|
|
elif [ $IS_MAJOR -ne 0 ]; then
|
|
TO_TEST=2
|
|
fi
|
|
if [ $TO_TEST -ne 0 -a -n "$PATHS_OF_INTEREST" ]; then
|
|
NO_TEST=1
|
|
for p in $PATHS_OF_INTEREST; do
|
|
WHAT_CHANGED=`svn diff $SVN_PARAMS --summarize -c $CUR_REV $REPO_URL/$p`
|
|
if [ -n "$WHAT_CHANGED" ]; then
|
|
NO_TEST=0
|
|
break
|
|
fi
|
|
done
|
|
if [ $NO_TEST -ne 0 ]; then
|
|
TO_TEST=0
|
|
fi
|
|
fi
|
|
if [ $TO_TEST -eq 1 ]; then
|
|
echo $CUR_REV >>pending-revisions
|
|
elif [ $TO_TEST -eq 2 ]; then
|
|
echo $CUR_REV >>pending-revisions-full
|
|
fi
|
|
CUR_REV=$(( CUR_REV + 1 ))
|
|
done
|
|
|
|
if [ $NEW_REV -gt 0 ]; then
|
|
echo $NEW_REV >latest-seen-revision
|
|
fi
|