CVS并行版本管理.-冲突和合并
安装好CVS后(参考CVS并行版本管理.-安装和设置), 现在熟悉一下CVS的基本概念
现在假设CVS服务器上有一文件test.c, 版本是1.1
另一个人的修改如下, 并且已经向CvsServer提交, CVS服务器上文件版本变为1.2
我的修改是
我的本地文件test.c被复制一个备份.#test.c.1.1而test.c则变成如下
另一个人也更新了一下, 也看到了printf("我");这一行
接下来修改不同的行, 看看有什么不同
另一个人的修改如下, 并且已经向CvsServer提交, CVS服务器上文件版本变为1.4
我的修改是
现在假设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