root  / my Debian tips&tricks  / tar 

Official Debian logo

svn сервер под linux

  1. Поставим всё, что нужно
    root@note-admhome:/root# aptitude install subversion libapache2-svn
  2. Надо сделать каталог для svn
    root@note-admhome:/root# mkdir /home/.../svn/
  3. В этом каталоге я создам каталог для конфигов и располоху 2 необходимых конфигурационных файла apache.conf и users-access-file
  4. apache.conf нужен собственно для апача
    <Location /svn/>
    Allow from all
    DAV svn
    SVNParentPath /home/.../svn/
    # our access control policy
    AuthzSVNAccessFile /home/.../svn/.../users-access-file
    #try anonymous access first, resort to real
    #authentication if necessary.
    Satisfy Any
    Require valid-user
    # how to authenticate a user
    AuthType Basic
    AuthName "Subversion repository on note-admhome"
    AuthUserFile /home/.../svn/.../passwd
    </Location>
  5. users-access-file нужен для пользовательских ограничений. Внимание! Как только Вы создали новый репозиторий, поправьте этот файл, иначе получите 403-ю ошибку!
    [/]
    * =
    [books:/]
    admhome = rw
    
    Теперь подробнее:
    [/]
    * =
    всем запретить всё.
    [books:/]
    admhome = rw
    разрешить admhome доступ на чтение/запись в репозиторий books.
  6. Файл паролей - генерируется так же как и .htpasswd
    root@note-admhome:/home/.../svn/.../# htpasswd -c -m passwd %username%
  7. Затем, по сути, конфиг apache.conf нужно скопировать/переместить в /etc/apache2 и проинклюдить его, но у нас Debian - тут можно проще.
    root@note-admhome:/etc/apache2/conf.d/# ln -s /home/.../svn/.../apache.conf svn_apache.conf
    /etc.init.d/apache2 reload
    оно или подгрузит файл конфигурации или ругнётся на ошибку.
  8. Затем, создать репозиторий, например cpp_proj
    root@note-admhome:/home/.../svn# svnadmin create cpp_proj
    Единственное, что - придётся поиграться с правами доступа, пока Ваш любимый клиент (например: TortoiseSVN) не пустит Вас в каталог репозитория. Ну и, конечно, не забудьте поправить users-access-file.
LJ