首页 常见问题 svn与cvs的区别是什么

svn与cvs的区别是什么

Jun 21, 2022 am 11:40 AM
svn

区别:1、CVS的版本号是基于文件的自增序列号,而SVN的是基于全局的自增序列号,不仅针对文件,还包括目录;2、CVS是基于RCS文件的,而SVN是基于关系数据库或一系列二进制文件的;3、CVS允许任意的滚回,而SVN不允许递交后滚回;4、SVN支持“零或一”事务原则,而CVS不支持;5、CVS不支持本地文件重命名提交,而SVN支持;6、CVS有四种权限,而SVN只有三种权限。

svn与cvs的区别是什么

本教程操作环境:windows7系统、Subversion 1.14版、Dell G3电脑。

CVS(Concurrent Versions System):

是开发源码的并发版本系统 。它可用于各种平台,包括 Linux 、Unix和 Windows NT/2000/XP等。CVS免费开源,对项目进行版本管理。

功能介绍:

1、 代码统一管理,保存所有代码文件更改的历史记录。对代码进行集中统一管理,可以方便查看新增或删除的文件,能够跟踪所有代码改动痕迹。可以随意恢复到以前任意一个历史版本。并避免了因为版本不同引入的深层BUG。

2、 完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它的文件比较工具和手工的粘贴复制。  

3、 代码权限的管理。可以为不同的用户设置不同的权限。可以设置访问用户的密码、只读、修改等权限,而且通过CVS ROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。 

4、 支持方便的版本发布和分支功能。

SVN(Subversion):

  •  SVN全名Subversion,即版本控制系统。SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。

  •  SVN是一种集中式文件版本管理系统。

  • 集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。

(SVN)集中式管理的工作流程:

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。 

 管理流程如下图: 

1.jpeg

svn与cvs的区别


CVS SVN
关于版本号 基于文件的自增序列号。 基于全局的自增序列号,而不仅仅针对文件,还包括目录等。
存储类型格式 CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话你可以手工修改RCS文件。 SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明,或是说并不那么用户友好了。那就是为什么工具软件,对仓库 (数据库)变得那么重要了。
访问速度 比较慢;因为他基于单向(服务端-->客户端)差异化文件传输 整体而言,由于架构实现的不同, SVN的确比CVS快很多;因为采用双向差异化文件传输。
在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。
元数据 只允许存储文件 允许一个文件有任意都的可命名属性。功能十分完全,但不知到底有什么用
文件类型 最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有如需要的话则要有其他信息,并且客户端服务器端都要调整。 SVN会关心所有的文件类型,不需要你来手工操作;因为他的存储是基于二进制的
滚回 CVS允许任意的滚回,在任意一个已递交的版本上,尽管着要华些时间(所有的文件都要分别处理)。 SVN不允许递交后滚回。我们建议把仓库里好的状态版本加到末尾,覆盖掉损坏的版本。而损坏的版本无论如何也是会存在数据库里的。
事务 CVS中的 “零或一”事务原则根本没有实现。如果检入几个文件的话(加到服务器上),很有可能部分文件完成了,而另几个没有。最为一个潜规则,手工纠正这些并且对余下的文件 (而不是所有文件)一一重复检入。这样这些文件将在两阶段中被检入。但至今为止,因为这个功能缺少而导致的数据仓库损坏的案例还没有出现过。 支持“零或一”事务原则,这是SVN的一大优势
架构、代码、可扩展性 CVS是个古老的系统。起初CVS只是一些运用RCS的脚本文件。后来这些脚本被组成一个单个应用程序,但内部结构仍然有待改进。直到今天,仍有人企图从头开始,重写一遍CVS,但都不成功。我们曾经尝试国重写客户端代码以期更好的集成效果,但是,不成功。现在我们都不认为CVS在功能上能走到多远了。 Subversion的开发员的确花了许多时间在内部架构上。我们仍然不知道这些决策有多大的正确性等等。但有一点可以肯定,代码有良好的可扩展性,增强工作也在进行着。
重命名、删除操作 不支持本地文件重命名提交;
删除分remove和erase两种前者把本地和库中文件都删除,后者只是删除本地文件;
不能删除文件夹
支持文件重命名提交系统会提示删除旧文件,创建新文件
删除本地文件提交 库中文件也被删除
用户访问权限 有read、write、creat、none这四种权限,任何人不能删除文件夹(admin也只能跑到服务器上把相应文件夹残忍删除?我暂时只知道这个方法……) 只有read、write、none三种权限 creat和delete权限好象和write是捆绑在一起的
创建分支与基线 CVS 在创建分支的时候,需要对所有进行分支的文件进行依次的操作,因此分支的建立成本(主要是建立分支所需的时间,或消耗的计算资源)与参与分支的文件数量成比例,项目越大,版本库越大,文件越多,分支的建立成本越高;基线(tag)的建立与此类似。 SVN 的分支和基线是通过执行“拷贝”来建立的:回想一下在没有引入版本管理工具的时候我们是如何进行所谓的“分支”和“基线”管理的?答案显然是“拷贝” — 我们通过“拷贝”或“备份”来建立基线;同样,为支持多个开发人员可以同时进行开发,我们为每个开发人员创建一份“拷贝”。

