1

我想使用 Git 或 SVN (Subversion) 之一作为备份系统。对我来说唯一重要的是系统的存储和性能。我四处搜索,发现的大多数结果都在比较它们与源代码控制相关的功能,例如分支、本地存储库等。但是,正如我所提到的,我不是在寻找这些功能。

简而言之,我想知道:

  • 哪个存储效率更高(占用空间更少)
  • 哪个更可靠(如果 push/committing 时发生崩溃,哪个更好地处理错误)
  • 哪个做事更快
  • 哪一个可以更好地处理大型存储库(如果提交的修订太多,性能会更好)
  • ...

如果在比较中添加一些事实(实验),我将不胜感激。我正在寻找确凿的证据。

4

4 回答 4

12

去吧git,没有竞争:

  • 它更安全(所有提交都是唯一散列的),
  • 它更紧凑(过去 5 年的整个Linux 内核历史在我的机器上占用不到 1 GB),
  • 它快得多了,甚至都不好笑,
  • 它很容易复制,因为它是分散的。

当然,使用 git 与 SVN 有很大不同。但是教程也很丰富。

是在几个选定场景中比较 git 和 svn 性能的链接。

于 2012-12-30T22:55:58.793 回答
4

用于rsync备份。

如果保留正在备份的文件的历史记录很重要,请使用rdiff-backup

Git 和 SVN 不是备份实用程序。


我知道您并不关心 SCM 工具的功能,这应该表明您不需要一个,但是(!),如果您使用像 Git 或 SVN 这样的 SCM 工具,您将必须处理实际的提交。

如果我唯一的目标是拥有一组文件的完整副本,我会认为这是一个巨大的痛苦。


速度而言,如果您与备份目的地的连接速度很快,rsync并且rdiff-backup将是最快的。Git 会花时间处理文件(压缩文件、构建对象等)。

如果您的连接速度较慢,Git 可能会更好,因为您将传输文件的压缩版本。您只需提前处理时间


如果安全是一个问题,请知道您可以使用类似ssh的东西作为rsync. 当然,这对于 Git 也是可能的。如果使用得当,我会认为这两种工具同样安全。

于 2012-12-30T22:51:13.120 回答
2

比较参见GitSvnComparison。此外,您可以使用 Mercurial。

于 2012-12-30T23:00:59.413 回答
2
  • 哪个存储效率更高(占用空间更少)

除非 repo 包含大量二进制项,否则具有相同内容的 Subversion 存储库和 Git 存储库的大小将相等。在这种情况下,Git 存储库可能比 SVN 存储库占用更多空间。

  • 哪个更可靠(如果 push/committing 时发生崩溃,哪个更好地处理错误)

我投票给 SVN 只是因为使用 Git 的客户端操作可能会破坏存储库或存储库历史。Subversion 永远不会发生这种情况。推送提交时的崩溃永远不会导致两个系统出现任何问题。

哪个做事更快

Git 更快,因为存储库始终是本地的。但是,通过网络克隆 repo 仍然需要一些时间。

在 Subversion 中,您不需要克隆整个存储库;您只需要检查工作区,在大多数情况下,它比克隆 Git 存储库花费的时间更少。

哪一个可以更好地处理大型存储库(如果提交的修订太多,性能会更好)

Subversion 比 Git 更适合大型项目和 repos。看

于 2016-01-08T11:54:15.410 回答