本节讲解SVN与CVS的区别,主要包括是否更好的冲突标识与处理,是否有更多的本地/离线操作以及元数据管理问题。

更好的冲突标识与处理

    通过是否进行更好的冲突标识与处理看SVN与CVS的区别:CVS和Subversion都支持通过分支与合并进行并行开发,并可以自动检测到合并时的冲突(conflicts),并在合并结果中以<<<<<<…>>>>>>标识合并的冲突部分。在CVS中,经常会出现由于用户的疏忽(如,没有注意到冲突,或没有完全处理好冲突)而将仍然带有<<<<<<…>>>>>>冲突标识符号的文件直接进行提交(commit),从而在版本库中产生垃圾版本。Subversion有效解决了CVS的以上问题:Subversion记录并保持文件的冲突状态,只有当用户明确执行svnresolved命令后,该冲突状态标识才被复位,该文件才能被提交,从而大大减少了将仍然带有<<<<<<…>>>>>>冲突标识符号的文件直接进行提交的可能性。

更多的本地/离线操作

    通过是否有更多的本地/离线操作看SVN与CVS的区别:众所周知,CVS客户端的工作拷贝中包含了一个隐含目录CVS,该目录中记录了客户端需要的一些管理信息;与此类似,Subversion的客户端工作拷贝中也包含了一个隐含目录.svn,该目录中同样记录了客户端需要的一些管理信息,如版本库URL,当前访问版本号等。与CVS不同的是,Subversion的.svn目录中还包含了工作拷贝中每一个文件的一个“只读的、干净的”副本。正是由于该副本的存在,使得Subversion与CVS相比,可以执行更多的本地/离线操作,即某些操作不需要访问版本库服务器,因此不需要存在从客户端到服务器的网络链接,当然也不消耗任何网络带宽,这进一步增强了Subversion对广域网的友好支持。
Subversion的以下命令可以进行离线操作:
svnstatus-显示工作拷贝上的本地修改概况;
svndiff-显示工作拷贝上的本地修改细节,比较修改前后的内容;
svnrevert-撤销工作拷贝上的本地修改;

元数据管理

    通过元数据管理看SVN与CVS的区别:与CVS相比,Subversion增加了元数据(metadata)管理机制。即可以对版本库中的文件或目录附加任意的“属性”(property),并记录属性的变化历史,也就是对元数据进行版本管理。一个Subversion属性是一个“属性名称/属性值”的二元组,如“BugNumber=100”就是一个属性,可以将该属性附加到版本N上,以说明版本N改正了编号为100的BUG。
Subversion元数据的目的是提供附件的信息以满足流程或过程自动化的需要,以增强Subversion的管理能力和自动化程度。Subversion自身就通过“属性”来存储一些特殊的信息。一个使用Subversion元数据的例子:可以在一些批处理的脚本程序或Subversion的钩子程序(hooks)中创建、访问、修改“属性”元数据来满足流程自动化的要求。

 

来源:http://developer.51cto.com/art/201005/200807.htm

SVN与CVS的区别大全(转载)的更多相关文章

  1. SVN和CVS的区别

    对版本控制就有了一定的理解,同时也应该知道SVN与CVS是比较流行的两款SCM工具.那么到底这两款工具有什么区别呢? 1.版本编号方面 例如,我们的版本库为A,其中有文件a,b,c. 在SVN中,新版 ...

  2. GIT,SVN,CVS的区别比较

    Git .CVS.SVN比较 项目源代码的版本管理工具中,比较常用的主要有:CVS.SVN.Git 和 Mercurial  (其中,关于SVN,请参见博客:SVN常用命令 和 SVN服务器配置) 目 ...

  3. SVN、CVS、VSS区别

    废话不多说,撸起袖子敲黑板 !~~ #首先向大家简要描述一下SVN与CVS.VSS的介绍与对比: 介绍: 三种都是版本控制软件, 多数用于源代码管理1.CVS(Concurrent Version S ...

  4. Git学习总结(8)——Git和SVN之间的基本区别

    GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征.所以,这篇文章的主要目的就是 ...

  5. 版本控制系统之SVN和GIT的区别

    版本控制器的作用: 1. 可以协同代码管理,让多人开发代码得以实现. 2. 回归到以前的任何一个时间点的代码处(好比:开始写了很多代码,后面有修改了一些,突然IDE崩溃,但是发现还是以前的代码更好,这 ...

  6. CSS颜色代码 颜色值 颜色名字大全(转载)

    CSS颜色代码 颜色值 颜色名字大全 转载处http://flyjj.com/css-colour-code.html 颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) ...

  7. __bridge,__bridge_transfer和__bridge_retained的使用和区别【转载】

    __bridge,__bridge_transfer和__bridge_retained的使用和区别[转载] Core Foundation 框架Core Foundation框架 (CoreFoun ...

  8. svn与cvs的一些比较

    所有的文档都显示SVN可以取代CVS,同时SVN的问题和缺点都被隐藏了.不幸的是,我们并不认为SVN是CVS的替代品,尽管很多缺陷都被修改了.更有甚者,它甚至让人重回VSS.CVS和SVN的比较类似与 ...

  9. svn和git的区别及适用场景

    svn和git的区别及适用场景 来源 https://blog.csdn.net/wz947324/article/details/80104621 svn的优势: 优异的跨平台支持,对windows ...

随机推荐

  1. android不要标题栏

    去除标题栏title其实非常简单,他有两种方法,一种是在代码中添加,另一种是在AndroidManifest.xml中添加: 1.在代码中实现: 在此方法setContentView(R.layout ...

  2. Java Day 16

    基本数据类型包装类 Integer.MAX_VALUE  Integer.parseInt(); intValue(); valueOf(); 自动装拆箱 如果是一个字节范围,数据共享 字符串中 数值 ...

  3. JAVA栈实例—括号匹配

    import java.util.Stack; public class test { public static void main(String[] args){ System.out.print ...

  4. OpenCV检测人脸实例代码

    下面是使用OpenCV通过在硬盘中读入图像来对其进行Haar人脸检测的代码. //包含头文件 #include <opencv2/core/core.hpp> #include " ...

  5. asp.net中下载文件的问题

    今天解决web的文件下载问题,下载的方法网上很多,不过我的下载有点特殊: 1.下载按钮在gridview中,是模板列的linkButton: 2.使用了ajax控件: 所以,在下载时总是报错,通过查找 ...

  6. vi中正则表达式的使用

    在当前行中删除从aa到zz的所有字符 :s/aa.*zz//在整个文件用and代替所有的&字符:1,$s/&/and/g在每一行的首行插入字符串new:1,$s/^/new/g在第二行 ...

  7. Log4j2 配置笔记(Eclipse+maven+SpringMVC)

    Log4j2相关介绍可以百度看下,这里只注重配置Log4j2 能够马上跑起来: 1.pom.xml文件中添加Log4j2的相关Maven配置信息 <!-- log4j2 --> <d ...

  8. ReactJS入门

    React介绍 React是facebook开发基于组件驱动开发(CDD ) 的UI类库,相对于双向绑定的类库,如AngularJS,它采用单向数据流绑定.通过采用虚拟DOM的概念,是的他在性能和处理 ...

  9. 关于ThreadLocal

    ThreadLocal是用于并发环境下避免竞争,简化编程的机制,它在并发环境下提供了一个逻辑上全局的访问点,来访问线程本地对象. 其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个T ...

  10. hibernate---CRUD

    delete @Test public void testDelete() { Teacher t = new Teacher(); t.setName("t1"); t.setT ...