Как установить сервер Subversion

8

Я хотел бы установить сервер Subversion на мою машину с Ubuntu.
Какие пакеты мне нужны? Как мне создать репозиторий и установить нового пользователя?

Вениамин
источник
В зависимости от ваших потребностей, вам может быть лучше использовать распределенную SCM, такую ​​как Bazaar (bzr), которую легко узнать из Subversion, но для которой не требуется работающий сервер. Это замечательно, если вы работаете в одиночку и вам просто нужны журналы и сетка безопасности. И я просто должен упомянуть git, который является самым мощным инструментом, imho.
Мартин Уединг
sudo apt-get install subversion
AMIC MING

Ответы:

10

Существует множество конфигураций для svn, вот несколько коротких инструкций, чтобы получить базовый репозиторий svn, доступный через http.

  1. Установите необходимые пакеты: apt-get install subversion apache2 libapache2-svn
  2. Создайте структуру каталогов: mkdir -p /var/svn/repos/
  3. Создать репозиторий:
    • cd /var/svn/repos/
    • svnadmin create --fs-type fsfs <your-repository>
  4. Теперь создайте свой Project-Struckture для импорта в репозиторий:
    • mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches
  5. Импортируйте проект в репозиторий:
    • svn import /tmp/myproject file:///var/svn/repos/<your-repository> -m "initial import"
  6. Сделать это доступным по http:
    • cd /etc/apache2/sites-available
    • touch subversion.conf
    • vim subversion.conf

Теперь отредактируйте пустой файл с этой конфигурацией:

NameVirtualHost *:80

<VirtualHost *:80>   
  <Location /svn>
      ErrorDocument 404 default
      DAV svn
      SVNParentPath /var/svn/repos
      SVNListParentPath off
      Require valid-user
      AuthType Basic
      AuthName "subversion access"
      AuthUserFile /var/svn/.htpasswd
      AuthzSVNAccessFile /var/svn/authz 
  </Location>
</VirtualHost>
  • включить модуль dav_svn для apache: a2enmod dav_svn
  • включить модуль authz_svn для apache: a2enmod authz_svn
  • включить конфигурацию VHost: a2ensite subversion.conf
  • Теперь перезапустите веб-сервер: /etc/init.d/apache2 restart
  • Создайте htpasswd: htpasswd -c /var/svn/.htpasswd user
  • Создайте файл контроля доступа для хранилища: touch /var/svn/authz
  • отредактируйте пустой файл authz: vim /var/svn/authz
  • Дайте права на чтение / запись для пользователя:

[Ваш-хранилище: /]

пользователь = rw

Давайте попробуем оформить репо через http: svn checkout http://your-server/svn/your-repository

schneehase
источник
1
Я не могу сделать правку , как изменения слишком малы, но могли бы вы исправить последнюю строку , чтобы сказать , checkoutв отличие от ceckout?
нанофарад
я не могу найти этот пакет libapache2-svn. Ошибка: # чтение информации о состоянии ... Выполнено E: невозможно найти пакет libapache2-svn Система: ubuntu 12.04 32bit (все репозитории включены)
shantanu
2
Вам также нужно включить модуль authz_svn, иначе вы получите Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration. Вы можете использовать команду, a2enmod authz_svnчтобы сделать это.
Mrswadge
2

Начните читать руководство . В настоящее время я делаю то же самое.

После того как вы настроили хранилище с помощью svnadmin create /path/to/repo, вы можете использовать его svnserve --root /path/to/repoдля доступа к хранилищу svn://yourhost/. При необходимости откройте TCP-порт 3690.

Можно использовать SVN поверх HTTP, но я еще не читал эту часть: o

Lekensteyn
источник
2

Вам понадобится subversionпосылка.

sudo apt-get update
sudo apt-get install subversion

Этот пакет содержит клиента, инструменты для создания хранилища Subversion и сервера.

Октавиан А. Дамиан
источник
0

Вот запись в блоге от WANdisco о том, как установить Tortoise SVN 1.7 и внести в ваш первый репозиторий изменения.

Кэти Уоткинсон
источник
2
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
Крис Харпер
0

Чтобы установить Subversion, откройте терминал и выполните следующую команду:

sudo apt-get install subversion libapache2-svn

Мы собираемся создать хранилище Subversion в / svn, хотя вы должны выбрать место, которое имеет достаточно места.

sudo svnadmin create /svn

Измените владельца этого хранилища на пользователя Apache.

sudo chown -R www-data:www-data /svn

Создать базовый репозиторий Subversion для последующего использования (для производства / QA / тестирования / отчетности ../ и т.д ..)

sudo mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches

Импортируйте эти каталоги в наш репозиторий

sudo svn import /tmp/myproject file:///svn -m "initial import"

Далее нам нужно отредактировать файл конфигурации для модуля subversion webdav. Вы можете использовать другой редактор, если хотите.

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

Элемент Location в файле конфигурации определяет корневой каталог, из которого будет доступна subversion, например: http://www.server.com/svn

<Location /svn>

Строка DAV должна быть раскомментирована, чтобы включить модуль dav

# Uncomment this to enable the repository,
DAV svn

В строке SVNPath должно быть указано то же место, где вы создали репозиторий с помощью команды svnadmin.

# Set this to the path to your repository
SVNPath /svn

Следующий раздел позволит вам включить аутентификацию. Это просто базовая аутентификация, поэтому не считайте ее чрезвычайно безопасной. Файл паролей будет расположен там, где параметр AuthUserFile устанавливает его… вероятно, лучше оставить его по умолчанию.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd

Чтобы создать пользователя в репозитории, используйте следующую команду:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Обратите внимание, что вы должны использовать опцию -c только в первый раз, когда вы создаете пользователя. После этого вы захотите использовать только опцию -m, которая задает шифрование пароля MD5, но не создает файл заново.

Пример:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd geek
New password:
Re-type new password:
Adding password for user geek

Перезапустите apache, выполнив следующую команду:

sudo /etc/init.d/apache2 restart

Спасибо: http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/

Мистер Блэк
источник