Subversion
Материал из Xgu.ru
Subversion — централизованная система контроля версий. По замыслу разработчиков со временем должна была стать заменой CVS. Это отражено в названии проекта, которое является игрой слов:
с одной стороны это подверсия, а с другой — ниспровержение.
Subversion — свободное программное обеспечение; распространяется по лицензии Apache.
[править] Вопросы и ответы
[править] Как быстро поднять Subversion-сервер?
- Создать конфигурационный файл.
- Создать репозиторий.
- Запустить сервер.
# vi /svn/conf/svnserve.conf [general] password-db = userfile realm = example realm
Список пользователей:
# vi /svn/conf/userfile [users] user1 = user1password user2 = user2password
Создание репозитория:
# svnadmin create /svn/repos/rep1
# svnserve -d --config-file=/svn/conf -r /svn/repos
[править] А как поднять Subversion, доступный через web-сервер Apache?
- Собрать Apache
- Собрать Subversion c модулем для Apache
- Настроить Apache на использование модуля Subversion
- Произвести настройку:
Apache:
./configure --enable-dav --enable-so --enable-maintainer-mode
Subversion:
sh autogen.sh ./configure --with-apxs=/...../bin/apxs
В конфигурационном файле Apache:
<Location /svn> DAV svn SVNPath /home/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
Создать файл паролей:
htpasswd2 -cm /etc/apache2/dav_svn.passwd bob
Создать репозиторий:
sudo svnadmin create /home/svn
Подробнее:
[править] Как частично получить дерево проекта из репозитория (subversion partial checkout)?
Например вот так:
svn checkout --non-recursive http://svnserver/trunk/ proj svn update trunk/foo svn update trunk/bar svn update trunk/baz
[править] Как поставить бит исполнения на файл в репозитории?
chmod +x не работает, нужно что-то посущественнее.
Правильно так:
$ svn propset svn:executable true file
[править] Как получить доступ к удалённой ветке Subversion?
Надо знать номер ревизии или время, когда ветка ещё существовала и дальше, например, так:
$ svn co http://server/repo/branch@revision
или, если известно время:
$ svn co http://server/repo/branch@"{2011-07-21 10:45:00}"
Вытащить ветку из пепла можно с помощью svn cp [5]:
$ svn cp http://server/repo/branch@revision svn co http://server/repo/branch_restored
Системы управления версиями на Xgu.ru | ||
---|---|---|
Централизованные | CVS • Subversion | |
Распределённые | Git • Mercurial • Bazaar • Darcs • Fossil | |
Хостинг | Github • Bitbucket |