Pull to refresh

Denwer и SVN. Дружим!

Reading time 3 min
Views 3.4K

Intro.

Возникла такая ситуация, при которой мне и еще одному программисту пришлось вести работу над одним и тем же проектом. Я уже давно пользуюсь Джентельменским набором, и мне нравится его портабельность и маленький размер.

Немного покрутив модулями, все стало понятно. Я изложу свою версию, которая, возможно, поможет кому то сократить и время и ресурсы.

Что нужно?


Denwer.
www.denwer.ru

SVN (Tigris)
subversion.tigris.org
svn-win32-1.x.x.zip

Устанавливаем, настраиваем


  1. Устанавливаем Денвер (Для тех, у кого он установлен, данный пункт смело опускается).
    Будем считать, что папка, в которую был установлен денвер будет в дальнейшем именоваться, как [Папка Денвера]
  2. Создаем в папку для бинарников SVN (я считаю, что будет лучше, если она будет храниться со всем скарбом джентльменского набора).
    Пусть это будет [Папка Денвера]\usr\local\svn.
    Распаковываем содержимое архива svn-win32-1.x.x.zip в созданную папку.
  3. Копируем из папки [Папка Денвера]\usr\local\svn\bin файлы mod_dav_svn.so, mod_authz_svn.so в папку модулей Apache ([Папка Денвера]\usr\local\apache\modules) и файлы intl3_svn.dll, libdb44.dll в папку к бинарникам Apache ([Папка Денвера]\usr\local\apache\bin)
  4. Создаем еще одну папку для нашего будущего репозитория.
    Пусть это будет [Папка Денвера]\repository.
  5. Добавляем требуемые переменные среды.
    PATH=%PATH%; [Папка Денвера]\usr\local\svn\bin
    APR_ICONV_PATH= [Папка Денвера]\usr\local\svn\iconv
  6. Создаем репозиторий. В командной строке в папке [Папка Денвера]\repository выполняем следующую команду:
    >svnadmin create [Имя репозитория]
    Можно создать таким образом несколько различных проектов.
  7. Настраиваем репозиторий для работы в несколько рук или иных конечностей.
    1. Создаем пользователей репозитория.

      htpasswd.exe -cm [Папка Денвера]\usr\local\svn\svn-auth [имя пользователя]
      htpasswd.exe -m [Папка Денвера]\usr\local\svn\svn-auth [еще одно имя пользователя]

    2. Настраиваем права доступа.
      Создаем файлик [Папка Денвера]\usr\local\svn\svn-acl
      Будем считать, что у нас созданы пользователи (п. 7.1.) user1, user2, user3, user4 и проекты project1 и project2. Первые 2 пользователя работают в команде над первым, закрытым проектом, остальные — над открытым для просмотра вторым проектом.

      #---- svn-acl ----
      #Группы доступа.
      [groups]
      team1 = user1, user2
      team2 = user3, user4

      # доступ только для первой группы – RW (чтение, запись)
      [project1:/]
      @team1 = rw

      #доступ для второй группы – RW (чтение, запись) и для всех остальных – R (чтение)
      [project2:/]
      @team2 = rw
      *=r
      #--------
    3. Создаем файл конфигурации для APACHE2
      [Папка Денвера]\usr\local\svn\subversion.conf
      #---- subversion.conf ----
      # модули для работы SVN
      LoadModule dav_module modules/mod_dav.so
      LoadModule dav_fs_module modules/mod_dav_fs.so
      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so

      # Наш репозиторий одного из проектов будет располагаться по адресу
      # localhost/svn1, второй - localhost/svn2.
      # Для удаленных хостов данные репозитории будут доступны по IP адресу хоста,
      # на которой запущен #denwer (http://192.168.0.1/svn1)
      #
      <Location /svn1>
      DAV svn
      SVNListParentPath on
      SVNPath [Папка Денвера]/svn/project1
      AuthType Basic
      AuthName "Subversion repository"
      AuthUserFile [Папка Денвера]/usr/local/svn/svn-auth
      Require valid-user
      AuthzSVNAccessFile [Папка Денвера] /usr/local/svn/svn-acl

      <Location /svn2>
      DAV svn
      SVNListParentPath on
      SVNPath [Папка Денвера]/svn/project2
      AuthType Basic
      AuthName «Subversion repository»
      AuthUserFile [Папка Денвера]/usr/local/svn/svn-auth
      Require valid-user
      AuthzSVNAccessFile [Папка Денвера] /usr/local/svn/svn-acl


Добавляем конфигурацию в Apache, в конце файла httpd.conf дописываем строчку:
Include ../../svn/subversion.conf
Запускаем денвер и пробуем зайти по адресу localhost/svn1
Вуа-ля!
Tags:
Hubs:
+6
Comments 62
Comments Comments 62

Articles