Git/rsync 混合,适用于具有大型二进制文件和文本文件的项目



有没有人知道一个项目可以有效地将基于文本的文件的 git 版本控制和像 rsync 这样的东西结合起来,用于大型二进制文件(如数据)? 显然,这有点超出了 DVCS 应该做的事情,但我很好奇是否有人围绕 git 编写了一个智能包装器来做这样的事情来与中央存储库同步。

你可能喜欢 git-annex。从其主页:

git-annex允许使用git管理文件,而无需检查文件 内容放入 git 中。虽然这似乎自相矛盾,但在以下情况下很有用 处理比 Git 目前可以轻松处理的文件, 无论是由于内存、时间还是磁盘空间的限制。

即使没有文件内容跟踪,也能够使用 git,移动文件并删除具有版本化目录的文件 树,使用分支和分布式克隆,都非常方便 使用 Git 的原因。附件可以共存于同一个 git 中 具有定期版本控制的文件的存储库,方便 维护与附件相关的文档、生成文件等 文件,但受益于完全修订控制。

我看到的最后一个叫做bup

BUP 是一个备份程序。它是"备份"的缩写。

与其他备份软件相比,BUP 具有一些优势:

  • 它使用滚动校验和算法(类似于 rsync)将大文件拆分为块。这样做最有用的结果是,您可以增量备份巨大的虚拟机 (VM) 磁盘映像、数据库和 XML 文件,即使它们通常都在一个大文件中,并且不会为多个版本使用大量磁盘空间。
  • 它使用来自git(开源版本控制系统)的packfile格式,因此即使您不喜欢bup的用户界面,也可以访问存储的数据。
  • 与 git 不同,它直接写入 packfile(而不是单独的垃圾收集/重新打包阶段),因此即使无端有大量数据,它的速度也很快。 BUP 改进的索引格式还允许您跟踪比 Git 多得多的文件名(数百万个),并跟踪更多的对象(数百或数千 GB)。
  • 数据在增量备份之间"自动"共享,而不必知道哪个备份基于哪个备份 - 即使备份是从两台甚至彼此不知道的不同计算机进行的。您只需告诉bup备份内容,它只会节省所需的最少数据量。

最新更新