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

Quick comparison of TortoiseHg/Mercurial <=> TortoiseGit <=> TortoiseSvn/Subversion

以下三种免费的版本管理工具有什么区别? 哪个最适合 2-5 人的小型项目?您会考虑哪些标准?

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

重复的原因

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

TortoiseSVN/颠覆 (SVN)

优点:

  • 可以只签出完整存储库的 part/subfolder
  • 以后可以更改修订注释和修订用户名,无需 changing/influencing 任何校验和或修订标识号。
  • 可能 check-in 清空文件夹(结构)

缺点:

  • 没有分布式版本管理系统(你总是需要连接到 server-repo)
  • 最后的checked-in修订版无法更改/修改/回滚

TortoiseHG / Mercurial (HG)

优点:

  • 分布式版本管理系统
  • 文件重命名可以手动定义,也可以自动检测(在特殊对话框中 => 算法:文件内容的相似性检查)
  • 在TortoiseHg-Workbench中显示所有修订树(与Git相反)
  • 有可用的修订号和修订校验和(“哈希”)(比 Git 更容易定位!)
  • 最新版本仍在 Windows XP
  • 中运行
  • 在从另一个 Repo 拉取或推送到另一个 Repo 之前,可以查看受影响的修订(并在必要时中止操作)
  • Shelve 是一个巧妙的功能,可以临时保存几个(未修订的)更改(这样在 SVN 和 Git(“Stash”)中都不可用)
  • 裸仓库和 non-bare 仓库之间没有恼人的区别(与 Git 相比)-> 即使在 checked-out 状态下也可以向合作伙伴仓库发送修订,因为只有合作伙伴回购的历史受到影响(与Git相反)
  • TortoiseHg 自动安装“Workbench”
  • 可以使用扩展名“mq”轻松更改历史记录 - 错误的 check-ins 或分支不必永远留在回购中但可以删除 - 但要小心:这会导致不同的校验和,因此到克隆存储库中的新分支...
  • 学习曲线短
  • 安装简单,问题不多,占用硬盘不到100MBspace
  • 白痴安全 - 通过标准安装,销毁存储库并不容易

缺点:

  • 无法检出单个文件夹并将其提交到存储库中(如果您有一个大存储库并且只想拥有其中的一小部分)
  • 无法check-in清空文件夹/文件夹结构

乌龟Git / Git

优点:

  • Widespread(很多人用)
  • 分布式版本管理系统
  • 历史可以changed/rebuilt(单个修改可以deleted/changed)
  • SVN-Repositories可以导入
  • 可以将单个分支发送到另一个 Bare-Repo(或从另一个 Repo 导入)=>“头脑”中的思维方式

缺点:

  • files/folders 的重命名不会受到影响!这种类型的信息不存储在回购中,每次查看回购时都是 re-detected。有时算法会以错误的结果结束。
  • 在从合作伙伴存储库中提取更改之前,无法在提取之前查看导入的修订。两个回购协议的比较似乎只能以光学(!)方式进行
  • 只能将修改发送到 bare-repository(在 HG 中不存在此问题)
  • 没有“human-readable”修订号 - 只有 SHA-1-Hash => Repo 中的方向问题!!
  • TortoiseGit 默认没有 Workbench(只能通过上下文菜单分别多次打开 windows 或通过终端处理)
  • “Stash”功能不像Mercurial/Hg
  • 中的“Shelf”功能那么强大和清晰
  • 重建存储库会在文件系统中留下数据残留 - 如果您不小心 check-in 一个巨大的文件,您将无法取出它并轻松缩小您的存储库!
  • 无法check-in清空文件夹/文件夹结构
  • 使用注释功能,文件中个别更改的颜色具有欺骗性的危险!在很短的时间内完成的不同更改的颜色仅略有不同!!!
  • 如果文件在修订版 X 和修订版 X+5 中发生了更改,并且您查看在修订版 X+5 中进行了哪些更改,则比较工具将在标题中显示修订版 X+4 和 X+5 .最好显示修订版 X 和 X+5! => 以这种方式不可能实现无间隙的更改历史记录!
  • 修改意见可以事后做,但不会pushed/pulled成pa特纳回购。所以他们最终可能会迷路:-(
  • 您必须安装两个不同的软件包(Git + TortoiseGit)。它们一起消耗超过 600 MB 的硬盘空间
  • 很容易通过“错误的点击”破坏一个 Repo - 如果您想保持快乐,请保留足够的备份...
  • 相对困难的学习曲线 - 您需要更多时间来适应这些功能

结论

虽然一开始我对TortoiseHg有偏见,但不得不承认它是最有优势的系统。
对于我自己,经过大约 3 年的比较,我决定使用 TortoiseHg / Mercurial