IDE内部或外部的SCM?

时间:2008-10-24 17:03:58

标签: version-control

我个人总是在我的SCM工作中使用某种类型的外部应用程序;这些天,这意味着Windows上的tortoiseSVN和Mac上的versions.app。但是,我一直在与开发人员(即eclipse用户)竞争,他们认为SCM在IDE本身中做得更好。我还没有听到任何支持这个工作流程的真正令人信服的论据,我个人喜欢IDE和SCM操作之间的一定程度的“分离”。在Visual Studio中使用不稳定的SVN插件,以及在离线工作的几年中Xcode中的次标准SVN支持已经烧毁了我。

在您看来,哪种方式可以促进更好的工作流程?

7 个答案:

答案 0 :(得分:4)

对于基本操作 - 签入签出我喜欢它在IDE中,对于任何更高级的东西,(分支/合并)我更喜欢使用外部工具。

在这种情况下,外部工具似乎可以提供更好的控制/选项。直接在IDE中工作时,您的选择似乎有限或根本不存在。

答案 1 :(得分:2)

我绝对喜欢在外面。话虽这么说,我的主要IDE是Visual Studio,我没有使用eclipse或intellij(虽然我在emacs中使用了cvs-mode ...),所以你的里程可能会有所不同......

  • 进行更改和提交更改是一项单独的任务 - 让它们在IDE中易于使用意味着您无法在完成一组更改和提交更改之间进行清晰描述。通常它是类型类型的一种情况,编译,测试,测试,提交...'哦,等等 - 我也忘了去了酒吧。从IDE模式到SCM模式的上下文切换往往会在提交之前触发“哦,等待”。

  • 将提交的相关文件保存在一起 - 提交源更改非常容易,然后记住相关的SQL脚本并单独提交,然后在忘记这些时添加新的图像文件,因为它们是新的存储库等等。

  • 与上述类似,在IDE中,在存储库中的错误级别/目录上提交事物往往容易得多。 (例如,我应该在解决方案级别,而不是项目级别)

  • 通常更容易在IDE外部的存储库中获得工作区的完全差异,这通常是值得的。

  • 它也可能使您的IDE更快一点

我也同意上一张海报 - 所有非平凡的SCM任务在开发IDE集成之外往往更容易。

说实话,只要你避免上述凌乱的犯罪情况,做任何你觉得最舒服的事情。在工作流程方面 - 分离必须“更清洁”,这种清洁度是否超过了旁观者眼中的便利 - 我们在很大程度上对我们的个人经历作出反应(我怀疑我的与你的相似)。

无论你做什么,使用anything but SourceSafe...我现在必须使用遗留代码 - 我发现令人憎恶的是,文件是只读的,并且SCM集成在物理上改变了文件的内容......

答案 2 :(得分:2)

进行集成的一个优点是重构。如果我用Java重命名一个类(以及文件名),你的SCM集成将自动处理重命名操作(例如删除然后添加svn)。

能够说“向我展示此文件的历史记录”或者在您使用它时的任何内容也非常方便,而无需转到Windows资源管理器或命令行或其他任何内容。

但我希望能够真诚地提供这两种产品。

答案 3 :(得分:1)

我几乎总是使用外部工具。唯一的例外是当我需要重命名源文件时。 IDE可以更容易地同时更新其项目引用。

答案 4 :(得分:0)

这在很大程度上取决于IDE / SCM的组合。我目前正在使用带有SVN的IntelliJ,并发现IntelliJ的SVN插件通常比Tortoise更令人愉快。并不是说我对Tortoise有任何特别的抱怨 - IntelliJ只是更好。

答案 5 :(得分:0)

无需IDE即可构建,因此无需IDE即可实现SCM。

另一方面,让IDE支持SCM可以很方便。很高兴能够轻松地检查文件历史记录并将其还原。

答案 6 :(得分:0)

我喜欢内部SCM。

  • 重命名文件,而不必在IDE SCM工具中重命名
  • 将文件添加到项目中 - 见上文

我发现使用内部SCM时,开发人员不常忘记将新文件添加到SCM系统。

对于任何复杂的操作,例如合并,分支等我倾向于使用外部SCM GUI或命令行。