做.net开发的用vss就可以了;做java也要看使用什么环境,如果用ibm websphere studio application developer(开发环境能内嵌什么就用什么)做开发,最好使用cvs。这样选择的原因是它们都可内嵌到各自的平台下。用户操作方便。
个人观点:cvs功能强大。本人作项目.net还是delphi的都用cvs。主要可能是用惯了。
源码管理的工具是必须的
至于用哪个,随便了,,不过推荐svn
cvs没有用过,以前用过vss,现在用svn,感觉svn还不错
"Subversion (SVN)"
it's free, and it is the advanced version of CVS,
O'Reilly has some books and articles introduce it :
http://oreilly.com/catalog/9780596510336/index.html
old CVS has some problems with Chinese files and folders,
but Subversion has already fixed it.
VSS with Visual Studio it's not free, you need to pay for using it,
unless you use the pirated edition.
SVN(Subversion) 介绍
在开源软件世界,并行版本系统(CVS)一直是版本控制长久以来的唯一选择。事实证明,这是个正确的选择。CVS本身是自由软件,不加限制的处事风格,对网络化操作的支持(众多身处不同地方的程序员可以共享他们的工作),都非常符合开源世界的协作精神。CVS和它半混乱状态的开发模型已成为开源文化的基石。
但是,和其它许多工具一样,CVS开始显露出衰老的迹象。而Subversion,正是以CVS继任者的面目出现的新型版本控制系统。Subversion 的设计者们力图通过两方面的努力赢得CVS用户的青睐:保持构建开源软件版本控制系统的方式(以及视觉和感觉上)与CVS尽可能类似,同时尽力弥补CVS 许多显著的缺陷。这些努力的结果使得从CVS迁移到Subversion不需要作出重大的变革,Subversion确实是非常强大、非常有用和非常灵活的工具。
CVS和VSS的区别
1、 文件修改方式不同
VSS采用独占模式,而CVS是一种可以并发的版本控制方式
2 、项目版本管理不同
VSS并有直接对项目版本管理的支持,通过label来自定义一个版本号,可以解决部分项目版本管理的问题,但这是远远不够的,当一个产品根据用户需求产生一系列不同的项目版本时使用SourceSafe将非常难以管理。
CVS提供了比较完善的项目版本管理。CVS中可以把当前的工作定义成一个版本,一旦生成版本了则版本中的数据被单独取出,处于版本中的文件将保持只读,想获得一个项目的历史版本将轻而易举。同时,对于一个项目版本内部可以调整使用不同的文件版本。
3 、分支功能
CVS和VSS都提供了建立分支和合并分支的功能,但在操作中VSS首先要做项目共享,引入要分支的项目或文件然后做分支操作。.CVS则是直接对文件或者项目做分支,分支操作同时建立。
4 、安全性不同
VSS仅可在局域网内部使用,服务器仅作为一个文件服务器,不需要运行任何程序或者起后台服务,但必须要共享一个可写的文件夹。安全性比较差。
CVS在局域网或者广域网内都可使用,作为服务器不需要共享任何资料,但必须起服务,占用系统资源。安全性强适用面广。
一般开发团队比较小的用VSS,中等规模的用CVS。
cvs,vss 都是版本控制的软件工具,可以把源代码或者其他文件的每一次修改的内容都保存起来,算是可以看以前版本的代码。
vss 基于文件共享的机制,易用性好,安全性不太好。vss 对于同时增加删除多个目录的支持很好。分支合并管理也很容易使用,打标签功能不太好用。vss 基于文件锁机制,同一时刻,只能有一个人修改同一个文件。
cvs 基于 c/s 结构,也有工具可以让它 b/s 运行,不过 b/s 速度慢,使用者不多。cvs 安全控制比较好,对于同时增加多个目录的支持不太好。cvs 中删除目录很难。cvs可以同一时刻多人修改统一文件然后合并,不过只支持文本文件;对于 office 或者其他格式的文档,多个人同时修改同一个文件很难合并,浪费大家时间。我在网上搜索让cvs支持锁机制,只有少数文章提到在 server 端用 script 控制,语焉不详。
总体来说,cvs 功能比vss强。
用SVN了咯,VSS太容易签出和回递