用于.Net项目的VSS或SVN?

用于.Net项目的VSS或SVN?,.net,svn,version-control,visual-sourcesafe,project-planning,.net,Svn,Version Control,Visual Sourcesafe,Project Planning,在工作中,一位总经理让我研究将项目的当前源代码管理服务器(Visual source Safe)更改为SVN有什么好处 我真的不反对SVN,实际上我有点喜欢它,但在我的拙见中,对SVN的更改不会给项目带来任何显著的好处,并且会迫使我们使用一些第三方工具来管理Visual Studio中的源代码管理(我们只使用Microsoft工具进行开发) 因此,作为我研究的第一步,我想问你:从VSS切换到SVN有什么好处?SVN比VSS更受欢迎,而且有很多优点。VSS已经过时了 现在许多开发人员正

在工作中,一位总经理让我研究将项目的当前源代码管理服务器(Visual source Safe)更改为SVN有什么好处

我真的不反对SVN,实际上我有点喜欢它,但在我的拙见中,对SVN的更改不会给项目带来任何显著的好处,并且会迫使我们使用一些第三方工具来管理Visual Studio中的源代码管理(我们只使用Microsoft工具进行开发)


因此,作为我研究的第一步,我想问你:从VSS切换到SVN有什么好处?

SVN比VSS更受欢迎,而且有很多优点。VSS已经过时了

现在许多开发人员正在从VSS迁移到SVN。如果你在谷歌搜索“SVN”和“VSS”,它会显示很多与此相关的文章

  • VSS的lock-modify-unlock模型使快速变化的文件上的协作成为一个主要的难题。加上需要管理员解锁某人在度假时签出的文件的开销
  • 使用VSS,问题不在于是否会丢失数据,而在于何时。您的源代码存储库应该是一块石头——如果开发人员的工作站崩溃,您只应该丢失他的更改。您不应该丢失存储库中的随机文件和数据
  • VSS已超过6年未由MS维护。你还能得到支持吗
  • 根据备份工具的不同,如果只有一个人登录到服务器(这意味着他们的开发工具保持打开状态,或者VSS客户端保持运行),则可能无法获得VSS存储库的完整备份
  • VSS要求所有用户在文件系统级别(NTFS权限)几乎完全控制组成存储库的文件
  • VSS没有好的、可用的、易于使用的已发布API,第三方工具在大多数情况下都很薄弱
  • 合并很糟糕
  • VSS:如果开发人员分布在多个时区,如果他们以错误的顺序签入得太近,那么他们两个签入的行为都可能损坏数据库
现在,这并不是说颠覆是完美无缺的——当然有些事情它可以做得更好,有些事情它根本做不到。但是,所有使用VSS和SVN的人很可能永远不会回到VSS


如果您选择SVN。以下是您可能需要的工具列表:

  • 是Visual Studio的Subversion SourceControl提供程序
  • 是一款跨平台的Subversion客户端
  • 是一款适用于Microsoft Windows的易于使用的SCM/源代码管理软件,可能是最好的独立Subversion客户端
  • 是一个Visual Studio插件,它将Subversion和OrtoiseSVN与Visual Studio无缝集成
  • 是一个软件包,包含在Windows平台上为您的团队安装、配置和管理Subversion server所需的一切。它包括Subversion、Apache和一个管理控制台

这是一本关于这个主题的好书:C Pilato



VSS和SVN的另一个很好的替代方案是,除了源代码控制之外,它还有一个问题跟踪系统——集所有功能于一身。或-仅限源代码控制。还有解决办法。如果您需要Microsoft解决方案,请使用TFS而不是VSS。

避免源代码安全数据库崩溃带来的头痛问题—使用它来处理整个代码库是一件大事


不必担心谁签出了文件是另一回事。

我发现将文件与VSS合并非常麻烦,但与SVN合并非常好。而且,我没有任何证据证明这一点,但SVN似乎更快。

VSS已经过时了。数据库经常损坏。MS也构建TFS是有原因的

SVN非常流行(意味着大量的社区支持,意味着免费的支持),有许多工具与之挂钩(例如用于持续集成的CruiseControl),而且使用起来相当简单

如果你已经使用了VSS,你必须考虑有一个学习曲线,这是你在研究中必须权衡的问题。如果其他开发人员没有使用SVN(或CVS),那么成本可能会很高,尽管您只需要一个人真正了解系统,然后指导其他人


4年前,我们确实从VSS更改为SVN,此后我们再也没有回头看。

SourceGear Vault是VSS的绝佳替代品。它最初是“VSS功能,但使用的是真实的数据库”,并从那里发展而来。

顺便说一句,我们已经很高兴地使用Sourcegear Vault很多年了。拥有存储库和一个中央SQL Server数据库,以及通过Internet的强大访问能力,这使我们的组织如虎添翼


我认为它价格合理,至少值得一看。

几乎肯定是SVN。SVN采用不同的工作方式(复制-修改-合并而不是锁定-修改-解锁)。这是一个学习曲线,但这是几年来的事情,所以大多数开发人员将不得不在某个时候或其他任何时候学习它。“锁定-修改-解锁”是一个非常痛苦的问题,它实际上导致了严重的协作问题,如果您好奇的话,我很乐意解释一下

附议有关VSS有多糟糕的评论。以下是涵盖该主题的各种链接:

编辑:另请参见:

微软承认从未在其任何内部项目上使用过VSS(但目前无法找到参考:/)。我用了两年,结果很糟糕。数据库每周至少损坏一次

另外,我最喜欢向VSS用户引用的内容之一是页面上的第一句话,据报道来自Microsoft的某人:

"Visual SourceSafe?  It would be safer to print out all your code,
run it through a shredder, and set it on fire."