跨平台源控制?

时间:2009-07-02 13:38:03

标签: java .net visual-studio-2008 eclipse version-control

我们正在为.NET(使用VS 2008)和Java(使用eclipse)进行开发

目前,我们正在使用CVS,但是Visual Studio 2008的插件并不是很好,所以我正在寻找能够更好地支持VS 2008和Eclipse的东西。

我最初的想法是SVN,因为它非常接近CVS,但我有点想要使用像Mercurial这样的东西。我正在寻找一些易于使用的东西,并且对两个平台都有良好的插件支持。

10 个答案:

答案 0 :(得分:6)

我可以告诉你,Subversion for Eclipse和Visual Studio 2008(Visual Studio的AnkhSVN)确实有很好的插件。 如果您计划使用最新的subversion版本,则必须确保下载AnkhSVN的每日构建版本。 此外,还有一些工具(http://cvs2svn.tigris.org/)可以将您的数据从CSV迁移到SVN。

对于Mercurial oder Git - 我没有任何经验。

我认为SVN将为您提供最顺畅的转换 - 但它不会给您带来“大革命”(如果这就是您所追求的)

答案 1 :(得分:2)

我们是.NET,Java和Rails商店

我们使用Subversion多年,它是一个非常棒的系统,我们认为我们需要从SCM中获得所需的一切。大约9个月前,我们开始与Github.com一起玩,同时开发Rails应用程序(在Rails社区中不可避免)。

从那时起,我们完全使用私人回购转移到Github.com,用于我们的闭源商业软件开发。

Git让我们在几个月内没有破坏构建或破坏代码 - 这种情况曾经不时发生,并使我们在一天的工作中试图纠正这个问题。 Subversion没有为您提供Git工作方法的灵活性。如果您遇到麻烦(破解版本或热修复),Subversion将无法帮助您甚至对您不利。它的分支/合并机制非常难以使用,因为它不跟踪分支的起源。此外,当您合并回来时,您的更改历史记录会被修改,以便特定分支中团队的所有更改都归因于执行合并的用户。 Git也很闪电,因为你工作的整个仓库都是本地的,当你在偏远地区工作时,这是非常值得注意的。

也就是说,Subversion会花一两个星期才能精通,Git需要至少一个月,特别是如果你来自Subversion或CVS。如果你假装它只是一个更现代的SVN或CVS,你会因为你的编码工作流程缺乏改进而感到沮丧,你会被众多的命令所困扰。

我们有一个3分支设置:hotfix< - > master< - > development。在正常情况下,开发团队将在开发分支中工作。对于每个用户故事,开发人员将创建开发分支:开发< - >用户故事。当故事结束时,用户故事与开发合并,并且可以删除用户故事分支。这种情况一直持续下去,并且master保持稳定且不受影响,直到构建管理器决定将开发中的所有更改合并到master中是安全的。如果同时客户打电话并需要修补程序,那么这也是与主服务器隔离完成的,并且可以在将来的合适点合并到代码库的其余部分(主服务器和开发人员)中。

现在用于GUI和SCM。我们像瘟疫一样避免它们。 GUI不适合使用SCM。我知道 - 有争议,但听我说。命令行会比GUI更慢,当你使用SCM时,你很可能会对你的中央仓库做一些坏事或破坏性的事情,慢是一件好事。慢慢让你思考你的行为。我见过的所有典型的GUI(EclipseSVN,TortoiseGit / SVN)都预先选择了您最近的更改,作为您即将提交的提交的一部分,无论这些更改是否已准备好提交。坏!!!!您需要考虑您的提交以及它们需要的块状或粒度 - 在这方面,命令行比GUI更好。 我们所有的.NET编码器,通常都是通过GUI执行任务,使用命令行Git并在此之前使用命令行SVN,只是出于上述原因。它给了他们更大的控制感。

答案 2 :(得分:1)

答案 3 :(得分:1)

在Eclipse和Visual Studio中使用了svn后,我发现eclipse插件(特别是subversive)通常更加无缝地集成到IDE中。 Ankh和VisualSVN都做得非常好,但在使用.net时,我倾向于选择ToirtoiseSVN。在Eclipse中,我几乎从不求助于ToirtoiseSVN。

说实话,我认为IDE插件不应该过多地推动你的决定。

答案 4 :(得分:0)

我们在不同的项目中对J2EE和.NET使用VSS(现在是subversion)。两者似乎都运作正常。

为什么你如此挂在IDE pulgins上?就个人而言,我可以采取行动或者离开...我把它们放在“没有增加任何实际价值的kitch”桶中。

干杯。基思。

答案 5 :(得分:0)

如果您决定使用SVN,AnkhSVNVisualSVN之间仍存在争论。

就个人而言,我喜欢Ankh。它对我来说是免费的,更直观的,并且对我的项目状态提供了更有用的反馈。不过,我遇到了一些腐败问题,但没有什么能让我花费超过几分钟。

答案 6 :(得分:0)

我使用Vault中的SourceGear。它使用简单,并且与Visual Studio和Eclipse具有出色的IDE集成。它也在使用Mono的Linux上进行了全面测试。

对于单个用户可以免费使用,因此您可以在购买前试用。

检查出来,看看你的想法。 http://www.sourcegear.com/vault/

答案 7 :(得分:0)

尝试使用适用于Linux,Mac和Windows的Plastic SCM。基于GUI的复制,分支资源管理器,高效的分支和合并(包括合并跟踪,移动和重命名),基于ACL的安全性......

答案 8 :(得分:0)

就个人而言,我喜欢Perforce。不是免费的,而是跨平台的,非常好。

答案 9 :(得分:0)

我不是这方面的专家,但我对GUI或IDE SCM扩展感到非常不满。我一直在使用SVN,GIT与sourceforge上托管的项目相当不错。我的2美分价值。干杯!