我在小型企业环境中有一个用于C ++应用程序的Mercurial存储库。我让一位同事将安装脚本添加到存储库,并将所有依赖项二进制文件,PDF和可执行文件添加到Install
目录下的存储库中。我不喜欢在同一个存储库中使用二进制文件和依赖项,但我想了解最佳实践的建议。以下是我正在考虑的选项:
我担心使用Mercurial的子存储库基于我到目前为止所阅读的内容和(显然)不完整的实现。我想得到一个项目依赖系统,例如Ivy,但我不知道所有选项,还没有时间尝试任何选项。
我以为我会使用TortoiseHg作为基础,虽然它有一些像kdiff3.exe这样的二进制文件,但它在存储库中没有TortoiseHg二进制文件。相反,它使用setup.py
来克隆多个存储库并构建应用程序。这对于OSS来说似乎是合理的,但对企业环境来说并非如此。
建议?
答案 0 :(得分:3)
我很幸运使用了一个好的依赖管理器,但它对代码模块比工件更有用。子回购确实有效,但你不会削减人们拉顶树的克隆时间,因为它也会级联进入subrepo。
有人可能建议使用bfiles或big files,但我会避免使用它。它们的效果非常好,但是这个功能看起来好像今年夏天本来就变得多变,那时候它们会萎靡不振。
我是你我(a)击中同事(b)尝试剥离这些添加的文件(使用条带或转换),(c)重新执行它将构建的安装程序不存储。
我可能存储的PDF,但有一些neat tricks for generating docs if you're interested。