CVS学习笔记
CVS服务器配置:
1. 安装cvsnt for windows版安装程序。
2. 设置PATH到cvs.exe目录,这很重要。
3. 设置CVS仓库,在控制面板中,打开CVS for NT,在Repositories页面,建立仓库。
4.在操作系统共享仓库文件夹,且设置可写权限。
5. 建立用户,CVS没有独立用户管理,采用操作系统用户权限,直接建立操作系统用户就可以。
CVS客户端的配置 :
1. 安装TortoiseCVS客户端程序。
2. CVS登录协议:pserver 服务器:10.212.195.10 端口:(默认端口可不用填写)仓库文件夹:/cvsroot 用户名:user1 模块:FooBar (可以通过“获取列表”,获得所以模块的名称的选择列表)
3.安装文件冲突比较工具,建议使用WinMerge
TortoiseCVS使用技巧
1. CVS创建新模块――在CVS目录中创建个目录,目录下的内容并不会自动加入到CVS仓库中,需要通过添加内容加入到CVS仓库中。
2. CVS添加内容――获取当前目录下(包括子目录)的文件/文件夹,添加完成后,需要进行提交操作(在目录操作,该目录下所以子目录及文件会批量提交)。
3. CVS提交――所有需要更新CVS仓库的命令都需要提交确认。
4. CVS更新――获取当前目录下(包括子目录)的最新版本,如果有冲突会保留本地版本。
5. 解决冲突――在WinMerge右侧窗体中进行文件合并编辑。冲突解决后提交到CVS。
6. 从CVS中获取历史版本,在打开文件的历史窗口,选中要恢复的历史版本,点击“保存此版本为”按钮,然后双击本地的同名文件,历史版本获取到本地,如果想更新到CVS中,进行提交操作。
7. CVS文件夹刷新――文件夹状态不自动刷新,需要手工刷新。
8. CVS删除文件――选中要删除的文件,点击CVS删除,然后要在该文件的父文件夹上进行提交操作。(删除操作也会遇到冲突问题,避免方法在删除文件前先进行版本同步)。
9. CVS的Lock/Unlock状态监视器――在创建模块的时候,勾选中选项菜单中的按只读方式取出文件,监视启动后,取出或者更新正在编辑的文件都将被创建为只读的。
10. CVS编辑――获得文件的写权限。(注意,在创建模块时没有开启Lock/Unlock状态监视器则更改编辑状态作用不明显)。选择 CVS编辑 菜单,这个菜单会由于文本文件或者二进制文件而稍微不同。对于二进制文件,例如DOC,TCVS完成更新操作并且检测是否有别的用户也在编辑它。如果有,那么你将不能编辑它,如果是文本文件例如.TXT/.CPP,即使有人在编辑,TCVS仍然允许你编辑它。
11. CVS取消编辑状态――是否想回复原有版本,这将丢失你所作的修改。(注意,在创建模块时没有开启Lock/Unlock状态监视器则更改编辑状态作用不明显)。
12. 标签――标签一般都是用在整个模块,以便将来这个模块的当前状态可以回溯。当标签名称输入之后,点击 确定,不像其他CVS操作,TAG标签立即在仓库生效,不需要再 提交。
13. 分支――分支包括(创建分支,获取分支,合并分支)。在一个软件项目周期中,分支是一个很有用的修改控制。例如,如果你已经推出了你的软件的第一个版本1.0,现在你已经在下一个版本2.0增加新功能。此时你的第一个版本发现了BUG,你的新版本的源代码正在开发阶段,推出稳定版本至少需要一个月的时间,因此无法基于最新版本推出一个修正原有BUG的版本。创建分支和获取分支和标签操作类似(注意,合并分支在提交后才会更新到CVS仓库中)。
14. CVS批注――如果一个项目突然被中断了,准确找出谁是这个错误修改的责任人是非常重要的,这就是CVS注释的用途。在文件的每一行,对话框显示,每一行的修改原因涉及版本,本行的作者,修改时间日期,本行的当前内容。
---------------------------------------
TCVS和Visual Source Safe™ (VSS) 很多地方不同. 最明显得一点是TCVS不需要锁定正在处理的文件,而VSS默认锁定t.实际上, CVS 文档鼓励用户不使用文件锁定. 几个用户同时修改同一个文件的可能性是很小的, CVS 可以正常的合并他们的冲突. 如果两个或几个人修改了文件的相同行, TortoiseCVS 将包括冲突, 在文件中插入指示, 让开发员决定如何解决. 这种冲突非常稀少, 通常只是出现在缺少沟通的情况下导致如此结果 (例如两个人试图解决同一个问题). 另外一个重要的不同,VSS 是显示服务器视图, TortoiseCVS显示客户端试题. 从实际上来说, 不像 VSS, TortoiseCVS不会主动通知你仓库的变化,除非你自己进行更新, 或者询问一些文件的状态. TortoiseCVS包括的修改状态只是反应你最后一个取出、更新、提交之后的修改。
1. 安装cvsnt for windows版安装程序。
2. 设置PATH到cvs.exe目录,这很重要。
3. 设置CVS仓库,在控制面板中,打开CVS for NT,在Repositories页面,建立仓库。
4.在操作系统共享仓库文件夹,且设置可写权限。
5. 建立用户,CVS没有独立用户管理,采用操作系统用户权限,直接建立操作系统用户就可以。
CVS客户端的配置 :
1. 安装TortoiseCVS客户端程序。
2. CVS登录协议:pserver 服务器:10.212.195.10 端口:(默认端口可不用填写)仓库文件夹:/cvsroot 用户名:user1 模块:FooBar (可以通过“获取列表”,获得所以模块的名称的选择列表)
3.安装文件冲突比较工具,建议使用WinMerge
TortoiseCVS使用技巧
1. CVS创建新模块――在CVS目录中创建个目录,目录下的内容并不会自动加入到CVS仓库中,需要通过添加内容加入到CVS仓库中。
2. CVS添加内容――获取当前目录下(包括子目录)的文件/文件夹,添加完成后,需要进行提交操作(在目录操作,该目录下所以子目录及文件会批量提交)。
3. CVS提交――所有需要更新CVS仓库的命令都需要提交确认。
4. CVS更新――获取当前目录下(包括子目录)的最新版本,如果有冲突会保留本地版本。
5. 解决冲突――在WinMerge右侧窗体中进行文件合并编辑。冲突解决后提交到CVS。
6. 从CVS中获取历史版本,在打开文件的历史窗口,选中要恢复的历史版本,点击“保存此版本为”按钮,然后双击本地的同名文件,历史版本获取到本地,如果想更新到CVS中,进行提交操作。
7. CVS文件夹刷新――文件夹状态不自动刷新,需要手工刷新。
8. CVS删除文件――选中要删除的文件,点击CVS删除,然后要在该文件的父文件夹上进行提交操作。(删除操作也会遇到冲突问题,避免方法在删除文件前先进行版本同步)。
9. CVS的Lock/Unlock状态监视器――在创建模块的时候,勾选中选项菜单中的按只读方式取出文件,监视启动后,取出或者更新正在编辑的文件都将被创建为只读的。
10. CVS编辑――获得文件的写权限。(注意,在创建模块时没有开启Lock/Unlock状态监视器则更改编辑状态作用不明显)。选择 CVS编辑 菜单,这个菜单会由于文本文件或者二进制文件而稍微不同。对于二进制文件,例如DOC,TCVS完成更新操作并且检测是否有别的用户也在编辑它。如果有,那么你将不能编辑它,如果是文本文件例如.TXT/.CPP,即使有人在编辑,TCVS仍然允许你编辑它。
11. CVS取消编辑状态――是否想回复原有版本,这将丢失你所作的修改。(注意,在创建模块时没有开启Lock/Unlock状态监视器则更改编辑状态作用不明显)。
12. 标签――标签一般都是用在整个模块,以便将来这个模块的当前状态可以回溯。当标签名称输入之后,点击 确定,不像其他CVS操作,TAG标签立即在仓库生效,不需要再 提交。
13. 分支――分支包括(创建分支,获取分支,合并分支)。在一个软件项目周期中,分支是一个很有用的修改控制。例如,如果你已经推出了你的软件的第一个版本1.0,现在你已经在下一个版本2.0增加新功能。此时你的第一个版本发现了BUG,你的新版本的源代码正在开发阶段,推出稳定版本至少需要一个月的时间,因此无法基于最新版本推出一个修正原有BUG的版本。创建分支和获取分支和标签操作类似(注意,合并分支在提交后才会更新到CVS仓库中)。
14. CVS批注――如果一个项目突然被中断了,准确找出谁是这个错误修改的责任人是非常重要的,这就是CVS注释的用途。在文件的每一行,对话框显示,每一行的修改原因涉及版本,本行的作者,修改时间日期,本行的当前内容。
---------------------------------------
TCVS和Visual Source Safe™ (VSS) 很多地方不同. 最明显得一点是TCVS不需要锁定正在处理的文件,而VSS默认锁定t.实际上, CVS 文档鼓励用户不使用文件锁定. 几个用户同时修改同一个文件的可能性是很小的, CVS 可以正常的合并他们的冲突. 如果两个或几个人修改了文件的相同行, TortoiseCVS 将包括冲突, 在文件中插入指示, 让开发员决定如何解决. 这种冲突非常稀少, 通常只是出现在缺少沟通的情况下导致如此结果 (例如两个人试图解决同一个问题). 另外一个重要的不同,VSS 是显示服务器视图, TortoiseCVS显示客户端试题. 从实际上来说, 不像 VSS, TortoiseCVS不会主动通知你仓库的变化,除非你自己进行更新, 或者询问一些文件的状态. TortoiseCVS包括的修改状态只是反应你最后一个取出、更新、提交之后的修改。