8

我刚刚使用 Xcode CI ( http://www.apple.com/osx/server/features/#xcode-server )安装了新的 OS X Server 。

我已经为我的项目成功设置了 CI,但是主 git repo 的一个子模块非常大(它包含版本控制的图像,而不是代码)。

出于性能和空间相关的原因,我希望 CI 在获取子模块时使用浅克隆而不是完整克隆。有没有办法配置 CI 来做到这一点?

或者有没有其他方法可以加快这个过程?

4

1 回答 1

0

git 可以使用浅子模块,问题出在 Xcode CI 上。

使用 git 存储大型二进制图像是反模式,因此它可能永远不会是行为上的最佳拟合。为了 Xcode 的缘故,理想情况下,您根本不会为此目的使用 git,而只是将构建过程检索单个图像的脚本写入 CI(例如,通过 rake 或 gradle 任务、wget、curl、scp 等)。如果它真的是一个图像目标,你可能有能力引用它,比如这个 jar 文件:

https://github.com/projecthydra/hydra-jetty/blob/master/solr/lib/solr-analysis-extras-4.9.0.jar

CI 对目标的其他可能状态的可用性或修订历史不感兴趣。它只是想满足依赖。

如果您必须使用submodule,您可以设置自己的精简内部 repo 目标,称为[that_submodule]_current,它只具有您想要的单一状态。将其吹走并根据需要更换。

请注意,Xcode 显然有一个分离的子模块头错误,因此这表明它们需要一段时间才能处理其他稍微更奇特的子模块选项,例如--depth.

于 2014-09-04T01:32:16.317 回答