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

时间:2018-08-01 09:35:25

标签: git mercurial tortoisesvn tortoisehg tortoisegit

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

  • TortoiseSVN / Subversion
  • 草龟汞/水银
  • TortoiseGit / Git

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

重复的原因

1 个答案:

答案 0 :(得分:3)

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

SVN / Subversion(TortoiseSVN)

优势:

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

缺点:

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


TortoiseHG / Mercurial

优势:

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

缺点:

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


TortoiseGit / Git

优势:

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

缺点:

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


结论

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