Перенос репозиториев между экземплярами Gitlab
из-за моей старой установки Gitlab слишком сложно обновить (поток на форумах поддержки TKL:http://www.turnkeylinux.org/forum/support/20120913/upgrading-gitlab), я загрузил текущий дистрибутив TKL Gitlab и следовал стандартному пути обновления Gitlabs, так что теперь у меня есть полностью обновленная установка Gitlab 6.1, работающая с TKLBAM и всем этим хорошим материалом. Пока все хорошо.
но, оказывается, наша старая версия gitlab не дает HTTP URL-адреса для репозиториев, так что это означает, что я не могу использовать функцию "импортировать существующий репозиторий"в Gitlab 6.1
Я знаю, что могу просто скопировать старые репозитории Git из старой виртуальной машины в новую, но как я могу сделать эти репозитории видимыми в Gitlab на новой виртуальной машине?
4 ответов
один вариант:
- клонируйте старое РЕПО из gitlab на машину dev.
- создайте пустое РЕПО на новом gitlab.
- добавьте новое РЕПО в качестве пульта ДУ на компьютере разработчика.
- Push все обратно в новое РЕПО.
- удалите старое РЕПО из списка удаленных РЕПО.
чтобы создать пульт с именем newRepo, выполните:git remote add newRepo gitlab.localhost.com:User/newRepo.git
(замените url-адрес в конце на один для вашего РЕПО)
недавно я мигрировал из gitolite в gitlab и официальную задачу rake gitlab:import:repos
работал для меня. Я использую gitlab 6.1.0 (82f3446). Вот что я сделал:--14-->
-
rsync
голые РЕПО от gitolite'у кrepositories/{group}/
. Обязательно замените{repository}
С именем репозитория gitolite и измените имя хоста вашего сервера gitlab.rsync -rth --progress repositories/{repository}.git \ git@gitlab-server:/home/git/repositories/{group}/
здесь
{group}
- это имя группы пользователей, в которую необходимо добавить репозиторий. Если у вас их нет конкретная группа, выберитеroot
название группы. -
Fix разрешения-только необходимые, когда
rsync
пользователь неgit
:sudo chown -R git:git repositories/{group}/
cd ~/gitlab
-
запустите задачу rake для импорта всех новых репозиториев:
bundle exec rake gitlab:import:repos RAILS_ENV=production
теперь, если вы войти в систему как администратор вы найдете новый проект добавлен.
для получения дополнительной информации, обратитесь к разделу "импорт голой репозитории в экземпляр проекта GitLab " под http://{your-gitlab-server}/help/raketasks
.
в вашем случае вы можете войти в свою старую систему TKL и rsync все голые РЕПО в новый экземпляр, а затем импортировать.
Я сделал это практически следующим образом после прочтения ответа ChrisA, который дал мне небольшую головную боль о том, как это сделать практически. Пример копирует РЕПО из github в gitlab, чтобы сделать источник и назначение немного яснее.
-
клонируйте старое РЕПО из github на машину dev (которая создает голое РЕПО):
$ git clone --mirror git@github.com:me/myrepo.git
создайте пустое РЕПО на новом gitlab.
-
добавить новое РЕПО в качестве удаленная на компьютере разработчика.
$ cd myrepo.git $ git remote add newRepo git@gitlab.com:me/myrepo.git
-
Push все обратно в новое РЕПО.
$ git push --mirror newRepo
вот именно.
таким образом, он скопировал все ветви и теги в новое место назначения.
Теперь вы можете удалить клонированное голое РЕПО с вашей машины dev.
Если ваш Gitlab >= 8.9, то вы можете использовать экспорт/импорт для переноса РЕПО.