FreeBSD. Установка и настройка Subversion

Базы данных, Инструменты, Операционные системы, Программирование 26.02.2009

subversion

Subversionсвободная централизованная система управления версиями.

Subversion разработана специально для замены устаревшей системы CVS,
распространённой открытой системы управления версиями.

Subversion обладает всеми основными функциями CVS (хотя некоторые из них выполняет другими способами) и свободна от ряда её недостатков.

Установка

Для начала соберем Apache с поддержкой Berkley DB, так как я предпочитаю именно этот способ хранения данных.

cd /usr/ports/www/apache22/
make install WITH_BERKELEYDB=db42

Если Apache уже установлен, то

make reinstall WITH_BERKELEYDB=db42

на худой конец, если невозможно пересобрать Apache, то

make deinstall && make clean

можно еще зачистить

rm -rf /usr/ports/distfiles/*

а потом снова повторить установку!

Для запуска Apache при старте системы — прописываем в /etc/rc.conf

apache2_enable="YES"

Далее, устанавливаем Subversion

cd /usr/ports/devel/subversion
make config

выбираем MOD_DAV_SVN и BDB

make install

Проверьте, есть ли записи в /usr/local/etc/apache22/httpd.conf

LoadModule dav_svn_module     libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module   libexec/apache22/mod_authz_svn.so

Где «libexec/apache22/» — ваш путь до модулей индейца.

Перезагружаем индейца

apachectl restart

Читать полностью »

MySQL. Количество вхождений подстроки в строку

Базы данных, Программирование 14.01.2009

mysql-substr-count_green

Моему другу понадобилось подсчитать с помощью MySQL число вхождений подстрок в строке, так как подобной функции в MySQL не имеется, то я составил свой запрос.

По функциональности это аналог PHP функции substr_count.

Итак, рассмотрим реализацию на примере исходных данных моего друга:

  • «(1)(29)(330)» — допустим строка в выборке;
  • «)» — используемый нами разделитель.
SELECT
  (char_length('(1)(29)(330)') - char_length(REPLACE('(1)(29)(330)',')','')))
div
  char_length(')');
  1. Тут все элементарно, вычисляется разность между количеством символов целой строки
    char_length('(1)(29)(330)')

    и количеством символов строки, у которой заменен на пустоту — наш разделитель

    REPLACE('(1)(29)(330)',')','')
  2. Считаем количество символов нашего разделителя
    char_length(')')

Потом вычисляется целочисленный остаток от деления (1) на (2).

В результате мы получим число «3».