关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

原文地址:http://blog.sina.com.cn/s/blog_559144710100c2ux.html

一、CVS


CVS是一个版本控制系统,是Concurrent Version System(并行版本系统)的缩写。 使用它,可以记录下你的源文件的历史。

CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序,由仓库管理员统一管理这些源程序。这样,就好象只有一个人在修改文件一样,避免了冲突。每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一修改。这样就可以做到跟踪文件变化,冲突控制等等。

详细情况不必多讲,网上的资料一搜一箩筐。想看中文的,推荐一个:CVS 中文手册

二、在Windows系统中部署CVS Server

1、去http://www.march-hare.com/cvspro/下载cvsnt的最新版本
2、默认安装后,在控制面版中会增加cvsnt的控制台“CVSNT Server”选项,在系统服务中会增加“CVSNT Dispatch service”和“CVSNT Locking Service”两项系统服务,分别监听2401、2402端口。
3、通过控制面版中的控制台,实现对Server端的控制。打开“Repository configuration”标签,点“Add”按钮,在弹出的窗口中指定好仓库的存储路径,其它配置不必改动,默认即可。当系统提示的时候,点确定进行仓库的初始化。
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN
4、为要使用此仓库的成员创建系统帐户。

5、补充。在实际测试中发现,在cvsnt控制台中还需要改动一个选项,才能让远程机器正常使用cvs server,否则远程机器提交的时候会出现错误,提示权限不够。参看下图,找到“Server Setting”标签,第一个下拉列表框(Run as)默认的是(client user),需要更改为服务器本机的帐户。
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

至此,服务器端的工作已经准备完毕。在Linux中的部署,暂时没测试,在此不再列出。

三、Eclipse中使用CVS

eclipse本身是自带cvs的,我们只要简单设置一下让它连接到cvs服务器上。下面以简单的Hello World为例,说明使用步骤。

1、启动Eclipse,创建一个HelloWorld Java Project。
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

2、在项目上单击右键,选择“Team”->“Share project”
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

3、填入cvs server的有关参数后,点“next”:
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

4、系统会弹出窗口,默认点finish按钮后会自动执行“提交”。
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

5、在“提交”窗口中输入一些版本的注释,便于别人识别。
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

6、完成后,在project explorer中就可以看到,在项目名字后面已经有了cvs server的标识。
关于CVS、SVN版本控制及Eclipse中如何使用CVS、SVN

7、至此,项目已经发布到CVS Server中去了。项目组的其它成员可以check out此项目,进行共同开发。完成后可以提交。cvs server会自动管理版本。在Eclipse中可以充分享受版本控制带来的便利了。

四、SVN

SVN = SubVersioN,网址:http://subversion.tigris.org/ ,服务端和客户端都可以在上面的网址中找到下载链接。

Subversion是一个*/开源的版本控制系统,它被设计成CVS的替代产品。

Subversion支持:

版本化的目录

CVS只能跟踪单个文件的变更历史,但是Subversion实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在Subversion中,文件目录都是版本化的。

真实的版本历史

由 于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作—这些操作改变了目录的内容。同样,在CVS中,一个目录下的文件只要名字相同 即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文 件之间的历史联系问题。

原子提交

一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况。

版本化的元数据

每一个文件和目录都有自己的一组属性—键和它们的值。可以根据需要建立并存储任何键/值对。和文件本身的内容一样,属性也在版本控制之下。

可选的网络层

Subversion 在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。Subversion可以作为一个扩展模块嵌入到Apache之中。这种方式在 稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术—认证、授权和传输压缩等。此外,Subversion自身也实现了一个轻型的,可独立运 行的服务器软件。这个服务器使用了一个自定义协议,可以轻松的用SSH封装。

一致的数据操作

Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的。这两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。

高效的分支和标签操作

在Subversion中,分支与标签操作的开销与工程的大小无关。Subversion的分支和标签操作用只是一种类似于硬链接的机制拷贝整个工程。因而这些操作通常只会花费很少且相对固定的时间。

可修改性

Subversion没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API。这使得Subversion非常容易维护,和其它语言的互操作性很强。

五、在Eclipse中使用SVN

去http://subclipse.tigris.org/查找到最新的Subclipse的Eclipse update site URL,例如 http://subclipse.tigris.org/update_1.4.x ,打开Eclipse,点“Help”->“software update”,增加一个site,填入上面的URL,然后安装相应的插件。

装完subclipse插件之后,Eclipse中就增加了一个SVN的perspective,其它操作与上面的CVS相似,不再赘述。

六、TortoiseSVN客户端软件

A Subversion client, implemented as a windows shell extension.

TortoiseSVN is a really easy to use Revision control / version control / source control software for Windows.
Since it's not an integration for a specific IDE you can use it with whatever development tools you like.
TortoiseSVN is free to use. You don't need to get a loan or pay a full years salary to use it.

经过试用,是很优秀的一款windows SVN客户端软件。

over.