Git ls-remote не возвращает данные в RHEL
Мы работаем над проектом, в котором все среды разработки используют экземпляры Ubuntu 14.04 с использованием Vagrant. Наши серверы сборки и развертывания CI работают под управлением RHEL 6.5. Мы используем DUO для сборки компонентов Nodejs и во время сборки программно клонируем зависимости из URL-адресов git. Мы обнаружили, что это работает все время на Ubuntu, но зависает на RHEL. Когда мы посмотрели более внимательно, мы обнаружили проблему с помощью следующей команды:
git ls-remote --tags --heads https://<username>:<authtoken>@github.com/<path-to-repo>
Это не возвращает данных, когда он запускается на наших экземплярах сервера сборки, но отлично работает на нашей Ubuntu.
Для отладки я использовал экземпляр RHEL в облаке и обнаружил, что могу решить эту проблему, обновив версию git 1.7.x, которая поставляется с OTB с RHEL, до 1.9.4. Но это не сработало на экземплярах сборки. Я не вижу никакой разницы в git config для двух экземпляров. Поскольку у меня нет регулярного доступа к серверам сборки, я нашел образ Centos, где я мог воспроизвести проблему. Я сократил настройки git config на этом и на моем образе Ubuntu, чтобы они были идентичны. Я не вижу, что вызывает проблему.
Есть идеи?
1 ответ
Через некоторое время мы решили, что мы считаем ответом на это. Когда вы устанавливаете git 1.7 через yum, вы получаете зависимость perl-Git. Первоначальная проблема, с которой мы столкнулись, заключалась в том, что в версии 1.7 мы получали запрос пароля при загрузке компонентов git repo с токеном github. Это, очевидно, было проблемой в контексте CI, так как никто не будет там, чтобы ввести пароль.
Эта первоначальная проблема была решена путем обновления до более новой версии git, в нашем случае 1.9.4, которую мы создали из исходного кода. Именно здесь возникла проблема, упомянутая в этом посте, где git ls-remote ничего не возвратил. Эта проблема исчезла, когда мы удалили Perl-Git, который остался от старой версии 1.7.
Мы надеялись собрать 1.7 из исходного кода и установить без Perl-Git, чтобы увидеть, исчезли ли все проблемы, но у нас не хватило времени. Итак, на данный момент мы считаем, что ответ находится в конфликте с этим пакетом perl-Git.