20 августа 2012 г.

Настройка Eclipse для работы с Subversion по протоколу svn+ssh в Windows.

Настройка Eclipse для работы с Subversion по протоколу svn+ssh в Windows.


Проблема:

При попытке подключения к репозиторию SVN по ssh Eclipse выкидывал ошибку "svn: Can't create tunnel: The system cannot find the file specified.". Поэтому возникла необходимость разобраться и настроить среду Eclipse для работы с репозиториями SVN по SSH в операционной системе Windows. 

Исходные данные:

Решение:

1. Установка плагина для Eclipse:

В интернете множество статей как это сделать, но все же лучше обо всем по порядку.
Запускаем Eclipse и переходим по следующему пути : Help -> Install New Software... (рис 1).
Рисунок 1



Далее мы попадаем в диалог установки новых модулей для Eclips. Нажимаем кнопку Add для добавления нового репозитория (рис 2).
Рисунок 2

В диалоге Add Repository (рис 3) делаем настройки:
Рисунок 3

В поле Name указываем название какое в голову придет, а в Location прописываем следующий путь:  http://subclipse.tigris.org/update_1.8.x  нажимаем OK.

На экране появится следующий диалог Install, в котором отмечаем пункты для установки (рис 4) и жмем Next.
В репозитории содержится  два раздела

  1. Subclipse - плагин Subversion  для Eclipse 3.2 и выше.
  2. SVNKit - SVNKit библиотека поддержки Subversion 1.7.x API

Subclipse содержит следующие доступные для установки пакеты:

CollabNet Merge Сlient - клиент CollabNet предназначен для выполнения слияний веток, ревизий и так далее в проекте Subversion в среде Eclipse, предоставляет очень широкие возможности.
Subclipse (Required) - собственно сам плагин обеспечивающий работу Eclipse c системой управления версиями Subversion. Как вы заметили из названия required - обязательный компонент.
Subclipse Integration for Mylyn 3.x (Optional) - предоставляет функции интеграции между Subclipse и Mylyn - подсистемой отслеживания ошибок и управления заданиями среды разработки Eclipse. Дополнительно можно посмотреть здесь. Устанавливается по желанию, но мне она очень нравится и я её устанавливаю. В следующих постах поговорим об это подробнее.
Subversion Client Adapter (Required) - Subversion клиент-адаптер обеспечивает общий интерфейс для функциональности клиента Subversion (required - обязательно для установки).
Subversion JavaHL Native Library Adapter - Subversion клиент-адаптер для использования системы Subversion с родной библиотекой JavaHL.
Subversion Revision Graph - модуль позволяет строить граф ревизий вашего проекта.

SVNKit содержит следующие доступные для установки пакеты:

JNA Library - JNA (Java Native Access) позволяет программам на Java получать удобный и простой доступ к внешним системным библиотекам
Subversion Client Adapter (not required) - Subversion клиент-адаптер для использования с чистой Java SVNKit библиотекой.
SVNKit Library - SVNKit является чистой Java Subversion клиентской библиотекой, которая может быть использована через собственный API или выступать в качестве прозрачной замены родного JavaHL.



Таким образом для начальной работы (подключиться к SVN репозиторию и делать коммиты) достаточно установить только обязательные компоненты - Subclipse (Required), Subversion Client Adapter (Required) и возможно понадобится Subversion JavaHL Native Library Adapter. Остальное можно ставить, а можно нет это зависит от ваших потребностей при работе с SVN.
Рисунок 4

Смотрим сводную информацию о выбранных пакетах и жмем Next (рис 5).
Рисунок 5

Соглашаемся с лицензионным соглашением и начинаем установку нажатием на кнопку Finish (рис 6).
Рисунок 6

Устраиваемся поудобнее и смотрим как качаются и устанавливаются наши плагины (рис 7).
Рисунок 7
После установки Eclipse попросит перезагрузиться нажимаем Yes (рис 8).
Рисунок 8

На этом установка плагина закончена. Чтобы проверить данный факт необходимо открыть Help -> Install New Software... (рис 1) и ищем ссылку What is already installed? (можно посмотреть на рис. 2). Нажимаем на нее и видим диалог с установленными дополнениями Eclipse (рис 9).
Рисунок 9

2. Настройка Eclipse

Для начала укажем Eclipse наш приватный ключ. Для этого идем в меню Window->Preferences. В появившемся диалоге выбираем General->Network Connections->SSH2 вкладка General (рис 10). Нажимаем Add Private Key... и выбираем ваш приватный ключ.
Рисунок 10

