CVS并行版本管理.初学.2-冲突和合并

Posted on 2005-01-26 18:32 milula 阅读(...) 评论(...) 编辑 收藏

CVS并行版本管理.初学.2-冲突和合并

安装好CVS后(参考CVS并行版本管理.初学.1-安装和设置), 现在熟悉一下CVS的基本概念

现在假设CVS服务器上有一文件test.c, 版本是1.1

void foo { 
 printf(
" "); 
}

 

 

我和另一个人同时取出(check out)文件test.c到本地进行修改

另一个人的修改如下, 并且已经向CvsServer提交, CVS服务器上文件版本变为1.2

void foo { 
 printf("另一个人"); 
}

  我的修改是

void foo { 
 printf(""); 
}


 

因为服务器上已经有了新的版本, 这时我提交就会产生错误, 要先进行更新, 这次更新不同平时, 提示产生冲突, 需要做人工合并

我的本地文件test.c被复制一个备份.#test.c.1.1而test.c则变成如下

void foo { 
<<<<<<< test.c 
 printf(""); 
======= 
 printf("另一个人"); 
>>>>>>> 1.2 
}

 很明显上边的是我的程序, 下边是服务器版本的程序, 不同的地方被标志起来了, 进行修改然后删除那些标志, 程序如下

void foo { 
 printf("另一个人\n"); 
 printf(""); 
}

 然后再次提交, 提交成功, 服务器上文件版本变成1.3 

 另一个人也更新了一下, 也看到了printf("我");这一行


接下来修改不同的行, 看看有什么不同
另一个人的修改如下, 并且已经向CvsServer提交, CVS服务器上文件版本变为1.4
void foo { 
 printf(
"另一个人再次修改\n"); 
 printf(
""); 
}

 我的修改是

void foo { 
 printf(
"另一个人\n"); 
 printf(
"我再改"); 
}

 

 

因为服务器上已经有了新的版本, 这时我提交就会产生错误, 要先进行更新, 这次更新显示CVS自动把文件合并了, 如下

void foo { 
 printf(
"另一个人再次修改\n"); 
 printf(
"我再改"); 
}

 然后再次提交, 提交成功, 服务器上文件版本变成1.5 


--by milula

相关
CVS并行版本管理.初学.1-安装和设置