(学习视频分享:编程基础视频

以上是svn与cvs的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP开发中如何使用SVN进行版本控制 PHP开发中如何使用SVN进行版本控制 Jun 27, 2023 pm 01:39 PM

在PHP开发中进行版本控制是很常见的操作,其中最常用的工具就是SVN(Subversion)。它可以方便地管理代码的历史版本以及协同开发过程中的代码更新。下面将介绍如何在PHP开发中使用SVN进行版本控制。一、安装SVN客户端和服务端首先需要安装SVN客户端和服务端。SVN客户端可以在SVN官网上下载对应的版本,安装即可,而服务端则需要自行搭建,具体方法可以

Java SVN:代码仓库的守护者,确保代码稳定性 Java SVN:代码仓库的守护者,确保代码稳定性 Mar 09, 2024 am 09:20 AM

SVN简介SVN(Subversion)是一种集中式版本控制系统,用于管理和维护代码库。它允许多个开发者同时协作开发代码,并提供对代码历史修改的完整记录。通过使用SVN,开发者可以:保障代码稳定性,避免代码丢失和损坏。追踪代码修改历史,轻松回滚到之前的版本。协同开发,多个开发者同时修改代码而不会冲突。SVN基本操作要使用SVN,需要安装SVN客户端,例如TortoiseSVN或SublimeMerge。然后,您可以按照以下步骤执行基本操作:1.创建代码库svnmkdirHttp://exampl

详解如何安装和设置EclipseSVN插件 详解如何安装和设置EclipseSVN插件 Jan 28, 2024 am 08:42 AM

EclipseSVN插件的安装和设置方法详解Eclipse是一个广泛使用的集成开发环境(IDE),它支持许多不同的插件来扩展其功能。其中之一是EclipseSVN插件,它使开发人员能够与Subversion版本控制系统进行交互。本文将详细介绍如何安装和设置EclipseSVN插件,并提供具体的代码示例。第一步:安装EclipseSVN插件打开Eclipse

用vimdiff替代svn diff:比较代码的工具 用vimdiff替代svn diff:比较代码的工具 Jan 09, 2024 pm 07:54 PM

在linux下,直接使用svndiff命令查看代码的修改是很吃力的,于是在网上搜索到了一个比较好的解决方案,就是让vimdiff作为svndiff的查看代码工具,尤其对于习惯用vim的人来说真的是很方便。当使用svndiff命令比较某个文件的修改前后时,例如执行以下命令:$svndiff-r4420ngx_http_limit_req_module.c那么实际会向默认的diff程序发送如下命令:-u-Lngx_http_limit_req_module.c(revision4420)-Lngx_

SVN在CentOS上的安装及命令行安装 SVN在CentOS上的安装及命令行安装 Feb 13, 2024 am 11:24 AM

在CentOS上安装SVN是非常常见的操作,它是一个功能强大的版本控制系统,可以用于管理和追踪软件开发过程中的变更,本文将详细介绍如何在CentOS上安装SVN,并提供一些常用的命令行安装方法。在CentOS上安装SVN有多种方法,下面将介绍两种常用的安装方式。1.打开终端,以root用户身份登录。2.运行以下命令更新系统软件包列表:```yumupdate3.运行以下命令安装SVN:yuminstallsubversion4.安装完成后,可以通过运行以下命令验证SVN是否成功安装:svn--v

svn与vss的区别是什么 svn与vss的区别是什么 Jun 21, 2022 am 11:23 AM

区别:1、vss是微软开发的,是收费的,而svn是开源免费的;2、vss必须有客户端,而svn可以用客户端,也可以用命令行模式,还可以用网页方式只读访问;3、vss只支持windows系统,而svn支持windows和linux系统;4、vss是“锁定-编辑-解锁”模式,svn默认是“修改-冲突-合并”模式;5、vss的版本号对应的是单个文件,svn的版本号对应的是整个版本库。

Linux开发者的必备技能:简单掌握SVN版本控制 Linux开发者的必备技能:简单掌握SVN版本控制 Jan 26, 2024 pm 09:54 PM

身为Linux开发人员,往往需要运用SVN控制项目版本。对于优秀开发者而言,熟知如何查阅SVN版本无疑是必备技能之一。今日,笔者想借此机会和各位分享自己的心得,希望能助您更好地掌握这一实用技巧。1.安装SVN命令行工具请先在Linux环境中安装SVN命令行工具哦!请拨通终端,然后稳妥地输入下面这条指令来完成安装吧:```尊敬的用户,请执行sudoapt-getinstallsubversion以安装Subversion。2.连接到SVN服务器安装完毕后,我们需要连接到SVN服务器。输入以下命令:

PHP入门指南:SVN版本管理 PHP入门指南:SVN版本管理 May 20, 2023 am 08:29 AM

作为一种常用的服务器端脚本语言,PHP凭借其开源、跨平台的优势,被广泛应用于Web开发领域。而在多人协作的开发中,版本控制是一个不可或缺的工具,它可以有效地管理源代码的修改与更新,避免因团队成员之间代码不同步而造成的冲突。而SVN作为一款流行的版本控制工具,在PHP开发中的应用也十分广泛。本文将为大家介绍PHP开发中的SVN版本控制的基础知识,包括SVN的安