分布式源代码控制不适用于Visual Studio用户?

Dan*_*kas 8 svn git mercurial open-source visual-studio

我记得SVN历史上有2个事件:TortoiseSVN可用,VisualSVN可用.

第一个结果:"我们永远不会想要在命令行中使用SVN".第二个结果:"没有VisualSVN我们永远不会使用SVN和MSVS"

请理解这是正确的 - 如果我们需要使用Tortoise无法实现的东西,我们会使用SVN命令行,如果我们需要的东西不能从MSVS获得,我们会使用Tortoise.但除此之外(99.9%的时间),您所需要的只是在IDE中.

现在我明白并且喜欢分布式源代码控制的好处,但我根本无法在IDE中重命名文件并手动执行hg重命名以免丢失历史记录("删除+创建新"而不是"重命名"=没有历史记录).我也不认为责备或文件还原为无法直接在解决方案资源管理器中选择的文件上执行或打开进行编辑的操作.使用VisualSVN所有这些,以及更多,只是工作!

DSCM的概念优势很棒,但如果IDE无法提供日常使用的简单功能,那么这些功能并不好!

问题是:是否有一个带有插件的分布式源代码控制,它像VisualSVN一样顺利集成到MSVS中?Git Extensions和VisualHg目前还没有接近这一点,VisualSVN团队拒绝创建VisualGit:

" 只有当Git将其许可证从GPL更改为BSD/Apache风格以允许衍生商业工作时,我们才能考虑此选项. "

PS必须来自IDE:

  • 解决方案树中的文件状态.如果编辑了任何子项,则将父项即文件夹/项目/解决方案标记为已编辑.
  • 上下文更新,提交,历史记录,责备,还原为解决方案资源管理器/打开文件中的单击操作,并提供键盘快捷键!
  • 自动跟踪和处理文件重命名/拖放/新文件创建.
  • 在编辑文件中尚未提交的内容的指示符(黄线)在文件关闭并重新打开后不会消失.

不是很多吗?

更新:

1)昨天测试了HgSccPackage.它肯定有更多所需的功能可以从IDE,它们确实尊重当前上下文,即选择/打开文件等.不幸的是它的解决方案树状态目前是错误的,不支持文件夹状态.

2)在与VisualHG相同的回复中提到的Git源代码控制提供程序至少缺少两件事:

  • 由于某种原因,他们有很少的上下文行为(例如责备/注释是NA)
  • 它接缝它们都是基于MSVS源代码控制API(与VisualSVN不同),因此不提供解决方案文件夹状态(与HgSccPackage相同).

3)Charles Bailey指出,无论如何git处理重命名.是的,确实如此.这里不需要任何IDE支持(不确定mercurial).所以git MSVS支持只缺少良好的上下文,一键动作和正确的树状态支持(还有一条黄线,但是让我们说它非常好,但目前还不是必须的).

Dan*_*kas 0

我的回答是:不。

花了2周的时间研究和测试各种工具和插件。简历:在撰写本文时,还没有一个免费的分布式源代码控制可以像 SVN 和 VisualSVN 一样顺利地集成到 MSVS 中。

SVN 不是分布式的,VisualSVN 也不是免费的,这就是为什么我在寻找不同的东西。

两周的研究对我来说并不是一个小调查,这是我发布这个答案的唯一原因 - 希望它对其他“处于变革边缘”的人有用。

另请注意,我会审查所有问题及其答案 - 每当有人证明我错了,即当有合适的工具可用时,我将删除此答案,并将更好的答案标记为“答案”。


PS 未来是分布式版本控制系统。如果您今天必须选择一个 - 只需选择一个即可。无论如何,你不会错过太多。今天我可能会选择 Git。但这确实只是我一个人。