cvs基础
1.查看CVS版本
查看本机是否装有CVS,查看版本信息: cvs –v
2.创建仓储
把CVS服务的数据中心建立在本机D:\CVSROOT路径下:cvs –d d:\cvsroot init
3.创建项目
创建一个名为sesame的项目,从本机D:\from文件夹下面将数据传入到CVS中心数据库。
首先切换到要上传的数据路径D:\from
cvs –d d:\cvsroot import –m “” sesame sesame initial
可以从资源浏览器中看到,此时CVS的数据中心已经将数据导入。
4.检出
CVS中心中已经包含了数据,当我们需要操作数据时,需要将中心数据拷贝一个副本到本地(D:\localcvsroot),即数据导出(Check
Out)
首先切换到副本路径D:\localcvsroot
cvs –d d:\cvsroot co sesame
此时,本地副本已经被拷贝创建起来。
5.修改与查看状态
现在,我们对已经本地副本中的数据信息修改(添加了一行“1111”),进入副本路径d:\localcvsroot\sesame,我们可以在状态查看中发现本地文档已经被修改。
cvs status 1.txt
通过cvs diff命令,我们可以看到修改后原版本与现版本的差别:
cvs diff 1.txt
甚至我们将这种按行进行这种差别对比
cvs diff –side-by-side 1.txt
6.提交
为了将本地副本的变化提交到CVS数据中心,我们需要cvs commit这些变化。-m后的参数是提交时的注释,请注意,随便填写什么并不重要,但是请一定输入一些注释^_^
cvs commit –m “First commit by Huangye”
完成了以上操作之后,我们可以查看针对刚刚修改的文件的cvs日志信息
7.更新
为了说明更新,我们将CVS中心数据库检出到本地另外一个名为aladdin的副本。
cvs –d d:\cvsroot co –d aladdin sesame
可以看到,在本地路径下,出现了一个与sesame平级的副本aladdin
首先更新再次修改sesame中的1.txt文件,再次提交,可以发现,CVS中心服务器与sesame保持了一致,但是aladdin则不一致,需要手工更新。
cvs update
cvs发现只有1.txt被更新了,则只更新了本地副本中的1.txt文件。
8.冲突
我们分别对sesame和aladdin中的1.txt做了修改,并比较了他们与现有数据中心的差别。
可以看到,sesame修改了文件的第一行,而aladdin修改的则是最后一行。
我们先提交sesame中的修改。
然后再提交aladdin中对同一个1.txt文件的修改,这是CVS告诉我们有冲突错误:
按照CVS的建议,我们首先更新了aladdin中的1.txt文件,再查看下更新后aladdin中副本状态。
真是神奇!CVS并没有简单的覆盖我们的修改,而只是修改了不同的部分(第一行)!
这正是CVS中乐观锁的功劳。由于冲突双方修改的并不是同一个地方,所以CVS可以同时保留双方的修改。
此时,我们就可以将aladdin中的数据更新到CVS中心了
使用wincvs
1.服务端设置
Cvs的常用方式,是将cvs服务端假设在NT,Linux,AIX等主机上,在客户端使用wincvs进行访问。
本文中的cvs服务器实验环境是假设在NT之上,即采用了cvsnt版本。在设置客户端之前,我们需要设置一下cvs的Repositories选项。即为数据中心创建一个访问名称。
2.Wincvs设置
本例使用wincvs1.3,在使用wincvs之前,还需要安装Python-2.2.3和tcl832来提供必要的支持。
当我们的cvs服务端ip为10.164.128.33时,采用pserver方式的首设置如下所示:
当客户端的接受路径为D:\localcvsroot时,我们需要在选项卡中指定。
确定后完成设置。在菜单栏中选择登陆,输入密码,可以在输出栏中看到:
cvs -d :pserver:administrator@10.164.128.33:/cvsroot login
Logging in to :pserver:administrator@10.164.128.33:2401/cvsroot
***** CVS exited normally with code 0 *****
3.项目检出、更改与提交
在wincvs中将当前路径切换到D:\localcvsroot,右键左边“项目|模块”视图,选中“检出”。
在弹出对话框中指定cvs数据中心项目(模块)sesame,同时指定检出到本地的路径。
此时,cvs中心的数据就被检出了,当我们在本地修改以后,文件会置为红色。
在wincvs上的操作,不论是提交还是查看差异,都要更加人性化。
4.项目/模块导入
当我们要将本地的一个test目录下文件导入CVS中时。首先在wincvs下选定test路径,通过“导入项目/模块”,指定我们其在远程机器上的模块名,选择适当的标签和日志信息,即可将本地数据导入CVS数据中心。
注意:此时虽然导入成功。但是本地文件并不是从服务器中检出的,所以可以随便删除,而不会影响cvs中心数据。
开发环境中的CVS
CVS除了对文档有很好的版本控制,还可以集成在程序开发环境中,对代码也执行同样良好(甚至是更高效)的版本控制。本文采用Eclipse作为演示环境。
首先,需要在eclipse的cvs视图中指定连接的cvs中心服务器。
指定完成后,可以在仓储视图中看到当前cvs中心数据。
在具体应用项目视图中,我们将项目与当前已有的仓储关联起来。
确定要绑定的资源后,执行提交命令。
为项目提交输入注释不是逻辑必须的,但这是一个良好、乃至于不可或缺的习惯。
当项目提交完成后,我们可以发现整个应用项目已经与原先有了很大不同,每一个子包,甚至与每一个文件都可以被单独的检出,更新或者提交!
|