Почему Gitlab не может импортировать репозиторий из локальной сети с кодом состояния 128?

Я недавно установил GitLab с Docker на сервере в локальной сети. Я пытаюсь перенести репозиторий, который у меня был локально на моем ПК. В качестве обходного пути я выставил его через локальный HTTP-сервер в моей локальной сети, просто чтобы иметь возможность импортировать его в GitLab, поскольку почти все параметры, доступные в панели администратора GitLab, похожи на "Импорт из GitHub", и ни один из этих параметров не поможет в моем случае (я имею в виду: я не мог просто загрузить свой репозиторий .git папка для импорта? -просто говоря) Кстати, я выбрал "Репо по URL":

Есть параметр безопасности, который мне пришлось отключить, потому что GitLab не позволяет импортировать из URL-адресов, которые указывают на сервер в вашей локальной сети. Поэтому я включил опцию "Разрешить запросы локальной сети от хуков и сервисов" в разделе "Исходящие сервисы".

Затем я попытался создать новый проект из GitLab, используя вкладку "Импорт проекта" и заполнив форму внутри него. Затем он продолжает работать долгое время с сообщением "Импорт...", как будто он продолжает повторять попытки снова и снова, пока не появится это сообщение:

Каждая попытка импорта не удалась: Ошибка импорта репозитория http://111.222.33.44/path/to/my/repository/root/folder/.git в myuser/my_project - 13:CreateRepositoryFromURL: clone cmd wait: выход из состояния 128. Пожалуйста, попробуйте снова.

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

Указанный URL не является проблемой как таковой: если я наберу его в веб-браузере, я смогу четко увидеть всю файловую систему моего проекта в веб-браузере, и, если я добавлю /.git к этому, я даже вижу скрытый .git содержимое папки в моем браузере... но по какой-то причине этого недостаточно для GitLab...

Я очень смущен по этому поводу. Одна из ссылок, которые я нашел, - " Экспортировать репозиторий с сервера Gitlab на другой сервер Gitlab" (Обратите внимание, что я не импортирую из другого Gitlab, но простой репозиторий git создан на ПК с простым git init, Поиск материала для чтения о чем-то отдаленно похожем на мой случай не является чем-то вроде пирога: я искал об этом целый день, но безуспешно...). В этой ссылке есть часть, которая говорит:

Вы получите предупреждение о том, что вы клонировали пустой репозиторий. Это нормально. Перейдите в рабочий каталог вашего извлеченного репозитория и сделайте git pull

... поэтому я нашел папку, в которой моя установка GitLab создала "пустой репозиторий", и попытался выполнить git pull команда оттуда, давая ему маршрут к моей другой машине локального сервера. Что-то похожее на это:

git pull http://111.222.33.44/path/to/my/repository/root/folder/my_project.bundle

... только после успешного создания .bundle файл на другой стороне, следуя инструкциям, которые я нашел в приведенной выше ссылке. Но по какой-то причине CLI моего сервера GitLab не находит команду git! (Возможно, это обернуто на какой-то virtualenv? Или скорее это не было включено в PATH на первом месте? Кто знает...). В любом случае тянуть куда? Там нет рабочего каталога, чтобы вытащить из!

Могу ли я что-то еще с этим сделать? Мои знания о Git ограничены: я почти всегда использовал его для хранения репозиториев самостоятельно, в одиночку, без необходимости push их нигде, ни pull их из любого места (за редким исключением одного моего проекта GitHub).

Могу добавить, что официальное руководство Gitlab о том, как импортировать проекты, содержит инструкции по переносу из любого места, кроме оригинального, развернутого, незащищенного, обычного git программное обеспечение для командной строки!

1 ответ

Решение

В конце концов, настоящей проблемой было недопонимание того, как работает веб-меню GitLab.

Когда вы нажимаете "Новый проект" в веб-интерфейсе GitLab, вы можете выбрать одну из трех вкладок:

  • Пустой проект
  • Создать из шаблона
  • Импортировать проект

Я не думал, что "Пустой проект" будет подходить... я имею в виду... "Я пытаюсь импортировать свой проект в GitLab", это была моя идея, поэтому я хотел попробовать вкладку "Импортировать проект" (и именно поэтому я в конечном итоге опубликовал этот вопрос)... но попытка из "Пустого проекта" решила мою проблему.

Я просто отказался от своей истории коммитов и пытался создать новый репозиторий с нуля, исходя из состояния моих текущих файлов проекта. Но, неожиданно, после создания "пустого проекта", GitLab дал мне инструкции импортировать мой репозиторий в этот "пустой проект". Я цитирую:

CMD Instructions - Existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.somedomain.net/myuser/someblank-domain.git
git push -u origin --all
git push -u origin --tags

И, таким образом, "пустой проект" стал "импортированным проектом". Задача решена!

I had the same error Error importing repository http://111.222.33.44/path/to/my/repository/root/folder/.git into myuser/my_project - 13:CreateRepositoryFromURL: clone cmd wait: exit status 128. Please try again..

In my case I had to provide a username and password, since the repository I imported from was secured with that (gitblit). I tried also many ways, but in the end it seems to be a GitLab glitch. For me using the provided fields Username (optional) and Password (optional) didn't work! I had to provide the credentials directly inside the Git repository URL field (as the old screenshot in the docs also suggest):

With that the import worked like a charm - and at great speed.

В моем случае основной причиной этой проблемы было то, что в моем пароле (временном пароле HTTP, созданном Герритом) были специальные символы. Мне приходилось генерировать пароли, пока мне не дали пароль без специальных символов.

Другие вопросы по тегам