все что тут будет написано для чайников, вроде меня, которые плохо еще разбираются в администрировании сервера, но хотят поставить себе SVN( вопрос зачем за гранью статьи). Все что тут написано есть на самом деле в хелпе svnbook.red-bean.com/nightly/ru/index.html
Первое, установка
Cтавить будем из портов, лежит оно тут $ cd /usr/ports/devel/subversion/
ставится это так: $ make вам откроется менюшка, в ней все смело можно отключать, особенно если вам не нужно веб представление файлов (хенд бук еще можно установить).
$ make install — и поставится.
можете проверить как встало: $ man svn
Второе, запуск демона
Для начала нам нужен пользователь, от имени которого мы будем запускать наш SVN сервер. Тут все просто:
теперь, когда пользователь создан, вы должны сконфигурировать скрипт запуска
в /usr/local/etc/rc.d будет скрипт svnserve его править не нужно там и так указано что все запускаться будет от имени пользователя svn, которого мы выше создали.
видно что там используются переменные, их нужно задать в /etc/rc.conf
добавим строки
svnserve_enable=«YES» # так он станет демоном
svnserve_data="/home/svn" # определяем домашний каталог
теперь пора запустить сервер
$ /usr/local/etc/rc.d/svnserve start
надеюсь я ничего не забыл сказать и у вас все запустилось!
запустился ли svn-сервер смотрим так:
$ ps -ax | grep svn
Для Debian
cd /etc/init.d/
touch svnserve
echo «sudo -u svn svnserve -d -r /home/svn/» >>svnserve
chmod +x svnserve
update-rc.d svnserve defaults
читай еще тут
третье, управление репозиторием.
(пологаю что у вас уже установлен TortoiseSVN tortoisesvn.net/downloads)
создание тестового репозитория $ svnadmin create /home/svn/test/
настроим пользователей SVN: /home/svn/test/conf/svnserve.conf в этом файле раскоментируем строки
anon-access=none # Не авторизованные не могут смотреть и вообще ничего делать
auth-access=write # Авторизованные смогут писать в свн репозиторий
password-db=passwd # так мы укажем в каком файле перечисляем пользователей репозитория.
Внимание: не допускайте паразитных пробелов — SVN не терпим к этому.
редактирование /home/svn/test/conf/svnserve.conf закончено.
теперь редактируем файл /home/svn/test/conf/passwd
пишем что-то вроде
user=password
все теперь наш SVN готов к использованию! в TortoiseSVN делаем checkout (правой кнопкой мыши на любой пустой папке куда хотите сделать выгрузку репозитория) на svn://yourdomain/test/ — обязательно указание репозитория.
Если вы все сделали верно, то у вас будет нечто на подобии:
Command: Commit
Deleting: W:\workFiles\test\
Completed: At revision: 1
в общем-то все теперь этим уже можно пользоваться дальше изучайте возможности TortoiseSVN.
при желании напишу о том, как нам сделать выгрузку файлов из репозитория в рабочую папку сервера и при этом дать им нужного владельца
если нада из под svn делать выгрузку данных то можно сделать так:
svn ALL=(web) NOPASSWD: ALL
чтобы при комите перезаписывать файлы принадлежащие группе (web)
/usr/bin/sudo -u user_name /usr/bin/svn update --username svn_user_name --password svn_user_password path/to/site/work/copy
Первое, установка
Cтавить будем из портов, лежит оно тут $ cd /usr/ports/devel/subversion/
ставится это так: $ make вам откроется менюшка, в ней все смело можно отключать, особенно если вам не нужно веб представление файлов (хенд бук еще можно установить).
$ make install — и поставится.
можете проверить как встало: $ man svn
Второе, запуск демона
Для начала нам нужен пользователь, от имени которого мы будем запускать наш SVN сервер. Тут все просто:
$ adduser Username: svn Full name: subversion Uid (Leave empty for default): Login group [svn]: svn Login group is svn. Invite svn into other groups? []: Login class [default]: Shell (sh csh tcsh date bash rbash nologin) [sh]: nologin Home directory [/home/svn]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: no Lock out the account after creation? [no]: yes Username : svn Password : <disabled> Full Name : subversion Uid : 1002 Class : Groups : svn Home : /home/svn Home Mode : Shell : /usr/sbin/nologin Locked : yes OK? (yes/no): yes pw: group `svn' does not exist adduser: ERROR: There was an error adding user (svn). Add another user? (yes/no): no Goodbye!
теперь, когда пользователь создан, вы должны сконфигурировать скрипт запуска
в /usr/local/etc/rc.d будет скрипт svnserve его править не нужно там и так указано что все запускаться будет от имени пользователя svn, которого мы выше создали.
видно что там используются переменные, их нужно задать в /etc/rc.conf
добавим строки
svnserve_enable=«YES» # так он станет демоном
svnserve_data="/home/svn" # определяем домашний каталог
теперь пора запустить сервер
$ /usr/local/etc/rc.d/svnserve start
надеюсь я ничего не забыл сказать и у вас все запустилось!
запустился ли svn-сервер смотрим так:
$ ps -ax | grep svn
Для Debian
cd /etc/init.d/
touch svnserve
echo «sudo -u svn svnserve -d -r /home/svn/» >>svnserve
chmod +x svnserve
update-rc.d svnserve defaults
читай еще тут
третье, управление репозиторием.
(пологаю что у вас уже установлен TortoiseSVN tortoisesvn.net/downloads)
создание тестового репозитория $ svnadmin create /home/svn/test/
настроим пользователей SVN: /home/svn/test/conf/svnserve.conf в этом файле раскоментируем строки
anon-access=none # Не авторизованные не могут смотреть и вообще ничего делать
auth-access=write # Авторизованные смогут писать в свн репозиторий
password-db=passwd # так мы укажем в каком файле перечисляем пользователей репозитория.
Внимание: не допускайте паразитных пробелов — SVN не терпим к этому.
редактирование /home/svn/test/conf/svnserve.conf закончено.
теперь редактируем файл /home/svn/test/conf/passwd
пишем что-то вроде
user=password
все теперь наш SVN готов к использованию! в TortoiseSVN делаем checkout (правой кнопкой мыши на любой пустой папке куда хотите сделать выгрузку репозитория) на svn://yourdomain/test/ — обязательно указание репозитория.
Если вы все сделали верно, то у вас будет нечто на подобии:
Command: Commit
Deleting: W:\workFiles\test\
Completed: At revision: 1
в общем-то все теперь этим уже можно пользоваться дальше изучайте возможности TortoiseSVN.
при желании напишу о том, как нам сделать выгрузку файлов из репозитория в рабочую папку сервера и при этом дать им нужного владельца
если нада из под svn делать выгрузку данных то можно сделать так:
svn ALL=(web) NOPASSWD: ALL
чтобы при комите перезаписывать файлы принадлежащие группе (web)
/usr/bin/sudo -u user_name /usr/bin/svn update --username svn_user_name --password svn_user_password path/to/site/work/copy