Почему Gitlab не может импортировать репозиторий из локальной сети с кодом состояния 128? - PullRequest
0 голосов
/ 23 января 2019

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

enter image description here

Есть параметр безопасности, который мне пришлось отключить, потому что 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-адрес не является проблемой per se : если я наберу его в веб-браузере, я смогу ясно увидеть всю файловую систему моего проекта в веб-браузере и, если я добавлю /.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 программного обеспечения для командной строки!

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

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

0 голосов
/ 24 января 2019

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

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

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

Я не думал, что "Пустой проект" будет способомиди ... я имею в виду ... "Я пытаюсь импортировать свой проект в 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

И, таким образом, «пустой проект» стал «импортированным проектом».Проблема решена!

...