TortoiseHg / Mercurial <=> TortoiseGit <=> TortoiseSvn / Subversion的快速比较

Mic*_*ter 3 git tortoisesvn mercurial tortoisehg tortoisegit

以下三个免费的版本管理工具之间有什么区别?对于2-5人的小型项目,哪一个是最好的?您会考虑什么标准?

  • TortoiseSVN /颠覆
  • 乌龟汞/水银
  • TortoiseGit / Git

我知道可以使用命令行实现更多功能-但是在这个问题中,我只想考虑可以使用不使用命令行提供的前端功能/ TortoiseXXX即可访问的功能。
这就是为什么我不认为该问题与Git,Mercurial,SVN重复的原因

Mic*_*ter 7

在过去的几年中,我使用了所有三个版本管理系统(TortoiseSVN,TortoiseHg,TortoiseGit)并进行了全面测试。这是我的结论:

SVN / Subversion(TortoiseSVN)

好处:

  • 仅签出完整存储库的一部分/子文件夹的可能性
  • 修订注释和修订用户名可以在以后更改,而不会更改/影响任何校验和或修订标识号。
  • 可以签入空文件夹(结构)

缺点:

  • 没有分布式版本管理系统(您始终需要连接到服务器存储库)
  • 上次签入的修订不能更改/修改/回滚


TortoiseHG /水银

好处:

  • 分布式版本管理系统
  • 文件重命名可以手动定义,也可以自动检测(在特殊对话框=>算法中:文件内容的相似性检查)
  • 在TortoiseHg-Workbench中,显示所有修订树(与Git相反)
  • 有可用的修订号和修订校验和(“哈希”)(对于人来说,比在Git中更容易定向)!
  • 最新版本仍在Windows XP中运行
  • 在从另一个仓库回购或推送到另一个仓库之前,可以检查受影响的修订版本(并在必要时中止操作)
  • 搁板是一项巧妙的功能,可以临时保存多个(未修订)更改(以这种方式,在SVN和Git(“隐藏”)中均不可用)
  • 裸仓库和非裸仓库之间没有令人讨厌的区别(与Git相反)->即使在签出状态下,也可以将修订版本发送到合作伙伴仓库,因为仅会影响合作伙伴仓库的历史记录(与Git相反) )
  • TortoiseHg自动安装“工作台”
  • 可以使用扩展名“ mq”轻松更改历史记录-错误的签入或分支不必永远留在存储库中,但可以删除-但要小心:这将导致不同的校验和,并因此导致新的分支克隆存储库...

缺点:

  • 无法检出并将单个文件夹提交到存储库中(如果您有一个较大的存储库,并且只想保留其中的一小部分)
  • 无法签入空文件夹/文件夹结构


TortoiseGit / Git

好处:

  • 分布式版本管理系统
  • 可以更改/重建历史记录(可以删除/更改单个修订)
  • 可以导入SVN存储库
  • 可以将单个分支发送到另一个Bare-Repo(或从另一个Repo导入)=>“ Heads”中的思维方式

缺点:

  • 文件/文件夹的重命名不受影响!此类信息未存储在存储库中,并且每次查看存储库时都会重新检测到。有时,算法最终会导致错误的结果。
  • 在从合作伙伴仓库中提取更改之前,无法在导入之前检查导入的修订。比较两个存储库似乎只能以光学方式(!)
  • 发送修订只能在裸仓库中完成(在HG中,此问题不存在)
  • 没有“人类可读”的修订号-回购中只有SHA-1-Hash =>方向问题!
  • TortoiseGit默认情况下没有工作台(只能通过上下文菜单分别处理多个打开的窗口或通过终端进行处理)
  • 功能“隐藏”不像Mercurial / Hg中的功能“架子”那么强大和清晰
  • 重建存储库会在文件系统中留下数据残留-如果您不小心签入了一个大文件,您将无法取出文件并轻松缩小存储库!
  • 无法签入空文件夹/文件夹结构
  • 使用注释功能,文件中各个更改的颜色具有欺骗性!在较短的时间范围内进行的不同更改仅会略有不同!
  • 如果在修订版X和修订版X + 5中更改了文件,并且您查看了在修订版X + 5中进行了哪些更改,则比较工具将在标题中显示修订版X + 4和X + 5。最好是显示修订版X和X + 5!=>这样就不可能进行无间隙更改历史记录!
  • 修订注释可以在以后完成,但不会被推送/拉入合作伙伴存储库。所以他们可能最终会迷路:-(


结论

尽管我最初对TortoiseHg存有偏见,但我不得不勉强承认这是具有最大优势的系统。
就我自己而言,经过大约3年的比较,我决定使用TortoiseHg / Mercurial