#ruby #git #rake #git-submodules
#ruby #git #грабли #git-подмодули
Вопрос:
У меня есть некоторое репозиторий git X, у которого есть подмодуль во вложенной папке foo/bar, указывающий на репозиторий Y.
Я пытаюсь заставить мою систему CI автоматически обновлять подмодуль, я имею в виду выполнение этих команд из RAKE:
$ cd foo/bar
$ git pull origin master
Но когда моя задача RAKE пытается выполнить это, похоже, что она извлекает X вместо Y (из журнала), поэтому я предполагаю, что chdir в foo / bar не сработал.
Что я уже пробовал в ruby:
1. Использование обратных ссылок:
`cd foo amp;amp; cd bar amp;amp; git pull origin master`
2. Сначала используйте Dir.chdir, а затем обратные ссылки:
Dir.chdir(Dir.pwd "\foo\bar")
`git pull origin master`
(Да, я использую обратную косую черту, потому что агент работает в Windows …)
Похоже, что оба вышеуказанных метода все еще выполняются в корне X вместо X foo bar.
Есть идеи? 🙁
Спасибо
Ответ №1:
Почему бы и нет: git submodule update
В противном случае: git --git-dir="foo\bar" pull origin master
Ответ №2:
Передать Dir.chdir
блок
Dir.chdir(Dir.pwd "\foo\bar") do
`git pull origin master`
end