cvn和cvs的区别 许多 牛人总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开发SVN的理由是什么?
上次在googletechtalk上看了Linus对于版本控释系统的评价,现在linux内核开发用git,以前用的
是bitkeeper。他对SVN的评价是,历史上最没有意义的一个项目。
大家用SVN的动机是啥?
个人认为,也许svn在内核开发方面“最没用”,如果真的那么没用,为啥很多项目转向使用svn呢……呵呵……
偶个人比较喜欢svn,偶觉得在某些方面它比cvs好懂,有些功能(比如对目录的处理)比较吸引人:)
1:图标覆盖功能(仅限TortoiseSVN),方便的看出当前文件的版本控制状态。
2:提交时所有文件版本号统一增1(虽然有的文件一点都没有变),较之cvs每个文件一个版本,好记且提取历史版本方便。
3:便捷的文件操作功能(仅限TortoiseSVN)实现与Window无缝链接,目录操作就是一个优势)。
本人看重第2点....
去年过的一个项目同时用到SVN和CVS
当时代码是用CVS控制,项目资料及文档由SVN控制,应该说各有长处吧
楼上小白了,svn就是用来取代cvs的,对代码的控制是做的最好的一部分。
能够重构,能够对目录进行操作。就这两条就够让我转向svn了。
版本控制平民化应该是主要的原因。
linux下的版本控制配置一般人搞不了
而subversion的配置方法很简单且强大,
简单是说配置容易上手
强大是说可以精确到目录级别的控制。
以前总结的:
1、目录版本控制
CVS 只能追踪单独档案的历史, 不过Subversion 实作了一个“虚拟” 的版本控管档案系统, 能够依时间追踪整个目录的更动. 目录和档案都被纳入版本控管. 最后, 客户端有真正可用的move (移动) 与copy 指令.
2、不可分割的送交
一个送交动作, 不是导致所有更动都送入档案库, 就是完全不会送入. 这让发展人员以逻辑区段建立更动, 并送交更动.
3、纳入版本控管的描述数据(Meta-data)
每一个档案与目录都附有一组隐形“性质(property)”. 你可以自己发明, 并储存任何你想要
的键值对. 性质是随着时间来作版本控管的, 就像档案内容一样.
4、选择不同的网络层
Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制. Subversion “先进” 的网络服务器, 是Apache 网页服务器的一个模块,它以称为WebDA V/DeltaV 的HTTP 变体协议与外界沟通. 这对Subversion 的稳定性与互通性有很大的帮助, 而且额外提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及档案库浏览. 另外也有小而独立的Subversion 服务器程序, 使用的是自订的通讯协议, 可以很容易地透过ssh 以tunnel 方式使用.
5、一致的数据处理方式
Subversion 使用二进制差异运算法, 来表示档案的差异, 它对文字(人类可理解的) 与二进制档案(人类无法理解) 两类的档案都一视同仁. 这两类的档案都同样地以压缩形态储存在档案库中, 而且档案差异是以两个方向在网络上传送的.
6、Hackability
Subversion 没有任何的历史包袱; 它主要是一群共享的C 链接库, 具有定
义完善的API. 这使得Subversion 便于维护, 并且可被其它应用程序与程
序语言使用.
个人认为有几点:
1.可以控制到目录(并可进行共享)
2.每次提交的事务性
3.统一的存储方式(二进制),并能智能比较差异。(在CVS中经常会出现二进制文件被当作文本处理的情况)
...
在使用上介于CVS和VSS之间,像是集二者之所长。
个人认为SVN有一下特点:
1.目录版本化
CVS只对单个的文件版本管理支持,而SVN支持虚拟目录版本管理。
2.同名文件版本管理支持
CVS同名文件的版本历史无法很好管理,但是SVN可以做到
3.原子提交
cvs文件提交,svn对改变的原子进行提交管理
4.版本化的元数据
5.可选择的网络层
6.数据操作一致
7.分支标签操作高效
8.可修改性
可以这样看cvs比较简单一点,svn是cvs的一个升级版本。
像许多开发平台就集成了cvs,如eclipse,netbeans等,这些版本控制在IDE中很实用,方
便。
内核往往是几个或一个内核牛人写的,对于内核牛人来说版本控制都是无聊的东西,更何况是SVN,
但SVN确实是比较好的版本控制工具,我不认为牛人的说法对,只是他看来,他的观点,并不适用于大众哦
我们现在从CVS转向SVN据说有两点原因:
1 场地内没有CVS
2 项目为开源项目
我在说说,我使用vs2008开发,结合SVN(vs插件,桌面都使用),真是痛苦
1.vs项目中,存有.sln .suo(每次添加文件后,.sln .suo会有变化),如果一个人操作还可以,如果遇到同时几个人对项目添加,删除,改名。那么这个项目就完了,一塌糊涂。
2.本人喜欢用vss和vs2005/8系统无缝结合。咋用咋舒服。
请各位有补足说明。
cvs、svn这二种配置控制工具跟2005/8的配合都不怎么好用吧,我们公司现在刚在转用SVN。与VS2005配置合好多问题。
不过CVS对文档的版本控制还还不错的,
SVN对(JA V A、C++开发的)代码控制也很好的
我用过很久的cvs,试用过subversion
cvs的不足,或者说subversion的N多好处,并不象介绍那样好
就拿楼上说的几点好处来说吧
目录版本化。确实是cvs的不足。
真实的版本历史。确实是cvs的不足,cvs文件无法改名,无法移动,改名后相当于从头开始,当然,以前的老文件的版本信息都在。
版本号元数据。有意义,但是不大。
原子提交,只有项目巨大,同时提交的人N多而且导致冲突时才有一点点意义
高效的分支和标签操作,这个我看过文章介绍,因为cvs和subversion数据保存的方式不同,导致不同的操作差异较大,简单的说就是某些操作可能cvs快很多,某些操作可能subversion 快很多。另外,这年头的机器速度,99%的程序员所能接触到的版本管理的规模用这两个中任何一个都速度很快。
可扩展性。99%的人没用过的功能。
可以选择数据库和纯文件的版本库实现。这个也是优势?
subversion其实还有个优点是权限控制比cvs强,cvs基本无法控制权限,需要操作系统配合设置文件、目录的属性来控制,所以比较麻烦,对用户要求较高。
不过试用subversion之后也感觉它有些不足。
第一个不足是对中文的支持,cvs随便装一下支持中文就很好,subversion想让它支持中文目录名、中文文件名,支持中文注释还是需要一定的能力的,网上随便找找文章就可以看到