Ear*_*rlz 2 svn version-control visual-sourcesafe
我是一家有点小的创业公司.现在我们正在使用JEDI VCS来满足我们的源代码控制需求,除了它的错误外,这也不算太糟糕.它起作用是因为我们用它来管理"旧的"Delphi项目.
现在,我们正在开发VS 2008和.NET中的东西,当我尝试分支项目并且必须提供Delphi项目文件时,我意识到JEDI与Delphi密切相关.
接着.我认为SVN听起来不错,但我已经使用它大约3年了,我很满意它,所以我不想因为我知道而选择它.
我的老板想要Sourcesafe.在阅读了互联网上的所有"为什么永远不会使用VSS"之后,我认为它看起来很糟糕,并且仍然无法解决当前我们正在分支的问题(因为VSS是分支的地狱).他希望我们使用VSS,因为它可以对SQL数据库进行源代码控制(显然?我从来没有能够让它工作,但听说它需要一些单独的Web开发版本或其他东西.
那么,我们应该使用什么源代码控制(它少于5个程序员)是现代的,便宜/免费的?我怎么能说服我的老板说它不能进行SQL版本控制,或者它不值得呢?
Subversion,使用它超过5年.加入TortoiseSVN前端,它非常棒.
VSS是垃圾.它在结账时锁定文件(我个人讨厌),它不是免费的.您需要一个单独的GUI.任何类型的慢带宽管道都非常糟糕.免责声明:我在VSS的经历已超过5年.
在分支/合并时,有些人推荐使用linux团队使用的git,而不是自己使用它,所以无法评论.
避免不惜任何代价使用VSS(我已经使用了4年).它是旧的,不受支持(这通常是管理者的神奇短语;)).它的回购容易出错.这是糟糕的坏事.
SVN很好并且尝试过.它有很多文档和工具(包括免费的Visual Studio集成).
目前的趋势是使用分布式VCS,例如Mercurial和Git.想法是为每个开发人员提供他自己的回购,他可以用主回购提交,开发人员稍后"推"他们的更改.Mercurial有很好的Windows工具(包括免费的 VS插件),git有一个更差的AFAIK,但它肯定会改变.
所有这些都不会自动存储DB方案,但是可以在开发过程中强制执行此操作,方法是将方案保存在文件中并将其提交到repo.
强烈推荐Git,Mercurial和Bazaar.
Mercurial基本上是Git的一些小的实现更改,以及一个纯python实现,这意味着你可以将mercurial与脚本紧密结合.
为什么我为我们的工作场所选择mercurial高于git是因为对于一个新人来说,这更容易.一个命令.
我自己没有使用过Bazaar,但我读到它非常好.
如果您正在考虑SVN,因为"我不需要分布式部分":现代VCS不仅分布式,而且功能更加优雅.他们被认为是正确的.
SVN在它的实现中存在很多问题,包括每个项目文件夹中的凌乱.svn子文件夹,所以基本上如果你只是mv folder1 folder2,你就注定了SVN.
如果你不习惯unix方式,我强烈推荐Mercurial,它很容易上手.
BTW不接受我的话,看看这个话题:http: //www.youtube.com/watch?v = 4XpnKHJAok8