4

版本控制是否适合内容本质上是二进制数据文件的项目?我正在考虑重量为 10 giga 的包装,其中包含大量 BMP 和 TGA 文件。

颠覆可以处理这样的事情吗?是否可以生成某种二进制补丁,允许用户只下载修改过的内容。Rsync 可能是一种选择,但没有回头路。我真的很希望能够轻松地回到早期版本。

我也看了这个问题,但对答案不满意

4

5 回答 5

4

您的问题是发布管理问题,其中包括:

  • 构建:您如何以及以多快的速度重新生成部分或全部交付内容?
  • 包装:该交付中有多少文件?
    如果您的内容包含太多文件,那么在任何远程环境中部署(即复制或 rsync)都不容易,这与其说是因为全局大小,不如说是因为所需的事务数量。
  • 发布:您将交付的内容存储在哪里以及如何将其链接到生成它的初始开发环境?

我认为如此大规模的交付不是为了在 VCS 中发布,而是存储在基于文件系统的存储库中,具有适当的名称(或 version.txt),以便能够识别其版本并将其链接回开发内容(在颠覆中存储和标记)。
Maven 就是这样一个 repo 的一个例子。

我还要指出,要交付的内容应包含有限数量的文件,这意味着:

  • 将大量相关文件压缩成一个压缩文件
  • 运行一个脚本,它不仅可以 rsynch,还可以解压缩这些文件
于 2009-04-01T10:28:35.017 回答
3

Subversion 使用xdelta处理二进制文件。

http://subversion.tigris.org/faq.html#binary-files

顺便提一句。相关问题:Subversion 在存储大量二进制文件方面有多好?

于 2009-04-01T10:29:32.787 回答
2

在进行更新时,Subversion 只发送差异,而不是整个文件。但是,文件的初始签出确实需要下载所有文件。这基本上意味着下载10GB。合并二进制文件也是一场噩梦,只要您在只有一个人可以提交而其他人是只更新文件的奴隶的主/从环境中工作,这将非常有效。否则你很可能会在一次又一次的冲突中结束。

是否不可能将 10GB 拆分到多个存储库中?他们真的需要作为一个整体进行版本控制吗?

于 2009-04-01T10:20:40.857 回答
2

简短的回答是肯定的。

我们将颠覆用于一个相对较大(40GB 结帐)的游戏开发项目。我会说它处理二进制文件出奇的好。缺点是现在您只能获得更改的文本信息,即:“更改纹理以适应更新的主角模型。” 但是,当您寻找性能问题并确保每个人都使用相同的二进制文件进行开发时,即使是这一点信息也可以为您节省开支。据我所知,修补需要完整的文件。

于 2009-04-01T22:06:19.007 回答
1

您可能想查看一些专用的资产管理系统,而不是试图将源版本控制系统猛烈地弯曲到您的需求中。我听说过的唯一一个(但没有经验也没有从属关系)是http://www.alienbrain.com/ - 它是 co$t$。

于 2009-04-01T10:55:18.730 回答