Анамнез:
на протяжении более 5 лет наша команда разработчиков использует SVN возникла идея переехать на GIT, так как часто возникает нужда работать отдельно от основной команды разработчиков и увидели спасение в "локальных комитах". Самая большая беда в том, что для переезда на GIT мы можем использовать только свой собственный сервер под управлением MS W Server 2008 R2 Foundation (репозиторий SVN находится на корпоративном сервере под линухом) по ряду причин перевести форточный сервер под пингвинов нельзя (функционал винды на нем необходим).
Задачи:
скопировать рабочий репозиторий с svnserver (сервер репозитория Subversion под управлением Debian) в репозиторий GIT на gitserver (под управлением Win Server 2008).
обеспечить команде разработчиков доступ к репозиторию GIT (который есть клон репозитория SVN).
Предпринятые попытки:
С задачей за номером 1 я справился тут все оказалось просто:
в git bash набираем:
~$ git svn clone svn://
(хотя может чуточку не так, мог и подзабыть уже 2 месяца мучаюсь) и вводим логин пароль для прописанного в svn-репозитории пользователя.
после чего с помощью git svn fetch и git svn rebase забираю новые комиты из SVN-а.
А вот задача номер 2 ох бабоньки лягла на плечи мои и не дает мне горемычному покоя (простите за вольность).
В общем поднял я на виндовом сервере OpenSSH открыл 22 порт в брандмауэре а дальше понять могу уже тонну манов выкурил что скоро рак мозга заработаю (а может и уже).
При попытке с удаленной машины клонировать GIT репозиторй выдается окно: от TortoiseGIT PLink (это SSH клиент тортойсовский) "git@gitserver password:" c инпутбаром для ввода пароля (только пароль, логин не запрашивает) какие бы пароли не подсовывал не пускает клонировать все одно твердит: "Access Denied". Притом поведение всегда одно и тоже, что на машине для которой сгенерирована пара RSA-ключей и (далее судя по всему идет мое кривое понимание работы SSH сервера) текст из файла .pub добавлен в файл ssh_host_rsa_key.pub что для машины на которой пара ключей даже не генерировалась, то есть аутентификация на SSH-сервере не проходит, сколько не рылся в манах никак не могу найти внятной информации о том каким путем в принципе происходит аутентификация в репозитории GIT.
В общем подмогните, тону, а в какую сторону грести не понимаю.
Ответ
Решал недавно похожую задачу: имеем Windows Server 2008 x64, необходимо переехать с SVN (на этом же сервере) на GIT.
Решил следующим образом:
Поскольку SVN далее не планировалось поддерживать, то использовал утилиту svn2git. Сперва устанавливаем Ruby, в процессе установки для простоты отмечаем пункт "Add Ruby executables to your PATH".
Запускаем командную строку с правами администратора и выполняем gem install svn2git. Должно всё успешно установиться в каталог установки Ruby.
Далее используем svn2git с нужными параметрами (их список и документация доступны на GitHub в описании проекта). Для корректного переноса авторов коммитов необходимо создать простой текстовый файл (обязательно в кодировке UTF-8 without BOM) в формате:
pavel = Pavel Sidorov
И указать путь к этому файлу в аргументе --authors По завершении выполнения утилиты получаем локальный GIT-репозиторий. Следующий шаг - предоставить удаленный доступ к этому репозиторию. Для этого я использовал Bonobo Git Server, процесс установки подробно описан со скриншотами на странице install. Предварительно обязательно проверить требования и установить недостающие компоненты. После установки создаем удалённый репозиторий и выкладываем наш локальный конвертированный репозиторий:
git remote add origin https://172.1.1.1:8094/MyProject.git git push origin master
Комментариев нет:
Отправить комментарий