(作为积累收藏,原文链接:http://blog.csdn.net/fengkungui/article/details/52347382)
【Concurrent Versions System】
CVS是一个并行版本控制系统,采用C/S模式,它的复杂度和功能性属于中等。
·特点:
保存修改记录:保存所有的修改历史,并可以建立分支
协作与并行:cvs采用多人可以并行的修改同一个文件,而在提交时合并冲突,它更能适用于大型的工作团体
·使用CVS好处:
文件集中管理,大家都可以方便的看到所有人的最新文件,规范了文件的管理
可以查看以前任何的一个版本或修改历史
可以同时维护多个版本和分支。
【TortoiseCVS】
·简单介绍:
TortoiseCVS是一款项目管理工具,有服务器版和客户端版,在客户机上安装了CVS,能够从服务器上迁出数据。是Windows平台上最简单最方便的CVS工具。TortoiseCVS的特点就是完全综合到资源管理器的鼠标右键菜单中进行操作,异常简单和方便。cvs的一个windows客户端程序,功能当然是实现cvs的一些操作。CVS是指并发版本系统(ConcurrentVersions System),作为一个发展团队中软件发展循环的一部分,以便追踪并协调原始码的变化。
·安装与设置:
下载cvs-suite-trial-2009-6052.msi,进行安装,一路next就可以了。(小编分享:https://yunpan.cn/cMvrbS6hLrriK(提取码:a748))
安装完成之后,会提示重启电脑,重启之后提示建立CVS仓库。根据自己的需要将CVS仓库建到相应位置。完成之后,鼠标右击就会出现:
如上图的CVS取出以及CVS,点开CVS可以创建新模块
如上图所示:
协议选择:口令授权服务协议(我的是默认的,当然结合自身情况而定)
仓库文件夹:是自己安装时创建的仓库位置
右边是共享的项目,选择自己需要的进行获取。
·再就是客户端部分,将自己获取到的项目
打开Myeclipse—Window—Preferences—Team—CVS—Ext Connection Method新建连接:
完成之后,打开window—show view—搜索CVS Pepositories然后在左侧窗口就可以看到项目库了:
这个时候就可以右击检出自己需要的项目资源了。右击check out或check outas就可以啦。
然后再就可以通过右击进行项目管理了(提交、更新等操作)
【遇到的问题】
问题描述:连接失败。
如下图所示:
失败的原因:是我把cvs地址写错了,也就是Repositoryport的地址没有写对。
如下图所示,是我正确填写的信息:
【CVS管理与SVN管理】
对版本控制就有了一定的理解,同时也应该知道SVN与CVS是比较流行的两款SCM工具。那么到底这两款工具有什么区别呢?
CVS | SVN | |
关于版本号 | 基于文件的自增序列号。 | 基于全局的自增序列号,而不仅仅针对文件,还包括目录等。 |
存储类型格式 | CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话你可以手工修改RCS文件。 | SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明,或是说并不那么用户友好了。那就是为什么工具软件,对仓库 (数据库)变得那么重要了。 |
访问速度 | 比较慢;因为他基于单向(服务端-->客户端)差异化文件传输 | 整体而言,由于架构实现的不同, SVN的确比CVS快很多;因为采用双向差异化文件传输。 在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。 |
元数据 | 只允许存储文件 | 允许一个文件有任意都的可命名属性。功能十分完全,但不知到底有什么用 |
文件类型 | 最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有如需要的话则要有其他信息,并且客户端服务器端都要调整。 | SVN会关心所有的文件类型,不需要你来手工操作;因为他的存储是基于二进制的 |
滚回 | CVS允许任意的滚回,在任意一个已递交的版本上,尽管着要华些时间(所有的文件都要分别处理)。 | SVN不允许递交后滚回。我们建议把仓库里好的状态版本加到末尾,覆盖掉损坏的版本。而损坏的版本无论如何也是会存在数据库里的。 |
事务 | CVS中的 “零或一”事务原则根本没有实现。如果检入几个文件的话(加到服务器上),很有可能部分文件完成了,而另几个没有。最为一个潜规则,手工纠正这些并且对余下的文件 (而不是所有文件)一一重复检入。这样这些文件将在两阶段中被检入。但至今为止,因为这个功能缺少而导致的数据仓库损坏的案例还没有出现过。 | 支持“零或一”事务原则,这是SVN的一大优势 |
架构、代码、可扩展性 | CVS是个古老的系统。起初CVS只是一些运用RCS的脚本文件。后来这些脚本被组成一个单个应用程序,但内部结构仍然有待改进。直到今天,仍有人企图从头开始,重写一遍CVS,但都不成功。我们曾经尝试国重写客户端代码以期更好的集成效果,但是,不成功。现在我们都不认为CVS在功能上能走到多远了。 | Subversion的开发员的确花了许多时间在内部架构上。我们仍然不知道这些决策有多大的正确性等等。但有一点可以肯定,代码有良好的可扩展性,增强工作也在进行着。 |
网络层 | 不能与Apache Web Server集成 | 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制. Subversion “先进” 的网络服务器, 是 Apache 网页服务器的一个模块,它以称为 WebDAV/DeltaV 的 HTTP 变体协议与外界沟通. 这对Subversion 的稳定性与互通性有很大的帮助, 而且额外提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及档案库浏览. 另外也有小而独立的 Subversion 服务器程序, 使用的是自订的通讯协议, 可以很容易地透过 ssh 以 tunnel 方式使用 |
重命名、删除操作 | 不支持本地文件重命名提交; 删除分remove和erase两种前者把本地和库中文件都删除,后者只是删除本地文件; 不能删除文件夹 | 支持文件重命名提交系统会提示删除旧文件,创建新文件 删除本地文件提交 库中文件也被删除 |
用户访问权限 | 有read、write、creat、none这四种权限,任何人不能删除文件夹(admin也只能跑到服务器上把相应文件夹残忍删除?我暂时只知道这个方法……) | 只有read、write、none三种权限 creat和delete权限好象和write是捆绑在一起的 |
创建分支与基线 | CVS 在创建分支的时候,需要对所有进行分支的文件进行依次的操作,因此分支的建立成本(主要是建立分支所需的时间,或消耗的计算资源)与参与分支的文件数量成比例,项目越大,版本库越大,文件越多,分支的建立成本越高;基线(tag)的建立与此类似。 | SVN 的分支和基线是通过执行“拷贝”来建立的:回想一下在没有引入版本管理工具的时候我们是如何进行所谓的“分支”和“基线”管理的?答案显然是“拷贝” — 我们通过“拷贝”或“备份”来建立基线;同样,为支持多个开发人员可以同时进行开发,我们为每个开发人员创建一份“拷贝”。 |
【学习小结】
对于SVN和CVS的项目管理,都各有自己的优劣之处,并非存在哪个好哪个差的说法,适合自己的才是最重要的,一定要根据自己的需要选择合适的项目管理工具。