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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 19:02, 31 мая 2010 (править)
77.239.235.129 (Обсуждение)

← К предыдущему изменению
Версия 20:01, 31 мая 2010 (править) (отменить)
Dmih (Обсуждение | вклад)
м (Правки 77.239.235.129 (обсуждение) откачены к версии Renton)
К следующему изменению →
Строка 1: Строка 1:
-Как 1gb.ru разводит лохов+== Общие сведения ==
-Кризис размножает жуликов с огромной скоростью. А интернет рай для воров и мошенников. Так как получить ответственность за интернет мошенничество крайне сложно. И вот очередной интернет хостер 1gb.ru вышел на ниву жульничества. И добился там превосходных результатов. + 
-Итак, на главой странице сайта написано о низких ценах и домене в подарок. +Эта статья поможет понять как развернуть собственный svn-репозиторий в своем домашнем каталоге на UNIX-хостинге 1Gb.ru. Главное отличие от предложения [http://www.1gb.ru/services_svn.php Услуги хостинга Subversion (SVN)] заключается в том, что вы имеете полный доступ к всем файлам репозитория, можете конфигурировать его по-своему усмотрению, уставливать любые плагины и хуки. В дополнение, доступ к хранилищу обеспечивается по протоколам SVN/SSH обеспечивающие максимально быструю и безопасную передачу данных.
-Однако замечательная фраза содержится на странице отказа от заказа+Репозиторий доступен по вашему доменному имени и будет работать на выделенном порту.
-«Вы можете отказаться от услуг хостинга во время текущего периода оплаты, при этом вам будет возвращены неистраченные средства (пропорционально потраченному времени), за вычетом цены регистрации доменов в подарок, если это происходило в текущем периоде оплаты».+ 
-Особенно кайфово звучит фраза: «за вычетом цены регистрации доменов в подарок». Это что за цена регистрации домена в подарок? Как подарок может вообще иметь какую-либо цену? Вот страница для тех кто не верит.+=== Создание репозитория, службы SVN ===
-http://www.1gb.ru/default.aspx?ti=6&hti=104+* В разделе личного кабинета /Хостинг 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" />
-Как только вы закажите там услуги хостинга, то вы выясняете, что 30% времени ваш сайт не работает вообще. Он висит или отвратительно долго грузится. Когда вы начинаете этому возмущаться, то вам предлагают резво вернуть деньги. Но вы должны выполнить следующие условия: «Прежде всего, необходимо убедиться, что в личном кабинете заполнены все реквизиты клиента» + 
-И тут есть ключевой момент. Если вы заполните эти данные, то на вас сразу же оформят домен. Без этих данных оформить домен они не могут. А как только оформят домен (который дается типа в подарок :-)) вы уже лишитесь 750 рублей. И домен типа обратно перерегистрировать нельзя. И жулик с песнями бежит делить капусту, которую получил продав домен с наваром 350 рублей. А при оптовых ценах еще выше. А вы остаетесь с носом или с доменом. Переплатив за него почти половину стоимости. В любом случае ни о каком хостинге говорить не приходится.+* Создаем репозиторий:
-А они еще спрашивают сами себя, а почему такие низкие цены? Да вот почему, потому что ничего за эти деньги они не делают. Халявный сыр как известно в мышеловке.+ $ 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]]
 +[[Категория:Программирование]]

Версия 20:01, 31 мая 2010

Содержание

Общие сведения

Эта статья поможет понять как развернуть собственный svn-репозиторий в своем домашнем каталоге на UNIX-хостинге 1Gb.ru. Главное отличие от предложения Услуги хостинга Subversion (SVN) заключается в том, что вы имеете полный доступ к всем файлам репозитория, можете конфигурировать его по-своему усмотрению, уставливать любые плагины и хуки. В дополнение, доступ к хранилищу обеспечивается по протоколам SVN/SSH обеспечивающие максимально быструю и безопасную передачу данных. Репозиторий доступен по вашему доменному имени и будет работать на выделенном порту.

Создание репозитория, службы SVN

  • В разделе личного кабинета /Хостинг HTTP служб/ добавляем к сайту демон SVN (если вы хотите интегрировать его с Trac, то нужно выбрать сайт, на которой и будет Trac установлен):
Добавление службы SVN к сайту
Добавление службы SVN к сайту

После успешного добавления службы в таблице появятся ее параметры, обратите внимание на номер порта на котором будет работать ваша служба:

Параметры службы
Параметры службы

  • Создаем репозиторий:
