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

 

安装好CVS后(参考CVS并行版本管理.-安装和设置), 现在熟悉一下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
posted @ 2007-07-12 19:21  行进中开火  阅读(401)  评论(0编辑  收藏  举报