我已经为同一个雇主编程了10多年,我们曾经使用的源代码控制只有VSS.(对不起 - 这就是他们开始时所拥有的).我们中只有少数人; 现在两个,我们通常独自工作,所以VSS对我们有效.所以,我有两个问题:1)我们应该切换到其他东西,比如subversion,git,TFS等究竟是什么,为什么(请)?2)我是否超越了所有的希望并注定永远的诅咒,因为VSS腐蚀了我(正如杰夫所说)?
哇 - 感谢所有伟大的回应!
听起来我应该澄清一些事情.我们是一家MS商店(Gold parntner),我们主要做VB,ASP.NET,SQL Server,sharepoint和Biztalk工作.我有CS学位,所以我在DEC unix和Slackware Linux上完成了x86汇编C,C++的"时间不在乎"......
我对VSS的关注是,现在我正在更多地工作VPN和VSS的性能sux而且我担心我们的10+ y/o版本5 VSS数据库将被解雇......有LAN服务是本来应该加快速度,但我从未使用它,我不确定它有助于腐败 - 有没有人使用过VSS局域网服务?(VSS 2005新增功能)
如果我是你,我可能会选择Subversion.在这一点上我是Git的狂热分子,但是Subversion肯定有一些优势:
简单
丰富的可互操作工具
积极和支持的社区
手提
有很好的Windows shell集成
与视觉工作室整合(我认为 - 但肯定是通过第三方)
Git有许多其他优点,但上面提到的是人们在询问上述一般问题时所关心的问题.
编辑:我现在工作的公司是使用免费的VisualSVN服务器.它使得在Windows服务器上设置Subversion存储库变得简单,在客户端上我们使用TortoiseSVN(用于shell集成)和AnkhSVN用于Visual Studio支持.它非常好,即使是VSS用户也应该相当容易.
后期编辑:所以....近八年后,我绝不会出于任何原因向任何人推荐Subversion.我真的不放弃信仰,本身,因为我认为我的建议当时有效.然而,在2016年,Subversion几乎没有保留过Git的优势.Git的工具优于(并且更加多样化)它曾经是什么,特别是GitHub和其他优秀的Git托管服务提供商(BitBucket,Beanstalk,Visual Studio Online,就在我的脑海中).Visual Studio现在已经开箱即用了Git支持,实际上非常不错.甚至还有PowerShell模块可以为控制台的居民提供更原生的Windows体验.Git比Subversion更容易设置和使用,并且不需要服务器组件.Git已经变得像任何单一工具一样无处不在,你真的只会欺骗自己不使用它(除非你真的想要使用不是Git的东西).唐"
看起来SubVersion就是胜利者.我帮自己一个忙,并使用VisualSVN Server.它是免费的,可以为您节省大量的安装麻烦.
如果你习惯了VSS的工作方式,请查看(没有双关语)Sourcegear的保险库.这是远离VSS的一种很好的方式,因为它集成了IDE集成并支持签出/签入,但是当你准备好并感到舒服时,你也可以转到SVN中的编辑更新提交样式.
它对于单个开发人员是免费的,在IIS上运行并且构建在.net上,因此它应该是一个相当熟悉的堆栈供您切换.
无论你做什么,都不要为了改变而改变.
如果它对你起作用并且你没有遇到问题,我认为没有任何理由可以改变.
对于它的价值,Perforce是一个潜在的选择,如果你真的坚持1或2个用户.目前的perforce docs表示,您有2个用户和5个客户,而无需开始购买许可证.
您可能有理由根据您的工作流程切换到perforce,如果您需要按照perforce的方式进行分支.对于这里提到的其他产品并不过分熟悉,我无法告诉你perforce在功能部门中如何比较分支等等.
它速度很快,而且对于我们来说非常坚固(300多名开发人员拥有10年以上的代码库).我们存储了几个T信息并且响应非常快.对于少量用户,我怀疑假设您的服务器具有良好的硬件,您将遇到许多性能问题.
之前使用过VSS,我相信你可以从更好的SCM系统中获得很多好处,无论你是否有腐败,都应该考虑转换.单独分支对您来说可能是值得的.真正的客户端/服务器模型,更好的接口(编程和命令行)是一些其他的东西,可以真正帮助改善您的工作流程,并在一定程度上提高生产力.
总之,我对Perforce的看法是:
它快速而且非常可靠
大量的跨平台客户端工具(windows,unix,mac等)
它可供2位用户和5位客户免费使用
集成到开发人员工作室(和其他工具)
有一个强大的分支系统(可能或可能不适合你).
有几个可编写脚本的接口(python,perl,ruby,C++)
肯定是YMMV - 我只提供这种替代方案,可能值得研究.
我最近开始使用Mercurial进行一些工作.它是一个像Git这样的分布式系统,但似乎更容易使用,而且在Windows上支持得更好,后者对我来说至关重要.
通过分布式源代码控制,每个用户都拥有存储库的完整本地副本.如果你是唯一一个从事项目工作的人,就像你经常说的那样,这可以简化很多事情,因为你只需创建自己的存储库并在本地完成所有提交等.如果您想稍后引入其他开发人员,您可以将存储库的全部内容(当前版本和所有历史记录)推送到另一个系统,可以是共享服务器,也可以是另一个用户的工作站.
如果您只使用本地存储库,请记住您还需要一个备份解决方案,因为共享服务器上没有所有代码的副本.
我认为Mercurial比Subversion还有很多其他的优势,但它确实有一个很大的缺点,已经被提到作为Subversion的一个加分点:有很多第三方工具和Subversion的集成.由于Mercurial几乎没有出现过,因此选择要少得多.在Windows上,您似乎必须使用命令行(我的选择)或TortoiseHg Windows资源管理器集成.
VSS太可怕了.我可能正在引导Spolsky(不确定他是否说过这个),但使用VSS实际上比根本不使用源代码控制更糟糕.尽管它的名字,它是不安全的.它在不提供安全的情况下创造了安全的幻觉.
如果没有VSS,您可能会定期备份代码.有了VSS,你会想,"嗯,它已经处于源代码控制之下.为什么还要备份呢?" 很棒,直到它破坏了整个代码库,你就会失去一切.(顺便说一下,这件事发生在我工作过的公司.)
尽快摆脱VSS并切换到真正的源代码控制解决方案.