$ mkdir ~/svn; cd ~/svn && svnadmin create название_репозитория

Важное замечание. Репозиторий будет работать только в каталоге ~/svn, поэтому не забывайте создавать его именно в нем.


Добавление пользователей

  • В разделе личного кабинета /Дополнительные FTP логины/ создаем дополнительного SSH-пользователя, для работы с SVN через SSH-туннель:
Добавление логина в личном кабинете
Добавление логина в личном кабинете

в случае успешного добавления, в таблице появится такая запись:

Запись об успешном добавлении
Запись об успешном добавлении

Этот пользователь сможет работать с SVN репозиторием через SSH-туннель.

  • Добавляем пользователя, редактируя файл ~/svn/название_репозитория/conf/passwd:
[users]
имя_пользователя = пароль

Примечание. Для удобства можно использовать те же логин/пароль, что и для дополнительного SSH-входа.


Этот пользователь сможет работать с SVN репозиторием по протоколу SVN.

В файле ~/svn/название_репозитория/conf/authz можно задать "права" для созданного пользователя. Назначим обычные - "чтение-запись":

[/]
имя_пользователя = rw

Если вы хотите запретить анонимный доступ на чтение репозитория по протоколу SVN, то в файле ~/svn/название_репозитория/conf/svnserve.conf в секции [general] добавьте строки:

anon-access = none
password-db = passwd

Настройка клиентов, тестирование подключений

Протокол SVN

Работа с репозиторием по протоколу SVN является наиболее быстрой и удобной, прекрасна реализована как в Windows, так и в UNIX системах.

  • UNIX, работа через консольный клиент svn:
svn --username=имя_пользователя list svn://адрес_вашего_сайта:SVN_порт/название_репозитория

имя_пользователя - это имя из файла ~/svn/название_репозитория/conf/passwd
адрес_вашего_сайта - сайт, на котором вы создали SVN-даемон;
SVN_порт - порт, на котором работает SVN-даемон, указан в разделе кабинета /Хостинг HTTP служб/
название_репозитория - имя, которое вы задавали в команде svnadmin create

  • Windows TortoiseSVN

Пример ввода URL в Repository Browser:

Ввод URL
Ввод URL

Обзор репозитория:

Рабочее окно Repo-browser
Рабочее окно Repo-browser

Протокол SSH

  • Работа из UNIX через консольный клиент svn.

Прежде всего, у себя на локальной машине нужно сделать настройку svn клиента для работы по SSH-туннелю через специальный порт. Для этого в файле ~/.subversion/config в секции [tunnels] добавьте строку:

sshtunnel = ssh -p 2222

Вообще тут возможны два варианта работы: авторизация по паролю, и авторизацию по ключу.

Первый способ безопасен, но требует постоянного ввода пароля при доступе к SVN-репозиторию, при этом не нужно делать никаких дополнительных настроек как на сервере, так и на клиенте. Работает так:

$ svn list svn+sshtunnel://имя_пользователя@адрес_вашего_сайта/название_репозиторя
Password:

команда попросит вас ввести пароль, который вы указывали при создании дополнительного SSH/SVN пользователя в разделе кабинета /Дополнительные FTP логины/.

Второй способ заключается в настройке беспарольного доступа на основе авторизации по ключам. В Интернете масса информации по этому вопросу, поэтому мы остановимся только ньюансах.

Важное замечание. После того, как вы разместили публичный ключ на сервере в файл ~/.ssh/authorized_keys обязательно добавьте в начало строки (до слов ssh-rsa или ssh-dsa) с ключем следующий код:

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_порт имя_пользователя@адрес_вашего_сайта

имя_пользователя - это имя из файла ~/svn/название_репозитория/conf/passwd
адрес_вашего_сайта - сайт, на котором вы создали SVN-даемон;
SVN_порт - порт, на котором работает SVN-даемон, указан в разделе кабинета /Хостинг HTTP служб/

Тогда работать с SVN можно уже так:

$ svn --username=имя_пользователя list svn://localhost/название_репозитория
  • Для Windows:

Основные настройки для доступа по SSH на сервер через PuTTY см. в статье Юникс шелл, здесь будет только отмечена секция настройки туннелинга.

Добавление опция туннеля
Добавление опция туннеля

Окно конфигурирования туннелинга после добавления опций
Окно конфигурирования туннелинга после добавления опций

После соединения с сервером по SSH в TortoiseSVN можно использовать такие URL:

svn://localhost/название_репозитория

См. также

Ссылки

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