1

(这是我的第一篇文章,所以要温柔)我正在使用颠覆作为大型二进制文件的版本控制。我每小时更新大约 2.5 个二进制文件。我每天得到大约 400 兆欧的不同食物。其中一些文件是 PE,但主要是压缩文件,很难获得良好的差异。我客户上的“.svn”文件夹每天都在增长,我的客户没有空间来增加。

这个大小是由客户端上的 subversions 原始副本引起的(存储库非常小)。像 GIT 或 Mercurial 这样的分布式版本控制将在我没有空间的客户端上存储各种存储库。我永远不会真正做差异,只是更新头部或给定版本。所以客户端原始副本的速度优势对我来说没有任何区别。

所以我打算使用 CVS,因为它是;

  1. 成熟

  2. 客户端灯(没有原始副本,对我来说非常重要)

  3. 它是一个基于服务器的架构

  4. 开源,我很穷。

我应该使用什么完全不同的东西,备份解决方案等?除了 CVS 之外,是否还有其他版本控制可以满足这些要求?

4

4 回答 4

1

带有大文件的 Mercurial 类似于带有助手的 git-annex。 http://kiln.stackexchange.com/questions/4846/how-do-i-use-the-mercurial-largefiles-extension 它被恰当地标记为“最后手段”,因为它破坏了 DVCS 中的 D(就像 git -附件),但这就是您要的。它工作正常,并得到 Fog Creek 的支持(人们将这个网站带到一阶近似值)。

我在 CVS goulag 工作了 10 年。我尊重你的考虑,但你不想去那里。第一次有人在提交期间按下 ctrl-C 并使您的 repo 处于半提交状态,并且您正在挑选,v文件试图撤消您想要踢自己的损害。第一次有人想要 UTF-8 内容而不记得在文件名中执行-kb或放置 UTF-8 或 (IIRC) 尝试在文件名中放置空格时,你会诅咒 CVS。

于 2013-05-27T13:49:08.293 回答
1

据我所知,CVS 不做二进制差异,但会为每个版本存储每个二进制文件。如果那个(磁盘空间)是一个问题,CVS 不是适合您预期用途的 VCS。

于 2013-05-27T14:39:11.213 回答
0

你可能想看看git-annex。它使用 Git 通过提交和分支来组织有关文件的信息,但实际文件内容不存储在 Git 存储库中,这使您可以控制文件使用的空间。它特别适合以分布式方式管理大型文件的集合。

git-annex助手在git-annex.

于 2013-05-27T12:57:55.323 回答
0

一个问题有点没有实际意义,因为尚不清楚客户端是否必须能够获取文件的任意历史版本。因此,我将提供一组可能符合也可能不符合您要求的选项;希望这至少能够为您提供一些提示……

所以我们开始:

  • git-annex作为一种解决方案,它允许使用 Git 管理一组大文件,而无需将它们实际保存在客户端上。
  • Sparkleshare是一个“非专有 Dropbox”。
  • Plainrsync可用于高效地将数据拉到您的客户端。
  • rdiff-backup可以用作前者的变体:虽然通常以这种方式rsync工作,但它能够保持任意数量的“增量”表示正在同步的目录的过去状态,因此任何此类状态都可能被提取/回滚到。旧的增量可能会被随意清除。

    这可能与rsync:rdiff-backup在服务器上使用相结合,并且由它管理的实际副本通过rsync. 如果需要回滚,则在服务器上恢复另一个版本,然后客户端使用rsync.

  • bittorrent 服务器和客户端:此协议使用块传输其文件,因此如果对二进制文件的更改有些本地化,这可能会正常工作。
于 2013-05-27T12:59:11.853 回答