**********************************************************************
                           CnPack For Delphi
                   中国人自己的开放源码第三方开发包
                 (C)Copyright 2001-2016 CnPack 开发组
**********************************************************************

                       在 CnPack 开发中使用 CVS
                            Revision 1.3.0.1
                       =========================
                           作者：周劲羽
                           创建：2002.05.23
                           更新：2007.12.08

                           作废：2009.05.29


======================================================================
0. CVS 停用说明
======================================================================

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! 重要说明：
!
! CnPack CVS 已于 2009 年 5 月底迁移至 Google Code 的 Hosting 并启用了 
! SVN 服务，现有的 CVS/CVSTrac 已停止。本文中有关 CnPack CVS 地址的说明
! 也已经失效。
!
! 另外，2014年8月，CnPack 的代码又由 Google Code 迁移至 GitHub。
!
! 欲获得 CnPack 最新代码，烦请参考另一篇文档 CnPack GIT 使用说明。
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

该文档描述了在 CnPack 的开发中使用 CVS 仓库服务的方法。
要获得该文档的最新版本及相关内容，请访问 CnPack 开发网站：

http://www.cnpack.org

======================================================================
1. CVS 简介
======================================================================

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

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

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

======================================================================
2. 准备工作
======================================================================

原则上只有 CnPack 开发组开发成员才拥有帐号修改 CVS 中的文件，如果您还没
有，请与项目管理员(master@cnpack.org)联系。如果您只想从 CVS 中匿名下载最新
的代码和文档，这一步可以省略。

要在 Windows 环境下使用 CVS，我们需要以下工具：

  * TortoiseCVS
    http://download.cnpack.org/tools/TortoiseCVS.exe

或者：

  * WinCVS
    http://umn.dl.sourceforge.net/sourceforge/cvsgui/WinCvs120.zip

这是 WinCVS 1.20 稳定版。您也可以自行搜索下载较新的 1.3 等版本。

======================================================================
3. 匿名访问
======================================================================

TortoiseCVS 是集成在资源管理器中的，所有操作都在资源管理器中完成，非常
方便。

  * 安装完成，根据需要重启计算机。
  * 打开资源管理器，进入到保存代码的目录
  * 在文件列表区空白处点击右键，选择“CVS Check out”
  * 在弹出对的对话框中：
    - CVSROOT: 输入
      :pserver:anoncvs@www.cnpack.org:/var/cvshome/cnpack
    - Module（模块）: 输入
      cnpack
  * 点击“OK”，在弹出的对话框中：
    - 输入密码：
      anoncvs
  * 好了，如果没有意外，您现在可以获得一份最新的 CnPack 组件包的源代码了。
  * 如果需要 CnWizards 的源码包，可在模块名中输入 cnwizards，其余步骤同上。

如果使用 WinCVS，步骤和上面的类似：

  * 选择 Admin 菜单下的 Preference... 或直接按快捷键 Ctrl + F1
  * 在弹出的对话框的 General 页中：
    - Enter the CVSROOT: 输入
      :pserver:anoncvs@www.cnpack.org:/var/cvshome/cnpack
    - Authentication: 选择：
      "passwd" file on the cvs server
  * 点击 OK，选择 Admin 菜单下的 Login，输入密码。
  * 选择 Create 菜单下的 Checkout module
  * 在模块名中输入 cnpack
  * 好了，如果没有意外，您现在可以获得一份最新的 CnPack 组件包源代码了。
  * 如果需要 CnWizards 的源码包，可在模块名中输入 cnwizards，其余步骤同上。

（注意：编译 CnWizards 时同样需要 CnPack 组件包。）

在较高版本的 WinCVS 中，CVSROOT 不在Preference 中设置，而允许在做其他
操作比如登录、更新、提交时指定，请予以注意。
另外，为了加快传输速度，建议在 TortoiseCVS 的工具的设置中把“压缩值”
设为 9；WinCVS中是 Preference 菜单中 Globals 页中选中 “Use TCP/IP
Compression”，并把后面的值设成 9。

======================================================================
4. 用它来工作
======================================================================

完全以上面匿名访问的操作，不同之处是，在 CVSROOT 中输入：
:pserver:username@www.cnpack.org:/var/cvshome/cnpack
此处 username 为管理员分配给您的 CVS 用户名，密码使用登录密码。

关于 CVS 及 TortoiseCVS/WinCVS 的更多内容，参见：

http://www.redsaga.com/CVS_newbie_win32/
http://www.soforge.com/wiki
http://www.cvsgui.org/

======================================================================
5. CVS 协同工作的注意事项
======================================================================

CVS 在提交代码时需要填写提交的注释，CnPack 开发组使用统一格式的注释来
达到规范的目的，提交注释的格式如下：

符号 [模块名] 详细注释

其中，“符号”可以是 + # - * ! ^ 六个半角符号之一。解释如下：

+ 增加新功能。
# 新增加的功能，但还不完善，仅仅是开始。
- 删除旧的功能。
* 修正错误。
! 发现的问题，但仍未修正。
^ 计划要完成的功能。

例如：以下是两次提交（注意符号和中括号之间有一空格）：

+ [代码编辑器专家] 增加 ASCII 字符表功能。
* [公共单元] AssignPersistent 过程增加对方法类型的处理。

一次提交如果包括多方面的内容，也可以书写多行这样的注释，注意简练不重复。

======================================================================
6. 常见问题解答
======================================================================

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