我只有几天的 Git 和 Mercurial 经验,而且我没有太多的编程经验。
在过去的几天里,我阅读了很多比较两者的帖子。根据我的阅读和测试,我得出以下结论:
Git 的重命名是 100% 自动的,但不是 100% 准确的。它依靠算法来猜测重命名。即使完全错误,最终用户也无法更改其决定。
我猜 Git 的方法可能适用于 99% 的情况,但那 1% 的情况会让人头疼。这让我对重构代码犹豫不决(同时更改类名和内容),因为如果重构太多,我可能会丢失文件历史记录。
Mercurial 可以 100% 自动和 100% 准确,只要我总是在 Visual Studio 中重命名/移动我的东西并安装了 VisualHG,VisualHG 应该准确并自动跟踪移动和重命名(目前 VisualHG 有一个错误 -文件未重命名时我在项目之间移动它)。如果它犯了错误,最终用户可以改变它的决定。
如果我没有 Visual Studio,我仍然可以使用 TortoiseHg 的“检测副本/重命名”窗口,我可以设置相似度百分比,让 Mercurial 自动检测重命名。如果它犯了错误,我有机会纠正它。
我的结论是对还是错?
参考: