当前位置:  开发笔记 > 运维 > 正文

是否有可以管理大文件的分布式VCS?

如何解决《是否有可以管理大文件的分布式VCS?》经验,为你挑选了2个好方法。

是否有可以处理大于可用RAM的文件的分布式版本控制系统(git,bazaar,mercurial,darcs等)?

我需要能够提交大型二进制文件(即数据集,源视频/图像,存档),但我不需要能够区分它们,只需提交然后在文件更改时进行更新.

我大约一年前看过这个,没有一个明显的候选人允许这个,因为它们都是为了速度而在记忆中进行区分.这给我留下了一个VCS来管理代码和其他东西("资产管理"软件或只是rsync和脚本)的大文件,当两者的目录结构重叠时,这是非常难看的.



1> joelhardi..:

我问这个问题已经3年了,但是,从版本2.0开始,Mercurial包含了largefiles扩展,它实现了我最初寻找的东西:

largefiles扩展允许在Mercurial中跟踪大型不可压缩的二进制文件,而不需要过多的克隆和拉取带宽.Mercurial不会直接跟踪作为大文件添加的文件; 相反,他们的修订由校验和标识,Mercurial跟踪这些校验和.这样,当您克隆存储库或引入变更集时,不需要较旧版本的存储库中的大文件,只下载更新到当前版本所需的文件.这节省了磁盘空间和带宽.



2> ddaa..:

没有免费的分布式版本控制系统支持.如果您需要此功能,则必须实现它.

你可以注销git:他们对Linux内核开发用例的原始性能感兴趣.他们不可能接受在扩展到巨大的二进制文件时的性能权衡.我不知道Mercurial,但他们似乎已经做出了与git相似的选择,将他们的操作模型与他们的存储模型相结合以获得性能.

原则上,Bazaar应该能够通过一个实现树/分支/存储库格式的插件来支持您的用例,这些格式的磁盘存储和实现策略针对您的用例进行了优化.如果内部架构阻止了您,并且您发布了有用的代码,我希望核心开发人员将帮助修复内部架构.此外,您可以与Canonical建立功能开发合同.

可能最实用的方法,不管具体的DVCS如何构建混合系统:实现一个巨大的文件存储,并将对该存储中的blob的引用存储到您选择的DVCS中.

完全披露:我是Canonical的前雇员,并与Bazaar开发商密切合作.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有