пятница, 10 апреля 2009 г.

reintegrate merge и сборка Subversion на Ubuntu Hardy

В Subversion с версии 1.5 есть функция reintegrate, которая позволяет влить изменения бранча в основную ветку. У нас репозитарий находится на сервере под управлением Ubuntu 8.04 LTS, а там Subversion версии только 1.4.
Выяснилось, что в backports есть версия 1.5, но установка её не привела к работе указанной функции, поэтому пришлось собрать Subversion из сорсов. Сделать это просто, но не тривиально.

Первым делом нужно скачать сорсы. Находятся они на subversion.tigris.org. Далее нужно установить все необходимое для сборки. Проще всего это сделать через apt-get. Но для начала нужно включить в репозитории сорсов через Synaptic, как на рисунке ниже:


Или поправив файл sources.list, добавив туда строки deb-src, например так:
deb-src http://ru.archive.ubuntu.com/ubuntu/ hardy restricted main
deb-src http://ru.archive.ubuntu.com/ubuntu/ hardy-updates restricted main
deb-src http://ru.archive.ubuntu.com/ubuntu/ hardy-security restricted main

После этого можно устанавливать зависимости следующей командой:
apt-get build-dep subversion

Дальше переходим в каталог сорсов и пытаемся выполнить ./configure, но не все так просто, если хочется использовать Berkeley DB. В arp-utils есть баг, который не дает apu-config выдать с какой версией Berkeley DB она слинкована. Решается это созданием скрипта apu-config в папке с configure следующего содержания:
if [ "$1" == "--libs" ]; then
echo -ldb-4.6
exit
else
apu-config $1
fi

Файл нужно сделать исполняемым командой chmod +x apu_config. Затем можно запускать configure командой:
./configure --with-apr-util=. --prefix=/usr

Дальше make install и получим нужно версию Subversion. Ещё необходимо выполнить svnadmin upgrade на каталоге с репозитарием. После этого можно использовать все новые функции Subversion (не забыв обновить клиентскую часть, конечно).

Комментировать в ВКонтакте