呵呵,这回星星和月亮都盼来了, WilliamRaym 提供了 svn ,会飞( huifei )接踵而至,马上推出了 CVS ,这样一来,我们团队的协作就更加方便了!
------------------------ 进入正题!
由于笔者一直使用 VSS ,对 CVS 只有一个感性的了解,如有不对,请各位大侠指点!据本人知道, CVS 有 TortoiseCVS 和 Wincvs , CVS 协同开发包含服务器端 cvsnt 和客户端 wincvs ,这里就客户端 Wincvs 展开说明。
一、下载 WinCVS ,为了方便本站直接提供 下载!
http://www.easyjf.com/upfile/file/11488622803121157793070.rar
二、安装 WinCVS,
安装完毕后,在程序菜单中出现:
三、配置客户端
启动 winCVS ,第一次启动时会出现配置窗口
如果没有出现,可以选择菜单 admin à preferences 打开窗口,这是个分页窗口,这里就主要窗口参数加以说明:
1 、一般选项的设置( General )
( 1 ) Authentication :用来配置 cvs 服务器的认证方式,可以从下拉框中选择其它的认证方式,不过一般只要选择默认的 pserver 方式就可以,要注意的是必须与 cvs 服务器配置时所指定的认证方式一致;
( 2 ) Path :用来配置 cvs 在服务器上的主目录路径,也就是服务器上用进行 cvs 初始化的目录,如: /easyjf/easydbo ;
(3)Host Address :用来配置 cvs 服务器所在服务器的地址,可以是 IP 地址,也可以是 DNS 名,如:;
(4) User name :用来配置要使用些 WinCVS 来登录 CVS 服务器的用户名,如: tianyi ,用户的登录必须由管理员把其添加 cvs 用户组中;
( 5 ) CVSROOT :此项一般都不需要用户进行修改,用户在输入上边的几个选项时,系统将自动根据用户的输入生成此项的相应内容。
2 、全局选项( Golbals )
此项的配置主要是要注意这几选项:
( 1 ) Checkout read-only 不要选上,否则, checkout 出来的源代码将不允许用户进行
修改,并且此选项默认是选中的;
( 2 ) Prune (remove) empty directories 也不要选上,否则,会自动删除空目录;
( 3 )对一般配置没有特殊要求的,把 Dirty files support 、 Supply control when adding
与 TCP/IP compression 选项选中;
这样 WinCVS 的配置就结束了,下面可以登录了,哈哈,
四、登录服务器
选择 Admin->login ,将出现如下对话框要求用户输入登录口令
输入口令后,选择“ OK ”按钮,如果 CVS 服务器与 WinCVS 的配置都没出错的话,将在 CVS 的状态栏中提示:
cvs -z9 -d :pserver:[email protected]:/easyjf/easyjfdbo login
Logging in to :pserver:[email protected]:/easyjf/easyjfdbo
***** CVS exited normally with code 0 *****
code 0 表示正确的登录;而如果出错的话,将是 code 1 ,那么要根据错误的提示进行相应的修改。
注意:
1 、以上步骤同样适用于已经是cvs服务器的那台机器,也就是前面提到的又做服务器又做客户端。
2 、cvs的登录只需要一次成功登录就可以了,不必每次都登录
五、 WinCVS 的简单操作使用
我们要在客户端创建一个文件夹,用于存放工作拷贝,工作拷贝是和服务器上的主拷贝相对应的,主拷贝只有一份,放在cvs仓库里,而工作拷贝却可以有很多份,分别放在不同的客户端。创建完文件夹后,我们将它的路径添加到wincvs窗口上方的输入框中即可,从现在开始我们所有的工作拷贝都会存放在这个文件夹中,而我们对文件所做的修改也是针对这个文件夹中的文件。
下面我们就开始基本的操作,开始前,我们要进行“checkout”过程,这个过程是将主拷贝中的目录及文件拷贝到你指定的客户端目录中。
右键单击 wincvs 窗口中左边的框,在弹出菜单中选择 “checkout module” 然后会出现如下对话框:
其中, Module name and path on the server 就是要存放 checkout 内容的目录,由用户输入;而 Local folder to checkout to 就是开始用户所选择的目录。
在第一个输入框中只输入一个 “.” ,表示仓库中的全要复制一份作为工作拷贝。在第二个输入框中输入你存放工作拷贝的路径,然后点击 “ 确定 ” 即可。(如果今后主拷贝中有了目录的变化,客户端也要进行 “checkout” 过程才能看到)完成这一步之后才能进行其他操作。
1 、添加新的项目,并提交到 cvs 仓库中。
首先,在你的工作目录下新建一个文件夹。再看一下 wincvs ,会看到你刚创建的文件夹前面的图标是红色的,这是提示你选中它然后点击 wincvs 按钮栏中的那个带加号的按钮,这是在 cvs 服务器上创建一个这样的目录。同样的如果你新建的是一个文件也是要这样添加。注意目录和文件要分别添加,别以为添加了目录,里面的文件也会被添加。在添加过程中会遇到这样一个对话框:
这是 cvs 在提醒你输入记录信息,这会被记录在相应的日志中,便于今后查看。一定要认真填写,因为如果几天后你忘了你这天对文件做了什么,这就是最好的资料。如:天意新建了一个文件,之后点击确定就可以了。 目录的添加到这步就结束了,而文件的添加还需要另外一步,就是文件的“commit”过程,这也适用于文件被修改后,向仓库提交。只要将需要提交的文件选中,然后右键单击,在弹出菜单里选择“commit selection”然后同样输入记录信息,点击确定。这时,另外一台客户端机器想看见项目的文件,可以在想获得最新版本的目录上单击右键选择“update selection”,之后就会发现其中的文件变成了最新版本,别人的改动也就一目了然了。
2 、修改项目中的文件
(1) 只有一个用户对文件进行修改的情况。
用自己喜欢的编辑器对 checkout 出来的文件进行修改,修改之后的文件在没有提交之前会是红色的,选中红色的文件右击选择“ Commit Selection ”选项,如果没有其它用户也对其进行修改并已经提交到 CVS 服务器上,一切正常的话就将文件提交到 CVS 服务器并把图标恢复成原来的颜色。
(2)有多个用户对同一文件不同部分进行修改的情况。
比喻有天意和大峡同时对一个文件 EasyCache.java 进行了修改,大峡 选择“ Commit Selection ”时将提示:
cvs server: Up-to-date check failed for ` EasyCache.java '
cvs [server aborted]: correct above errors first!
此时表明已经有用户对同一个文件 EasyCache.java 进行修改并提交到 CVS 服务器,这时要先选择“ Update Selection ”对本地 EasyCache.java 与 CVS 服务器上的 EasyCache.java 文件进行同步与合并,不用选中出现的任何选项,直接选择“ OK ”,这时将显示如下:
cvs -z9 update EasyCache.java (in directory H:/EasyJF/Easyjfdbo)
RCS file:/EasyJF/Easyjfdbo / EasyCache.java ,v
retrieving revision 1.5
retrieving revision 1.6
Merging differences between 1.5 and 1.6 into EasyCache.java
M EasyCache.java
***** CVS exited normally with code 0 *****
表明大峡和天意的修改已经合并成功,同时文件 EasyCache.java 的图标也将变成红色,合并后的文件是存放在大峡的本地机上,为了更新到 CVS 服务器还必须选中 EasyCache.java 并右击选择“ Commit Selection ”才能把天意与大峡的修改合并后的结果提交到 CVS 服务器上。注: M 表示此文件已经被修改过。
( 3 )两个或两个以上的用户对同一个文件的相同部分进行修改的情况;
例如:大峡、天意、船长同时对一个文件同一部分进行了修改,
如果天意这时选择“ Commit Selection ”准备把修改结果提交到 CVS 服务器,此
时将显示如下的错误提示:
cvs -z9 commit -m "update in 11:20" EasyCache.java (in directory H:/EasyJF/Easyjfdbo/)
cvs server: Up-to-date check failed for ` EasyCache.java '
cvs [server aborted]: correct above errors first!
***** CVS exited normally with code 1 *****
表明天意的修改与其它用户的修改冲突,这时要先选择“ Update Selection ”,将显示如下提示:
cvs -z9 update EasyCache.java (in directory H:/EasyJF/Easyjfdbo/)
RCS file: / EasyJF/Easyjfdbo / EasyCache.java ,v
retrieving revision 1.9
retrieving revision 1.10
Merging differences between 1.9 and 1.10 into EasyCache.java
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in EasyCache.java
C EasyCache.java
***** CVS exited normally with code 0 *****
EasyCache.java 前面的 C 表示与其它用户的修改有冲突,并且文件的图标会加显示一个“ C ”,如下所示:
双击 EasyCache.java 将显示 EasyCache.java 的内容,其中会同时显示各个用户修改的不同内容,这时需要小组商量使用谁的修改方案,比喻同意大峡的方案,这是大峡 选择“ Commit Selection ”进行提交,将显示如下的提示信息:
cvs -z9 commit -m "update in 11:20" EasyCache.java (in directory H:/EasyJF/Easyjfdbo/ )
Checking in EasyCache.java;
/ EasyJF/Easyjfdbo / EasyCache.java,v <-- EasyCache.java
new revision: 1.11; previous revision: 1.10
done
***** CVS exited normally with code 0 *****
表明大峡与其他人的修改已经合并成功。
这样,向 CVS 服务器提交文件所会遇到的问题也基本上就是这些,用户要根据所遇到的实际问题进行修改
以上我向大家介绍了在 windows 环境下架设 cvs 的方法并粗浅的介绍了 wincvs 的基本功能,希望每个曾经因为没有条件而放弃 cvs 的开发团队或个人,都能用上自己的 cvs 。到此,本文也就结束了。
(本文作者:EasyJF开源团队 天意 版权归EasyJF开源团队所有,欢迎转载,转载请保留作者版权声明,谢谢!)