Обновление подмодуля Grit возвращает ноль

#ruby #git #grit

#ruby #git #зернистость

Вопрос:

Работаю над проектом ruby / git с использованием Grit, но я не могу обновить свои подмодули программно. Я выяснил, как функция missing_method сопоставляется с git и как использовать ее для выполнения задач, не записанных в grit, однако функция обновления подмодуля, похоже, не работает.

Вот пример моего кода:

 git = Grit::Git.new(@repository)
git.pull
pp git.submodule({:quiet => false, :verbose => true, :progress => true}, "update")
  

ВОЗВРАТ:

 ""
  

Заранее спасибо!

Ответ №1:

не знаком с grit, но в обычном git вы бы

 git submodule update --init --recursive
  

Часть инициализации задает удаленный URL в подмодуле. Надеюсь, у вас есть :init => true и :recursive => true доступные параметры. Рекурсивный для вас необязательный. Используйте его, если в вашем репозитории подмодулей есть сами подмодули.

Надеюсь, это поможет.

Комментарии:

1. Ввод команды вручную работает просто отлично, однако сценарий, который я написал, предназначен для управления этими аспектами для пользователя и автоматического обновления подмодуля, когда родительский репозиторий устанавливает новый заголовок для подмодуля.

2. Извините, но я пытаюсь сохранить все, что содержится в скрипте ruby, который я уже написал. При необходимости, я полагаю, я могу вручную выполнить команду git, а не использовать встроенный в grit метод для этого.

3. Я понимаю вашу проблему.. Мне интересно, какие еще параметры есть у этого метода подмодуля…

4. Я не думаю, что это проблема с параметрами, это может быть ошибка в grit. Я посмотрю, может быть, сопровождающий сможет ответить на мой вопрос. Хотя спасибо!