软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试管理>>配置管理>>正文
Linux与Windows CVS服务器配置与使用(4)
文章出处:chinaitpower 作者:hrzhe  发布时间:2006-10-24

6、 修改之后把文件提交到CVS服务器

a)、只有一个用户对文件进行修改的情况

用自己喜欢的编辑器对checkout出来的文件进行修改,修改之后的文件在没有提交之前会是红色的,如下图example.h文件.

选中红色的文件example.h后右击选择“Commit Selection”选项,如果没有其它用户也对其进行修改并已经提交到CVS服务器上,一切正常的话将把example.h文件提交到CVS服务器并把图标恢复成原来的颜色。

b)、两个或两个以上的用户对同一文件的不同部分进行修改的情况

这种情况就是如用户A与用户B都checkout了文件example.h,内容如下:

int callby (int count)
  {
  printf("ExcelStor!\n");
  }
  void main(int argv,char *argc)
  {
  //added by my cvs
  printf("I am Cather\n");
  }
  int mainexample()
  {
  printf("OK\n");
  }

然后用户A修改成如下,并提交到CVS服务器(一般将正常提交):

int callby (int count)
  {//add
  printf("ExcelStor!\n");
  }
  void main(int argv,char *argc)
  {
  //added by my cvs
  printf("I am Cather\n");
  }
  int mainexample()
  {//add
  printf("OK\n");
  }

接着用户B修改成如下:

 int callby (int count)
  {//add
  printf("ExcelStor!\n");
  }
  void main(int argv,char *argc)
  {
  //modified
  printf("I am Cather\n");
  }
  int mainexample()
  {//add
  printf("OK\n");
  }

当用户B选择“Commit Selection”时将提示:

cvs server: Up-to-date check failed for `example.h'
  cvs [server aborted]: correct above errors first!

此时表明已经有用户对同一个文件example.h进行修改并提交到CVS服务器,这时要先选择“Update Selection”对本地example.h与CVS服务器上的example.h文件进行同步与合并,不用选中出现的任何选项,直接选择“OK”,这时将显示如下:

cvs -z9 update example.h (in directory C:\my cvs\STW\src\)
  RCS file: /home/cvsroot/STW/src/example.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  Merging differences between 1.5 and 1.6 into example.h
  M example.h 
  
  ***** CVS exited normally with code 0 *****

表明用户B与用户A的修改已经合并成功,同时文件example.h的图标也将变成红色,合并后的文件是存放在用户B的本地机上,为了更新到CVS服务器还必须选中example.h并右击选择“Commit Selection”才能把用户A与用户B的修改合并后的结果提交到CVS服务器上。注:M表示此文件已经被修改过。

c)、两个或两个以上的用户对同一个文件的相同部分进行修改的情况

这种情况就是如用户A与用户B都下载了文件example.h,内容如下:

void main(int argv,char *argc)
  {
  printf("I am Cather\n");
  }

然后用户A把文件修改成如下,并提交到CVS服务器(一般将正常提交):

void main(int argv,char *argc)
  {
  printf("I am Cather\n");
  printf("I am Pat\n");
  }

接着用户B又把文件修改成如下:

void main(int argv,char *argc)
  {
  printf("I am Cather\n");
  printf("I love you Cather\n");
  }

如果用户B这时选择“Commit Selection”准备把修改结果提交到CVS服务器,此时将显示如下的错误提示:

cvs -z9 commit -m "update in 11:20" example.h (in directory C:\my cvs\STW\src\)
  cvs server: Up-to-date check failed for `example.h'
  cvs [server aborted]: correct above errors first!
  
  ***** CVS exited normally with code 1 *****

表明用户B的修改与其它用户的修改冲突,这时要先选择“Update Selection”,将显示如下提示:

 cvs -z9 update example.h (in directory C:\my cvs\STW\src\)
  RCS file: /home/cvsroot/STW/src/example.h,v
  retrieving revision 1.9
  retrieving revision 1.10
  Merging differences between 1.9 and 1.10 into example.h
  rcsmerge: warning: conflicts during merge
  cvs server: conflicts found in example.h
  C example.h
  
  ***** CVS exited normally with code 0 *****

example.h前面的C表示与其它用户的修改有冲突,并且文件的图标会加显示一个“C”,双击example.h将显示example.h的内容,如下:

void main(int argv,char *argc)
  {
  printf("I am Yanxi\n");
  printf("I am Cather\n");
  <<<<<<< example.h
  printf("I love you Yanxi,too!\n"); //这部分为你的修改
  =======
  printf("I love you Cather!\n"); //这部分为其它用户的修改
  >>>>>>> 1.10
  }

这时你应该与用户A进行协商以决定最终要怎样修改。比如,可以修改成:

void main(int argv,char *argc)
  {
  printf("I am Yanxi\n");
  printf("I am Cather\n");
  printf("I love you Yanxi,too!\n"); //这部分为你的修改
  printf("I love you Cather!\n"); //这部分为其它用户的修改
  }

然后选择“Commit Selection”进行提交,将显示如下的提示信息:

