一个人表演(一个人的大军?)的替代VSS的方法
我已经为同一雇主编程了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的性能很出色,而且恐怕我们10+ y / o版本5 VSS数据库会被淘汰...
有些LAN服务本来可以加快速度,但是我从未使用过它,而且我不确定是否有人使用VSS LAN服务会有助于腐败? (VSS 2005的新增功能)
解决方案
回答
如果我是你,我可能会选择Subversion。在这一点上,我对Git完全是狂热的,但是Subversion无疑具有一些优势:
- 简单
- 大量可互操作的工具
- 积极支持社区
- 便携的
- 具有非常好的Windows Shell集成
- 与Visual Studio集成(我认为-当然可以通过第三方)
Git具有许多其他优点,但是当人们问上述类似的一般问题时,以上往往是人们关心的问题。
编辑:我现在工作的公司正在使用VisualSVN服务器,这是免费的。它使在Windows服务器愚蠢的服务器上建立Subversion存储库变得简单,而在客户端上,我们使用TortoiseSVN(用于外壳程序集成)和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,而是我意识到它是另一个时代的工具,就像剃刀一样。
回答
我会说坚持适合方式。除非我们在VSS上遇到问题,否则为什么要切换? Subversion蓬勃发展,尽管开始使用它有些棘手。 TFS远远优于VSS,尽管对于这样一个规模较小的团队而言,它相当昂贵。我还没有使用过git,所以我无法真正使用它。
回答
我喜欢在个人项目中使用Subversion。我可以列出功能列表,并假装它为其他源代码管理系统带来了很多其他功能,但是有很多不错的功能,正确的选择实际上是样式问题。如果我们在每次较小的更改后签入(即每个功能更改一个签入),那么除了VSS之外,几乎所有人都可以使用同一个源文件进行合并冲突,而合并冲突的风险非常低(我多年来没有使用VSS,但是从我记得一次只有一个人可以处理一个文件。)如果这永远不会发生在我们身上,我觉得最好的做法是使用我们所知道的。 VSS总比没有源代码控制要好,但是这些天对我来说却很局限。
我不认为你没有希望,因为你在问切换是否会更好。当答案很明显而我们忽略了证据时,我们就无望了。
即使我们不更改源代码控制系统,也应该选择一个像SVN或者git这样的代码,并花几个星期阅读有关它的信息并使用它进行一个小项目;它总是有助于使锯锐化。
回答
无论我们做什么,都不要为了改变而改变。
如果它对我们有用,并且我们没有任何问题,我认为没有任何理由进行切换。
回答
如果我们习惯了VSS的工作方式,请查看Sourcegear的Vault(无双关语)。这是从IDE集成迁移到VSS并支持签入/签入的绝佳方法,但是当我们准备就绪并感到自在时,也可以转到SVN中的编程的edit update commit样式。
它对于单个开发人员是免费的,可以在IIS上运行,并且基于.net构建,因此对于我们来说,它应该是一个相当熟悉的堆栈。
回答
我使用了vss多年,直到大约两年前改用svn。我对vss的最大抱怨是糟糕的网络性能(该问题现在可以解决)和文件的悲观锁定。 svn解决了这两个问题,易于设置(我使用collabnet服务器和tortoisesvn客户端,尽管有两个不错的Visual Studio插件:visualsvn commercial和ankhsvn open source),易于使用和管理,并有据可查。
很想说"如果没有损坏,那就不要修复它",但是我们将学习到更现代的源代码控制工具,也许更重要的是,使用新的源代码控制方法(例如,更频繁的分支和合并),新工具将支持。
回答
不必担心VSS会损坏我们,而不必担心VSS会损坏数据。它在该部门中没有良好的记录。
如果不切换到其他版本控制系统,请经常备份。即使使用其他SCM,也应该每天进行备份,但这对于VSS来说至关重要。
回答
看起来SubVersion是这里的赢家。我会帮自己一个忙,并使用VisualSVN Server。它是免费的,将为我们省去许多安装麻烦。
回答
如果我们只有2个人,并且大多数人都独立工作,那么git将为我们提供更多的灵活性,强大的功能,并且是最快的合作伙伴。
然而,使用背面会很痛苦。如果使用C做Win32 API,显然使用VSS可以为Windows编程,那么git将是一个学习曲线,但会很有趣。
但是,如果知识仅扩展到ASP和Visual Basic,则只需使用subversion。跑步之前,请先走路。
**我不是要说如果我们只知道VB就是愚蠢的或者类似的东西,但是git可能会非常挑剔和挑剔(如果我们在C中使用WinAPI,则完全了解picky和挑剔),我们可能需要比git提供的SCM更加逐步的介绍
回答
我最近开始将Mercurial用于某些工作。它是像Git这样的分布式系统,但似乎更易于使用,并且在Windows上似乎更好地受到支持,后者对我来说至关重要。
使用分布式源代码控制,每个用户都拥有存储库的完整本地副本。正如我们经常说的那样,如果我们是唯一从事项目工作的人,那么这可以简化很多事情,因为我们只需创建自己的存储库并在本地进行所有提交等即可。如果以后要带其他开发人员,则可以将存储库当前版本的所有内容和所有历史记录推送到另一个系统上,该系统可以在共享服务器上,也可以直接在其他用户的工作站上。
如果仅使用本地存储库,请记住,我们还需要一个备份解决方案,因为共享服务器上没有所有代码的副本。
我认为Mercurial与Subversion相比还有许多其他优点,但是它确实有一个很大的缺点,这已经被提到是Subversion的优点:有许多Subversion的第三方工具和集成。由于Mercurial尚未出现,因此选择的余地要少得多。在Windows上,我们似乎必须使用命令行(我的选择)或者TortoiseHg Windows资源管理器集成。
回答
我不同意那些说如果我们没有问题的人最好不要切换的说法。
我认为SCM是优秀开发人员应了解的一些学科,坦率地说,即使我们精通VSS,我们也只是在尝试好的SCM工具和SCM策略可以为我们和团队带来的优势的一小部分。
显然,首先要在非生产环境中评估和测试替代方案。
回答
在工作中,我们将Subto与TortoiseSVN配合使用时效果很好,但从哲学上讲它与VSS不同(如果只有我们,但值得一提的是,这并不是一个真正的问题)。我非常喜欢整个存储库都有修订号的事实。
给我一个自由的选择,我可能会选择跳马,但是那时我的预算是零。
我正在寻找个人使用的东西。有使用颠覆的原因和使用完全不同的原因的原因。我正在考虑的替代方案是Vault(与以前一样,可以免费使用一次)和Bazaar。 GIT我不得不辞退,因为我是一个Windows用户,毫无疑问,现在GIT并不是。
GIT的分布式性质以及私人/临时签到的选项(假设我已经理解了所读内容)很有吸引力,因此我看了Bazaar。
更新:我做了更多的挖掘和游戏工作,实际上我去了Mercurial供个人使用,与TortoiseHg集成安装使事情变得非常简单,而且似乎受到了高度重视。我仍在尝试确定如何强制将提交的自动镜像到服务器,并且对ignore函数似乎存在一些较小的限制,但到目前为止,它的性能很好...
墨菲
回答
物有所值,如果我们真正坚持1或者2个用户,Perforce是一个潜在的选择。当前的perforce文档说我们有2个用户和5个客户端,而不必开始购买许可证。
我们可能有理由根据工作流程以及是否需要分支perforce的方式来切换到perforce。我不太熟悉这里提到的其他一些产品,我无法告诉我们perforce在功能部门中如何比较分支等。
它速度很快,对我们来说是坚不可摧的(在10年以上的代码库上有300多个开发人员)。我们存储了T笔信息,并且响应速度非常快。如果用户数量很少,我怀疑如果我们拥有适用于服务器的良好硬件,那么我们会遇到许多性能问题。
以前使用过VSS,我相信我们可以从一个更好的SCM系统中获得很多好处,因此无论我们是否损坏,都应考虑进行切换。单独分支可能对我们来说值得。真正的客户端/服务器模型,更好的界面(以编程方式和命令行方式)还有其他几件事,它们确实可以帮助改善工作流程并在一定程度上提高生产力。
总而言之,我对Perforce的看法是:
- 快速且可靠
- 大量的跨平台客户端工具(Windows,Unix,Mac等)
- 2位用户和5位客户免费使用
- 集成到开发人员工作室(和其他工具)
- 具有强大的分支系统(可能不适合我们)。
- 具有多个可编写脚本的接口(python,perl,ruby,C ++)
当然,YMMV-我只提供这种替代方案,因为它可能值得研究。
回答
VSS太可怕了。我可能正在引导Spolsky(不确定他是否这么说),但实际上使用VSS比根本不使用源代码控制要糟糕。尽管它的名字,它是不安全的。它在没有提供安全性的情况下就产生了安全感。
没有VSS,我们可能会定期对代码进行备份。使用VSS,我们会想到:"嗯,它已经在源代码控制之下。为什么要备份呢?"很好,直到它破坏了整个代码库,并且我们丢失了所有内容。 (顺便说一句,这是在我工作的一家公司发生的。)
尽快摆脱VSS,并切换到真正的源代码控制解决方案。
回答
如果我们是一个单人秀,严格来说是一家Microsoft商店,那么SourceGear Vault绝对也是进行切换的主要候选人。
特征:
- 免费供单用户使用,非常适合我们
- 它使用SQL Server作为后端,因此数据可靠性非常高
- 它具有原子检入功能,所有同时检入的文件被分组排列,称为变更集。
- VisualStudio集成。
- 有用于从SourceSafe导入的工具,因此我们可以保留历史记录
- 客户端通过HTTP与服务器进行通信,因此可以很容易地设置远程访问办公室外部的源并执行得很好,因为它们仅传输要提交和接收的更改的增量。我们可以使用SSL来保护连接。
我一定会认为这是一个选择。
回答
如果要在一个软件包中提供完整的生命周期,则可能需要查看Visual Studio Team System。它确实需要一台服务器,但是我们可以从MS获得"操作包",其中包括合作伙伴中心提供的" Team Foundation Server Workgroup Edition"所需的所有许可证。
有了它,我们将获得错误,风险和问题跟踪以及许多其他功能:)
- 源代码控制
- 工作项跟踪(需求,错误,问题,风险和任务)
- 报告项目数据(工作项跟踪,构建,签入以及更多内容集中在一个多维数据集中)
- 代码分析
- 单元测试
- 负载测试
- 绩效分析
- 自动构建