SVN - быстрый старт (профессиональная версия)

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 05:00, 16 мая 2011 (править)
Dmach (Обсуждение | вклад)
м (Правки 199.232.72.123 (обсуждение) откачены к версии Dmih)
← К предыдущему изменению
Версия 06:54, 16 мая 2011 (править) (отменить)
184.106.97.135 (Обсуждение)
(bCRkddaS)
К следующему изменению →
Строка 1: Строка 1:
-== Общие сведения ==+What a joy to find someone else who tihnks this way.
- +
-Эта статья поможет понять как развернуть собственный svn-репозиторий в своем домашнем каталоге на UNIX-хостинге 1Gb.ru. Главное отличие от предложения [http://www.1gb.ru/services_svn.php Услуги хостинга Subversion (SVN)] заключается в том, что вы имеете полный доступ к всем файлам репозитория, можете конфигурировать его по-своему усмотрению, уставливать любые плагины и хуки. В дополнение, доступ к хранилищу обеспечивается по протоколам SVN/SSH обеспечивающие максимально быструю и безопасную передачу данных.+
-Репозиторий доступен по вашему доменному имени и будет работать на выделенном порту.+
- +
-=== Создание репозитория, службы SVN ===+
-* В разделе личного кабинета /Хостинг HTTP служб/ добавляем к сайту демон SVN (если вы хотите интегрировать его с Trac, то нужно выбрать сайт, на которой и будет Trac установлен):+
-[[Изображение:Svnd_add.jpg|500px|thumb|left|Добавление службы SVN к сайту]]<br clear="both" />+
-После успешного добавления службы в таблице появятся ее параметры, обратите внимание на '''номер порта''' на котором будет работать ваша служба:+
-[[Изображение:Svnd_add_ok_1.jpg|500px|thumb|left|Параметры службы]]<br clear="both" />+
- +
-* Создаем репозиторий:+
- $ mkdir ~/svn; cd ~/svn && svnadmin create название_репозитория+
-----+
-'''Важное замечание.''' Репозиторий будет работать только в каталоге '''~/svn''', поэтому не забывайте создавать его именно в нем.+
-----+
- +
-=== Добавление пользователей ===+
-* В разделе личного кабинета /Дополнительные FTP логины/ создаем дополнительного SSH-пользователя, для работы с SVN через SSH-туннель:+
-[[Изображение:Add_ssh_aux_login.jpg|500px|thumb|left|Добавление логина в личном кабинете]]<br clear="both" />+
-в случае успешного добавления, в таблице появится такая запись:+
-[[Изображение:Add_ssh_aux_login_ok.jpg|500px|thumb|left|Запись об успешном добавлении]]<br clear="both" />+
- +
-Этот пользователь сможет работать с SVN репозиторием через SSH-туннель.+
- +
-* Добавляем пользователя, редактируя файл <code>~/svn/название_репозитория/conf/passwd</code>:+
- [users]+
- имя_пользователя = пароль+
- +
-----+
-'''''Примечание.''''' Для удобства можно использовать те же логин/пароль, что и для дополнительного SSH-входа.+
-----+
-Этот пользователь сможет работать с SVN репозиторием по протоколу SVN.+
- +
-В файле <code>~/svn/название_репозитория/conf/authz</code> можно задать "права" для созданного пользователя. Назначим обычные - "чтение-запись":+
- [/]+
- имя_пользователя = rw+
- +
-Если вы хотите запретить анонимный доступ на чтение репозитория по протоколу SVN, то в файле <code>~/svn/название_репозитория/conf/svnserve.conf</code> в секции <code>[general]</code> добавьте строки:+
- anon-access = none+
- password-db = passwd+
- +
-=== Настройка клиентов, тестирование подключений ===+
-==== Протокол SVN ====+
-Работа с репозиторием по протоколу SVN является наиболее быстрой и удобной, прекрасна реализована как в Windows, так и в UNIX системах.+
-* UNIX, работа через консольный клиент <code>svn</code>:+
- svn --username=имя_пользователя list svn://адрес_вашего_сайта:SVN_порт/название_репозитория+
- +
-'''имя_пользователя''' - это имя из файла ~/svn/название_репозитория/conf/passwd<br />+
-'''адрес_вашего_сайта''' - сайт, на котором вы создали SVN-даемон;<br />+
-'''SVN_порт''' - порт, на котором работает SVN-даемон, указан в разделе кабинета /Хостинг HTTP служб/<br />+
-'''название_репозитория''' - имя, которое вы задавали в команде <code>svnadmin create</code><br />+
- +
-* Windows TortoiseSVN+
-Пример ввода URL в Repository Browser:+
-[[Изображение:Repo_browser_url_1.jpg|500px|thumb|left|Ввод URL]]<br clear="both" />+
- +
-Обзор репозитория:+
-[[Изображение:Repo_browser.jpg|500px|thumb|left|Рабочее окно Repo-browser]]<br clear="both" />+
- +
-==== Протокол SSH ====+
-* Работа из UNIX через консольный клиент <code>svn</code>.+
-Прежде всего, у себя на локальной машине нужно сделать настройку svn клиента для работы по SSH-туннелю через специальный порт. Для этого в файле <code>~/.subversion/config</code> в секции <code>[tunnels]</code> добавьте строку:+
- sshtunnel = ssh -p 2222+
- +
-Вообще тут возможны два варианта работы: авторизация по паролю, и авторизацию по ключу.+
- +
-''Первый способ'' безопасен, но требует постоянного ввода пароля при доступе к SVN-репозиторию, при этом не нужно делать никаких дополнительных настроек как на сервере, так и на клиенте. Работает так:+
- $ svn list svn+sshtunnel://имя_пользователя@адрес_вашего_сайта/название_репозиторя+
- Password:+
-команда попросит вас ввести пароль, который вы указывали при создании дополнительного SSH/SVN пользователя в разделе кабинета /Дополнительные FTP логины/.+
- +
-''Второй способ'' заключается в настройке беспарольного доступа на основе авторизации по ключам. В Интернете масса информации по этому вопросу, поэтому мы остановимся только ньюансах.+
- +
-'''Важное замечание.''' После того, как вы разместили публичный ключ на сервере в файл <code>~/.ssh/authorized_keys</code> '''обязательно''' добавьте в начало строки (до слов <code>ssh-rsa</code> или <code>ssh-dsa</code>) с ключем следующий код:+
- command="[ ${USER} != имя_пользователя ] && exit" ssh-rsa AAAAB3N ... == user@hostname+
- +
-'''имя_пользователя''' - имя пользователя из раздела кабинета /Дополнительные FTP логины/, соответственно это же имя должен использовать тот человек, чей ключ вы разместили на сервере.+
- +
-В этом случае команда:+
- $ svn list svn+sshtunnel://имя_пользователя@адрес_вашего_сайта/название_репозиторя+
-не будет спрашивать про пароль.+
- +
-==== Туннель SSH ====+
- +
-Это наиболее быстрый и безопасный способ работы с репозиторием. Работа идет по протоколу SVN, но не с удаленным сервером, а с локальной машиной (портом), на которую проброшен по защищенному SSH-каналу порт с удаленной машины.+
- +
-* Для UNIX систем достаточно сделать так:+
- $ ssh -f -C -N -p 2222 -L 3690:адрес_вашего_сайта:SVN_порт имя_пользователя@адрес_вашего_сайта+
- +
-'''имя_пользователя''' - это имя из файла <code>~/svn/название_репозитория/conf/passwd</code><br />+
-'''адрес_вашего_сайта''' - сайт, на котором вы создали SVN-даемон;<br />+
-'''SVN_порт''' - порт, на котором работает SVN-даемон, указан в разделе кабинета /Хостинг HTTP служб/<br />+
- +
-Тогда работать с SVN можно уже так:+
- $ svn --username=имя_пользователя list svn://localhost/название_репозитория+
- +
-* Для Windows:+
-Основные настройки для доступа по SSH на сервер через PuTTY см. в статье [[Юникс шелл]], здесь будет только отмечена секция настройки туннелинга.+
-[[Изображение:Putty_tunnel_svn_add_1.jpg|350px|thumb|left|Добавление опция туннеля]]<br clear="both" />+
-[[Изображение:Putty_tunnel_svn_add_done.jpg|350px|thumb|left|Окно конфигурирования туннелинга после добавления опций]]<br clear="both" />+
- +
-После соединения с сервером по SSH в TortoiseSVN можно использовать такие URL:+
- +
- svn://localhost/название_репозитория+
- +
-== См. также ==+
-* [[Юникс шелл]]+
-* [[Trac - быстрый старт]]+
-== Ссылки ==+
-* [http://ru.wikipedia.org/wiki/Subversion Subversion] (рус.) - общая информация по Subversion на сайте wikipedia.+
-* [http://svnbook.red-bean.com/index.ru.html Управление версиями в Subversion] (рус.) - официальная документация по Subversion.+
-* [http://tortoisesvn.net/docs/release/TortoiseSVN_ru/ TortoiseSVN] (рус.) - документация по TortoiseSVN.+
- +
-[[Категория:UNIX]]+
-[[Категория:Программирование]]+

Версия 06:54, 16 мая 2011

What a joy to find someone else who tihnks this way.

Личные инструменты