在工作中,一位负责人让我研究将我的项目的当前源代码控制服务器(Visual Source Safe)更改为 SVN 可能有什么好处。
我真的没有反对 SVN,其实我有点挖,但在我看来,改成 SVN 不会给项目带来任何显着的好处,并且会迫使我们使用一些第三方工具来管理来自 Visual Studio 的源代码控制(我们主要使用 Microsoft 工具进行开发)。
所以,作为我研究的第一步,我问你:从 VSS 切换到 SVN 有什么好处?
在工作中,一位负责人让我研究将我的项目的当前源代码控制服务器(Visual Source Safe)更改为 SVN 可能有什么好处。
我真的没有反对 SVN,其实我有点挖,但在我看来,改成 SVN 不会给项目带来任何显着的好处,并且会迫使我们使用一些第三方工具来管理来自 Visual Studio 的源代码控制(我们主要使用 Microsoft 工具进行开发)。
所以,作为我研究的第一步,我问你:从 VSS 切换到 SVN 有什么好处?
SVN 比 VSS 更受欢迎,并且有很多优点。VSS 是旧的和过时的。
现在许多开发人员正在从 VSS 迁移到 SVN。如果您在 Google 中搜索“SVN”和“VSS”,它会显示很多与VSS 到 SVN 迁移相关的文章。
现在,这并不是说 Subversion 是完美无缺的——它肯定有一些事情可以做得更好,而它根本没有做一些事情。但是所有使用 VSS 和 SVN 的人很可能永远不会回到 VSS。
如果你会选择SVN。以下是您可能需要的工具列表:
这是一本关于这个主题的好书:C Pilato 的带有 Subversion 的版本控制
VSS 和 SVN 的另一个很好的替代品是SourceGear Fortress,它除了源代码控制之外还具有问题跟踪系统 - 多合一。或SourceGear Vault - 仅限源代码控制。还有SourceAnyWhere解决方案。如果您需要 Microsoft 解决方案而不是使用 TFS 而不是 VSS。
微软承认从未在他们的任何内部项目中使用过 VSS(虽然现在找不到参考资料:/)。我用了两年,它是愚蠢的坏。数据库每周至少损坏一次。
此外,我最喜欢引用 VSS 用户的话之一是Eric Wadworth页面上的第一句话,据报道来自微软的某人:
"Visual SourceSafe? It would be safer to print out all your code, run it through a shredder, and set it on fire."
绝对选择SVN。VSS 就像 1000 个恶魔的噩梦。
我们在我工作的地方使用 SVN,并使用正确的文档、正确的客户端和工具,这很容易——到目前为止,它的使用非常可靠。在与 VSS 一起度过了过去 10 年之后,我可以说我一点也不怀念它。
我非常喜欢 SVN,我写了一篇关于我认为是最有价值的客户(有些不是)和其他工具的评论。这是一篇新文章,所以非常及时:http ://codertools.wordpress.com/2009/03/24/svn-subversion-clients-and-other-tools/
我会毫不犹豫地向任何人推荐 SVN - GIT 是我要查看的下一个列表。希望这会有所帮助。
避免 Source Safe 数据库崩溃带来的令人头疼的问题是占用您的整个代码库。
不必担心谁签出了文件是另一回事。
我发现用 VSS 合并文件非常麻烦,但用 SVN 就很好。另外,我没有任何证据,但 SVN 似乎更快。
VSS 是旧的和过时的。数据库经常损坏。MS 也构建 TFS 是有原因的。
SVN 非常流行(意味着大量的社区支持,意味着免费支持),有许多与之挂钩的工具(例如用于持续集成的 CruiseControl)并且使用起来相当简单。
如果您已经在使用 VSS,则必须考虑有一个学习曲线,这是您在研究中必须权衡的事情。如果其他开发人员没有使用过 SVN(或 CVS),那么它的成本可能会很高,尽管您所需要的只是一个真正了解系统的人,然后指导其余的人。
4 年前我们确实从 VSS 更改为 SVN,从那以后我们就再也没有回头。
顺便说一句,我们多年来一直非常愉快地使用 Sourcegear Vault。拥有存储库和中央 SQL Server 数据库以及通过 Internet 进行的良好访问使其成为我们组织的灌篮高手。
我认为它的价格合理,至少值得一看。
AnkhSVN 2.0真的很不错。
如果您将 Visual Studio 集成作为一项要求,我什至会在一年前就对 SVN 发出警告,但这已经发生了很大的变化。它仍然不如 VS Team System,但它比旧的基于 MSSCCI 的 VSS 集成要好得多。没有理由不将 SVN 与 .NET 一起使用。
另一个“绝对是 SVN”投票在这里。在之前的工作中,我是迁移团队的一员。我无法告诉你摆脱 VSS 有多好。
我可以继续,但VSS镣铐的记忆太痛苦了。拒绝吧。
SourceGear Vault 是 VSS 的绝佳替代品。它开始是“VSS 功能但使用真实数据库”,并从那里发展而来。
几乎肯定是SVN。SVN 采用不同的工作方式(复制-修改-合并而不是锁定-修改-解锁)。这是一条学习曲线,但这是几年来一直如此,所以大多数开发人员无论如何都必须在某个时间或其他时间学习它。Lock-Modify-Unlock 太痛苦了,它实际上会导致严重的协作问题,如果您好奇,我很乐意解释。
附议关于 VSS 有多糟糕的评论。以下是涵盖该主题的各种链接:
http://www.codinghorror.com/blog/archives/000660.html
http://www.developsense.com/testing/VSSDefects.html
http://wadhome.org/svn_vs_vss.html
编辑:另请参阅: 源代码控制 - 锁定与合并?
作为一个经历过 VSS -> SVN 转换过程的大型代码库的人,我想说最大的好处是能够安然入睡,因为知道您的 SCM 系统不会突然出现损坏数据库并且您必须返回的问题到昨天的备份。你每天都备份你的数据库,对吧?
使用 VSS,每个月至少会发生一次损坏。使用 SVN(相同的硬件和操作系统)——两年多一次。
哦,分支/合并功能很不错!
当然,出于上述所有原因,请使用 SVN。你可以试试ankhsvn,它是 Visual Studio 的 svn 插件。这样您就可以两全其美:使用 SVN 并且所有工作仍然在 Visual Studio 中完成。
只是对 Koista Navin 答案的补充。
他说:这是一本关于这个主题的好书:C Pilato 的带有 Subversion 的版本控制
有一个免费的在线版本:
Team Foundation Server 是在 .NET 世界中进行开发的最佳选择。然而,它不是免费的,而且对于当前版本 2008,它可能非常昂贵。如果你有更高级别的 Visual Studio 包,你可以免费获得 TFS 工作组版,它允许 5 个用户访问,无需额外费用。
工作组版本有一些主要的警告,您必须使用 TFS 服务帐户的 5 个插槽之一,除非您将其设置为在将包含在 TFS 成员列表中的用户帐户下运行。另一个是一旦你达到了 5 个用户的限制,跳到 6 个用户是一个相当惊人的成本,因为当前的许可证要求包括需要为团队的每个成员购买服务器(几千美元)和 CAL。为团队增加一名成员,这是相当高的成本。
但是,Microsoft 已经意识到这一点,并将在 2010 年改变这一点。您将不再需要购买服务器本身,而只需要购买 CAL。TFS 2010 服务器许可:它包含在 MSDN 订阅中