到目前为止,我一直在我的开发机器上使用TortoiseSVN,我发现有一些缺点。我使用Total Commander作为文件管理器,我发现自己经常删除或移动工作区内的文件夹。因为我使用Total Commander调用的标准文件系统操作,而不是TortoiseSVN提供的操作,这经常会破坏工作空间,我无法提交到存储库。
是否有任何免费替代方案,它安装驱动程序/服务来监视文件系统操作,以便它可以正确记录这些操作,从而不破坏工作区?或者,是否有源控制软件完全没有这些缺点?
Handling renames: svn vs. git vs. mercurial
Renaming in Git and Mercurial: Accuracy and automaticity
Git处理完全自动重命名,Mercurial能够使用显式命令自动发现重命名,SVN根本不处理重命名。
另一个相对重要的区别是,如果由于任何原因Mercurial没有检测到文件重命名,它无论如何都会将文件存储在存储库中,从而复制内容。无论是否检测到文件重命名,Git都不会复制内容。
Mercurial的自动重命名处理
以下是两个扩展,允许为Mercurial添加类似Git的自动重命名处理:
https://bitbucket.org/jammycakes/autorename/downloads
https://bitbucket.org/cbarrett/guess-renames/downloads(source)
What is the Difference Between Mercurial and Git?
Git vs. Mercurial: Please Relax
The Differences Between Mercurial and Git
Google Analysis of Git and Mercurial
Git, Hg or Bzr — Which to recommend to a new user?
SCM choice for a new user?
Git, Mercurial and Bazaar – A Comparison
Git and Mercurial - Compare and Contrast
Distributed Version Control Systems(有趣的特征比较,虽然很旧)
Hg Init: a Mercurial tutorial
Video tutorial
除了已经提到的Git Extenesions之外,Git Source Control Provider对于Git来说是非常有用的Visual Studio扩展。 TortoiseGit是Git Extensions的替代品,但根据我的测试,Git Extensions更加用户友好,具有整洁的用户界面。在Git Extensions中使用子模块也要好得多。
答案 0 :(得分:4)
答案 1 :(得分:1)
git会自动检测已移动的文件。但是,还有许多其他原因需要将git改为SVN - 首先,git是一个分布式版本控制系统,它比SVN等集中式系统带来许多好处。例如,您可以在本地提交,而无需立即将更改上传到中央存储库(这意味着您可以更频繁地提交(因此运行较小的风险),因为您不需要在100%之前运行100%的工作你提交它,并与分支机构合作是一件轻而易举的事。在缺点方面,学习曲线比许多其他源控制系统更陡峭,并且从SVN来的时候习惯git可能需要一段时间。
如果您想在Windows上试用git,我建议gitextensions。