Как импортировать существующий голый репозиторий git в Gitlab?

Я импортирую мой голый репозиторий git в Gitlab, как описано здесь здесь, поскольку он не был распознан как репозиторий git, но создает 9400 больших "пустых" репо (оригинал составляет 2,8 ГБ):

$ bundle exec rake gitlab:import:repos RAILS_ENV=production
fatal: Not a git repository (or any of the parent directories): .git
Processing test.git
INFO: Sidekiq client using redis://localhost:6379 with options:namespace=>"resque:gitlab"}
 * Created test (test.git)
Done!

В качестве обходного пути я заменю пустую папку проекта (которая была создана пробной версией импорта) с моим голым репо. Впоследствии я дерево, чтобы клонировать репо из удаленного и получить следующую ошибку:

$ git clone [email protected]:...test.git
Cloning into 'test'
fatal: '...test.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Но пользователь git должен иметь все права, которые необходимы. -Может ли я что-то пропустить?

Моя система: RHEL6.3, git 1.8.3.4, Gitlab5.3.

Нужен ли Gitlab нормальный репозиторий (не голый)? Или что может быть моей проблемой?

Ответ 1

Нужен ли Gitlab нормальный репозиторий (не голый)?

Нет, все репозитории, управляемые gitlab, являются голыми репозиториями.

Вы должны увидеть:

/home/git/repositories/user1/repo1.git
/home/git/repositories/user1/repo2.git
/home/git/repositories/greoup1/repo3.git
...

Убедитесь, что права вашей папки test.git (и голые файлы репо внутри нее) совпадают с правами существующего открытого репозитория в /home/git/repositories/.

Если импорт не работает, тогда "заменить пустую папку проекта (которая была создана пробной версией импорта) с моим голой репо" должна.

Но: вам нужно убедиться, что любой крючок, который был в пустой пустой репо, созданный GitLab (в ~git/repositories/arepo.git/hooks), копируется поверх вашего полного голого репо, заменяя пустую (тот же путь).
Проверьте также, что было в ~git/repositories/arepo.git/info и ~git/repositories/arepo.git/config

Чтобы отладить, попробуйте сначала клонировать пустое репозиторинг, созданный GitLab во время неудачного импорта.
Затем замените его на свой, дважды проверьте крючки и повторите попытку.


Как упомянутый OP и задокументирован в GitLab Руководство по устранению неполадок ", правильный URL-адрес ssh:

[email protected]:repositories/mygroup/proj1.git

с :repositories.


Чтобы импортировать голые репозитории (как указано Sytse Sijbrandij ниже и в raketasks/import.md)

  • скопируйте ваши голые репозитории в git repos_path (см. config/gitlab.yml gitlab_shell -> repos_path)
  • выполните приведенную ниже команду

    bundle exec rake gitlab:import:repos RAILS_ENV=production
    

Ответ 3

Для меня место для копирования репозитория - это /var/opt/gitlab/ git -data/repositories

Я скопировал свой существующий голый репозиторий в приведенном выше каталоге и запустил > gitlab-rake gitlab: import: repos он работает!!!

Ответ 4

У меня есть это! Это был недостающий каталог в моем пути ssh. Эта проблема уже отслеживалась здесь.

Извините, но сообщения об ошибках были не так очевидны. Надеюсь, это поможет другим начинающим Gitlab, таким как я:)