技术资料_在CnPack开发中使用CVS

在 CnPack 开发中使用 CVS

Revision 1.0.0.2
与月共舞 2002.05.24


一、 CVS 简介

CVS (Cuncurrent Versions System) 是基于 TCP/IP 协议的版本控制工具,也是 Open source 界最重要的开发工具之一。
(如果你还没有“版本控制”的概念可查看相关资料。)

CVS 保存了对项目源码每一次改动的记录,和改动的一些注释。在任何时候,你都可以找到仓库中任何文件的任何版本。它容许几个人同时工作在同一个文件,在他们提交文件时来合并他们所做的改动。在改动冲突时会发出警告来通知用户,确定将此文件的更新版本放入仓库内,发生的冲突由某人解决。

它最基本的开发流程如下所述:

  1. 你把你的所有代码倒入 (import) CVS,然后其他人可以检出 (checks out) 源码树的一个工作拷贝。
  2. 每个人都工作在自己的本地计算机中,当有一个新的功能出现时,他们会更新 (update) 他们的本地拷贝来保持和当前版本尽可能同步。他们会提交 (commit) 他们改变的文件到仓库中来生成新的版本。
  3. 在提交时出现的问题 CVS 都会产生警告,然后你必须仔细检查出问题的文件来手工解决冲突。在文件中,改动的部分会在前面以 >>>>>显示,并且列出两个版本的不同之处。仅删除旧版(或 修改十它能够工作),再次提交文件,一旦 CVS 没有警告返回上一步,继续工作。

二、准备工作

CnPack 开发组当前使用 CnPack (http://www.cnvcl.org) 的 CVS 服务器。如果你想利用它来工作,首先你需要向项目管理员([email protected])申请用户名,如果你只想从 CVS 中匿名下载最新的代码和文档,这一步可以省略。

要在 Windows 环境下使用 CVS,我们需要以下几个工具:

三、匿名访问

匿名访问 CVS 只需要下载 WinCVS 就行了,安装完成后第一次运行会弹出设置对话框,进行如下设置:

  • General 页
     - CVSRoot 中输入
     :pserver:[email protected]:/var/cvshome/cnpack
     - Authentiction... 中选择 "passwd" file on the cvs server
  • Globals 页
     - Checkout read-only 项可不选,这样检出的文件没有只读属性
     - 可选中 Use TCP/IP compression 项,以加快下载速度
  • WinCvs 页
     - Home folder 中输入一个本地路径,用来保存密码
  • 其它可取默认设置 设置完成,从 Admin 菜单中选择 Login,口令直接回车即可,如果成功下面会显示
    *****CVS exited normally with code 0*****

此时可选择 Create 菜单下的 Checkout module,弹出窗口中:

  • Enter the ... 框输入模块名 cnapak
  • Local folder ... 框可选择一个本地路径存放输出文件
  • 如果想检出一份不含 CVS 控制文件的拷贝,可在 Checkout options 页中选中 Do not create the CVS ...
  • 确认即可

四、用它来工作

安装上述三个软件:

  • 安装 TCL 程序
  • 安装 SSH,安装时最好不要用默认路径,可装到 D:\SSH 或类似的路径下,这样在以后的设置中要方便一些
  • 安装 WinCVS
  • 根据提示重新启动系统

运行 WinCvs,在弹出的设置对话框中设置(以后也可通过菜单 Admin 下的 Preferences 打开):

  1. General 页
    - CVSRoot 中输入
    :pserver:[email protected]:/var/cvshome/cnpack
    (其中 username 用联盟的用户名代替)
    - Authentiction... 中选择
    SSH Server
  2. Globals 页
    - Checkout read-only 项可不选,这样检出的文件没有只读属性
    - 可选中 Use TCP/IP compression 项,以加快下载速度
  3. Ports 页
    - Check for ... name 选中,在后面输入 SSH 的安装路径加 SSH2
    如 SSH 安装在 D:\SSH 输入 D:\SSH\SSH2(如果使用默认安装路径会很不方便)

设置好后直接从 Create 菜单中选择 Checkout module,设置与“匿名下载”相同,此时任务栏上会有一个“Dos窗口”,在该窗口中输入你的密码即可(注:第一次运行 SSH2 要先输入一个 yes。)

在 SSH 模式下不需要登录,每次操作都需要输入口令。

关于 WinCVS 的具体使用方法,可参阅《WinCVS日常使用指南》一书

常见问题解答


问:在 CnPack 开发中,我必须使用 CVS 吗?
  答:不是必须的,但我强烈建议大家都使用 CVS 来同步源码。不过管理员也会定时将 CVS 中的文件打包到网站中供下载使用。

问:为什么我用 WinCVS 访问服务器时,出现 Dos 窗口后输入三次密码就退出来了?
  答:这是因为你没有通过服务器的身份验证。如果你刚申请,还没有通过请等待验证通过。如果你已经是注册用户了,请与“共创联盟”管理员([email protected]) 联系,告诉他你的用户名、用户 ID、项目名(CnPack),并说明不能访问 CVS 服务器,管理员一般会在两天之内解决。
  如果不方便,也可通知开发组管理员([email protected])代为询问。

问:为什么我在使用 WinCVS 时出现如下错误?
  cvs -z9 checkout -P cnpack (in directory C:\)
  cvs server: Updating cnpack
  cvs server: failed to create lock directory for `/var/cvshome/cnpack'
  cvs server: failed to obtain dir lock in repository `/var/cvshome/cnpack'
  cvs [server aborted]: read lock failed - giving up
  ****CVS exited normally with code 1*****
  答:这一般是 CVS 服务器的问题。如果出现上面的错误,可稍候再试,或通知管理员([email protected])。

问:我想向 CVS 中增加新的目录,应该怎样做呢?
  答:假设你的 Home 目录在 D:\Home 下,本地文件存放在 D:\Home\cnpack下,而你在源码目录中新加了一个子目录 D:\Home\cnpack\Source\New。
  * 从 WinCVS 中选择 Create | Import module,选中新增加的目录。
  * 在 Import filter 窗口中设置文件类型,点 Continue。
  * 在 Import settings 对话框中,远程模块路径输入cnpack/Source/New在 Verdor tag、Release tag 中输入你的名字和发布标签,在下面输入注释,确认即可。
  * 完成导入工作后,将原来的 New 目录移到其它地方备份。
  * 从菜单中选择 Create | Checkout module,检出刚才导入的目录。
  * 好了,你可以开始工作了。

CNPACK开发中心