2011-05-25 28 views
0

使用Grit处理ruby/git项目,但我无法以编程方式更新我的子模块。我想出了missing_method函数如何映射到git以及如何使用它执行未写入砂砾的任务,但子模块更新函数看起来不起作用。Grit submodule update returns nil

这里是我的代码示例:

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

返回:提前

"" 

谢谢!

回答

0

不熟悉的砂砾,但在普通的git你会

git submodule update --init --recursive 

初始化部分设置在辅助模块中的远程URL。希望你有:init => true:recursive => true参数可用。递归对你来说是可选的。如果您的子模块回购具有子模块本身,请使用它。

希望这会有所帮助。

+0

在命令中手动输入可以很好地工作,但是我编写的脚本旨在为用户管理这些方面,并在父存储库为子模块设置新头时自动更新子模块。 – Z99 2011-05-25 21:48:51

+0

你看过gitslave吗? – 2011-05-25 22:18:35

+0

对不起,但我试图保留我已写入的ruby脚本中的所有内容。如果需要的话,我想我可以手动执行git命令,而不是使用grit的内置方法。 – Z99 2011-05-27 18:56:56