Следующим шагом нам необходимо настроить интерфейс SVN через который мы будем обращаться к репозиториям. Переходим по следующему пути Team->SVN и в выпадающем списке Client в секции SVN interface выбираем JavaHL (JNI) (рис 11) и сохраняем изменения.
Рисунок 11

Теперь можно проверить что мы получили для работы с SVN в Eclipse. В Eclipse переходим в меню Window->Open Perspective->Other.. и видим окно как на рисунке 12.

Рисунок 12
Выбираем SVN Repository Exploring и наш Eclipse преобразуется в нечто похожее на мой изображенный на рисунке 13. Скрыть/отобразить дополнительные панели можно в меню Window->Show View->.. Вот здесь и будет происходить управление нашим проектом.
Рисунок 13

3. Настройка Windows

Теперь необходимо указать нашей системе каким образом она будет работать с ключами. Для этого нам необходимо создать новую системную переменную. Нажимаем на ярлыке "Мой компьютер" правую кнопку мыши и выбираем пункт "Свойства", в появившемся окне переходим на вкладку "Дополнительно". Нажимаем кнопку "Переменные среды" (рис 14).
Рисунок 14

Перед вами появится переменные среды вашей системы, для добавления новой переменной необходимо нажать кнопку "Создать" (рис 15)
Рисунок 15

В появившемся окне необходимо ввести следующие данные:
Имя переменной: SVN_SSH
Значение переменной: C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe

Значение переменной должно содержать путь к исполняемому файлу TortoisePlink.exe, который входит в TortoiseSVN. Самое главное здесь это слеши "\ \". Это очень важно, иначе не будет работать. (рис 16)
Рисунок 16

4. Подключение к репозиторию SVN

Все предварительные настройки мы закончили и теперь можно переходить непосредственно к работе с проектом, расположенном в Subversion. Итак запускаем Eclipse и создаем новый проект  File->New->Other... (рис 17).
Рисунок 17
В появившемся диалоге выбираем тип проекта SVN->Checkout projects from SVN жмем Next (рис 18).
Рисунок 18
Выбираем создать новый путь к репозиторию Create a new repository location и жмем кнопку Next (рис 19)
Рисунок 19
На следующем экране вставляем Url путь к вашему репозиторию и нажимаем кнопку Next (рис 20).
Рисунок 20
Eclipse пытается соединиться с вашим репозиторием и если вы все указали верно то отобразится структура каталогов вашего репозитория (рис 21).
Рисунок 21
Жмем Next и на следующем шаге вводим имя нашего проекта в поле Project Name. При желании можно указать ревизию, которую следует скачивать (рис 22).
Рисунок 22
Eclipse спросит вас какое рабочее пространство использовать для данного проекта (рис 23). Выбираем свое или используем по умолчанию.
Рисунок 23
Нажимаем кнопку Finish и наблюдаем как Eclipse выкачивает ваш проект из репозитория (рис 24).
Рисунок 24
В  результате наш Eclipse примет следующий вид в перспективе SVN Repository Exploring (рис 25) и в перспективе Java (рис 26).
Рисунок 25

Рисунок 26
На это настройка закончена и можно приступать к работе над проектом.

4 комментария:

  1. все круто вот только где взять ключи или как их создать )
    цитата "
    Приватный и публичный ключи ssh (публичный ключ должен быть уже передан администратору сервера и добавлен)"
    а также нет ничего про замечательную программку
    цитата "Значение переменной должно содержать путь к исполняемому файлу TortoisePlink.exe, который входит в TortoiseSVN. Самое главное здесь это слеши "\ \". Это очень важно, иначе не будет работать. (рис 16)"я думаю что если не объяснить как она ставится и работает то толку от того в какую сторону слеши она и так не будет работать -:)

    ОтветитьУдалить
  2. В данной статье подразумевается что у Вас уже имеется ключи сгенерированные администратором, либо вы сами сгенерировали пару ключей использую PyTTY. В следующем посте обязательно опишу как это сделать. На программу TortoiseSVN имеется ссылка в "Исходные данные". Ждите новых постов с подробными настройками и описанием

    ОтветитьУдалить
  3. Приватный ключ не подхватывается, в чём может быть проблема.
    Выдается окно с запросом пароля.
    Но тот же ключ работает в Tortoise.

    ОтветитьУдалить
    Ответы
    1. Передал его в аргументах TortoisePlink при установке переменной SVN_SSH.

      Удалить