Использование Subversion

Проверка синтаксиса

Чтобы я по ошибке не «сломал» сайт из-за опечатки, у меня проверяется синтаксис исходного кода при помощи скрипта hooks/pre-commit:

#!/bin/sh
ERROR=0
for FILE in `svnlook changed -t "$2" "$1" | awk '{print $2}'`
do
  if [ `echo $FILE | sed s/html$/php/ | grep -e \\.php$` ]
  then
    OUTPUT=`svnlook cat -t "$2" "$1" "${FILE}" | php -l`
    if [ $? -ne 0 ]
    then
      echo "$OUTPUT" | sed "s| -| $FILE|g" 1>&2
      ERROR=1
    fi
  fi
done
exit $ERROR

Обновление сайта

Те файлы, к которым обращается Apache — это всего лишь одна из рабочих копий (правда, локальная). После фиксации изменений эта рабочая копия обновляется; для этого в репозитории есть скрипт hooks/post-commit:

#!/bin/sh
cd /var/www/kastaneda.kiev.ua
svn up
svn log -v --xml --limit 20 | xsltproc svnlog.xslt - > svnlog.rss

Это довольно удобно — svn commit превращается в «публикацию».

Кроме того, в последней строчке происходит генерация RSS с историей изменений. Для этого применяется таблица стилей svnlog.xslt и консольный XSLT-процессор.

© 1999–2012, Дмитрий КолесниковКарта сайта • Размещено на «Бункере»Valid XHTML & CSS