Главная
Главная Руководства FreeBSD › FreeBSD - Subversion сервер



Автор:

Статья опубликована: 2016-09-14 23:42:18
Последние правки: 2017-07-07 15:44:48

Устанавливаем и настраиваем свой subversion сервер с доступом через svn-протокол.
Создаем проект, с доступом только для пользователей, прошедших проверку.


  • Исходные данные
    # uname -sr
    FreeBSD 10.3-RELEASE
    # pkg_info | grep subversion
    subversion-1.9.4               Version control system
    

  • Установка
    # cd /usr/ports/devel/subversion
    # make install clean
    
    Настройки порта:
    [ ] BDB               Berkeley DB support
    [ ] DOCS              Build and/or install documentation
    [x] FREEBSD_TEMPLATE  FreeBSD Project log template
    [ ] MAINTAINER_DEBUG  Build debug version
    [x] NLS               Native Language Support
    [x] SASL              SASL authentication support
    [ ] SERF              WebDAV/Delta-V (HTTP/HTTPS) repo access module
    [x] STATIC            Build static version (no shared libs)
    [ ] SVNSERVE_WRAPPER  Enable svnserve wrapper (umask setter)
    [ ] TEST              Run subversion test suite
    [x] TOOLS             Install several tools
    
    Создаем пользователя svn и группу svn:
    # adduser svn
    
    Создаем корень репозитория:
    # mkdir -p /home/svn
    # chown -R svn:svn /home/svn
    

  • Доступ извне
    Протокол svn, для этого на сервере необходимо настроить и запустить svnserve.
    Файл /etc/rc.conf
    svnserve_enable="YES"
    svnserve_data="/home/svn"
    svnserve_flags="-d -T --listen-port=3690 --listen-host 0.0.0.0"
    svnserve_user="svn"
    svnserve_group="svn"
    
    -T : use threads;
    -d : daemon mode.

    Запускаем:
    # /usr/local/etc/rc.d/svnserve start
    
    Служба запустится и будет слушать подключения на порту 3690 :
    # sockstat -4
    USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
    svn      svnserve   81772 3  tcp4   *:3690                *:*
    

  • Проект
    Создаем проект (на сервере):
    # svnadmin create /home/svn/project1
    # chown -R svn:svn /home/svn/project1
    
    Настраиваем доступ (задаем SVNUSER и SVNPASSWORD). Внутри папки /home/svn/project1 появилась папка conf, идем туда.
    Файл /home/svn/project1/conf/svnserve.conf (добавляем или меняем):
    [general]
    # запрет неавторизованного доступа
    anon-access = none
    # разрешение авторизованного доступ
    auth-access = write
    # говорим брать пользователей и пароли из файла
    # /home/svn/project1/conf/passwd
    password-db = passwd
    
    Файл /home/svn/project1/conf/passwd , добавляем пользователя и пароль:
    [users]
    user1 = user1
    
    Добавляем в репозиторий файлы из локальной папки на сервере:
    # cd /home/user/project1_files
    # svn import ./ file://home/svn/project1 --message 'Initial Layout'
    
    или через сеть:
    - добавляем папку project1_files:
    # svn import project1_files svn://SERVER/project1 --username user1 --password user1 --message 'Initial Layout'
    
    - добавляем всё из текущей папки:
    # svn import ./ svn://SERVER/project1 --username user1 --password user1 --message 'Initial Layout'
    

  • Проверяем
    Создаем локальную копию проекта у себя на компьютере:
    # mkdir /home/user/project1
    # svn checkout svn://SERVER/project1 --username user1 --password user1 /home/user/project1