cvs -z9 commit -m "update in 11:20" example.h (in directory C:\my cvs\STW\src\)
  Checking in example.h;
  /home/cvsroot/STW/src/example.h,v <-- example.h
  new revision: 1.11; previous revision: 1.10
  done
  
  ***** CVS exited normally with code 0 *****

表明用户A与用户的修改已经合并成功。这样,向CVS服务器提交文件所会遇到的问题也基本上就是这些,用户要根据所遇到的实际问题进行修改。

7、 向CVS服务器添加新文件

在本地添加文件后,要提交到服务端。先选中文件,然后点击“添加按钮”,添加文件后,再在右键菜单中选择提交命令“Commit Selection”即可。选中文件example.h.bak,因为example.h.bak当前不是CVS的文件,此时“添加按钮”将由不可选状态变成可选状态,所以Status中显示为“NonCvs file”,选择“添加按钮”之后example.h.bak图标将变成红色并增加了一个A字母,如下:

然后选中example.h.bak,右击,选择“Commit Selection”把文件example.h.bak提交到CVS服务器上而成为CVS的一个文件。

8、 结束语

来到这里,你基本上已经能为自己或公司配置一个实用的CVS服务器与WinCVS客户端,配合使用CVS进行系统开发或其它文档的版本管理与控制。

相关连接:
           Linux与Windows CVS服务器配置与使用(1)
           
Linux与Windows CVS服务器配置与使用(2)
           Linux与Windows CVS服务器配置与使用(3)

 


站内搜索
相关文章
◎Linux与Windows CVS服务器配置与使用(3)
◎Linux与Windows CVS服务器配置与使用(2)
◎Linux与Windows CVS服务器配置与使用(1)
◎cvs客户端大全
◎简述软件配置管理
◎如何配置软件测试环境
◎软件配置管理与SourceSafe使用指南
◎并行版本系统CVS简单教程
◎软件配置管理实施的若干问题研究
◎配置管理的流程
◎配置管理中的角色和分工
◎软件配置管理与SourceSafe使用指南
◎软件配置管理(SCM)简介
◎linux下面安装cvs的方法
◎软件配置管理与ClearCase
◎配置管理中人的因素
◎配置管理—实施软件质量管理的关键
◎软件配置管理基础
◎SCM 与垃圾清理工的比较
◎配置管理——实施软件质量管理的关键
◎统一变更管理的力量
◎解析本土化软件配置管理
◎统一变更管理的威力
◎第三代配置管理解决方案: 统一变更管理(UCM)
◎ClearCase LT 的使用心得(二)
◎ClearCase LT 的使用心得(一)
◎每日构造与冒烟测试
◎软件配置管理过程及其关键活动
◎大型本地化软件测试的配置管理
◎实战每晚构建(下)
◎实战每晚构建(中)
◎实战每晚构建(上)
◎VSS使用手册
◎软件配置管理:软件项目管理先行军
◎做好软件项目的配置管理
热门文章
◎VSS使用手册
◎软件配置管理与SourceSafe使用指南
◎软件配置管理过程及其关键活动
◎做好软件项目的配置管理
◎配置管理的流程
◎软件配置管理基础
◎软件配置管理(SCM)简介
◎每日构造与冒烟测试
◎软件配置管理与SourceSafe使用指南
◎并行版本系统CVS简单教程
◎实战每晚构建(上)
◎如何配置软件测试环境
◎软件配置管理与ClearCase
◎ClearCase LT 的使用心得(一)
◎配置管理中的角色和分工
◎linux下面安装cvs的方法
◎实战每晚构建(中)
◎软件配置管理:软件项目管理先行军
◎配置管理—实施软件质量管理的关键
◎第三代配置管理解决方案: 统一变更管理(UCM)
◎配置管理——实施软件质量管理的关键
◎ClearCase LT 的使用心得(二)
◎解析本土化软件配置管理
◎软件配置管理实施的若干问题研究
◎简述软件配置管理
◎配置管理中人的因素
◎大型本地化软件测试的配置管理
◎WinCVS与CVSNT简明使用手则(一)
◎软件配置管理工具Vss6.0实用指南(5)
◎软件配置管理工具 Vss 6.0实用指南(2)
◎实战每晚构建(下)
◎SCM 与垃圾清理工的比较
◎统一变更管理的力量
◎Linux与Windows CVS服务器配置与使用(1)
◎软件配置管理工具 Vss 6.0实用指南(1)
◎统一变更管理的威力
◎WinCVS与CVSNT简明使用手则(二)
◎cvs客户端大全
◎WinCVS与CVSNT简明使用手则(三)
◎WinCVS与CVSNT简明使用手则(四)
◎如何做大规模软件的配置管理
◎软件配置管理工具Vss6.0实用指南(3)
◎软件配置管理工具Vss6.0实用指南(4)
◎Linux与Windows CVS服务器配置与使用(3)
◎Linux与Windows CVS服务器配置与使用(2)
◎使用Subversion进行版本控制

Google提供的广告