Пытаясь обновить подмодуль git с Ruby, как выполнить chdir перед выполнением команды оболочки? - PullRequest
1 голос
/ 07 ноября 2011

У меня есть какой-то git repo X, у которого есть подмодуль в подпапке foo / bar, указывающий на репо Y.

Я пытаюсь заставить свою систему CI автоматически обновлять подмодуль, я имею в виду выполнение этих командиз RAKE:

$ cd foo/bar
$ git pull origin master

Но когда моя задача RAKE пытается выполнить это, похоже, что он вытягивает X вместо Y (из журнала), поэтому я предполагаю, что chdir для foo / bar неработа.

То, что я уже пробовал в ruby:

1: использование обратных галочек:

`cd foo && cd bar && git pull origin master`

2: сначала использование Dir.chdir, а затем обратных галочек:

Dir.chdir(Dir.pwd + "\\foo\\bar")
`git pull origin master`

(Да, я использую обратную косую черту, потому что агент запускается в Windows ...)

Кажется, что оба описанных выше метода все еще выполняются в корне X вместо X \ foo \ bar.

Есть идеи?: (

Спасибо

Ответы [ 2 ]

1 голос
/ 03 января 2012

Пасс Dir.chdir блок

Dir.chdir(Dir.pwd + "\\foo\\bar") do
    `git pull origin master`
end
1 голос
/ 03 января 2012

Почему бы и нет: git submodule update

В противном случае: git --git-dir="foo\\bar" pull origin master

...