Mercurial(Hg)和二进制文件

时间:2010-08-12 19:07:11

标签: mercurial

我正在编写一组django应用程序,并希望使用Hg进行版本控制。我希望每个应用程序独立于其他应用程序,因此在每个应用程序中可能有一个静态媒体目录,其中包含我不希望在版本控制下的图像。换句话说,二进制文件不会全部位于一个中心位置

我想找到一种方法来克隆包含图像文件副本的存储库。如果当我进行合并时,如果在一个仓库中有一个图像文件而不是另一个仓库中的图像文件,则会有一些警告。

目前我使用python脚本查找一个repo中的图像和其他二进制文件,而不是另一个。但是很多人必须面对这个问题,因此必须有一个更强大和更优雅的解决方案。

另外一件事......由于我不想进入的原因,通常我的一个回购是在Windows机器上,另一个是在Linux上。所以跨平台解决方案会很好。

3 个答案:

答案 0 :(得分:8)

自Mercurial 2.0以来,扩展largefiles现已包含在主发行版中。该扩展可以保存和管理“普通”存储库之外的大型文件,使您获得DCVS的好处,但不会受到指数大小和处理时间增长的影响。

其他类似行的扩展程序是SnapExtensionBigFilesExtension。但是,这两个不与Mercurial一起发布(你必须手动获取它们)。

答案 1 :(得分:2)

Mercurial可以跟踪任何类型的文件,对于二进制文件,如果有什么变化,那么整个文件不仅仅被更换。

如果一个repo不包含文件,则收到警告,DVCS的一点是repos是相关的但是是自治的。您可以随时检查并查看在同步或合并操作期间添加了哪些文件。

答案 2 :(得分:0)

当前的Mercurial book(由Bryan O' Sullivan说),Mercurial还存储了二进制文件的差异。这有多高效,显然取决于二进制文件更改的性质。