SVN冲突原因与冲突解决

来源:互联网 发布:603881数据港行情 编辑:程序博客网 时间:2024/05/22 06:17

1.冲突原因

假如小张和小王同时从SVN服务器上更新了版本号为100的文件SVNTest.txt文件

这时,小张和小王都在本地拥有一个版本号为100的SVNTest.txt文件。

然后,小张对他的版本号为100的SVNTest.txt进行修改,修改后提交到SVN服务器上,此时SVN服务器上的SVNTest.txt版本号变为101

同时,小王对他的版本号为100的SVNTest.txt进行修改,假定其未提交的版本号为100+(这里,“100+"表示是在版本号为”100”的基础上做的修改,也就是在本地将文件SVNTest.txt的版本从服务器上更新到版本100后所做的修改),小王在小张提交之后再提交,如果提交成功,就会用版本号为“100+”的文件去覆盖服务器上版本号为101的文件,这显然是不可行的,因为会把小张所做的修改全都覆盖掉。所以此时提交不会成功,于是就产生了所谓的“冲突”

只有提交101+,去覆盖服务器上的101时,才不会产生冲突。也就是说,只有当我们在当前服务器上的最新版本的基础上做修改时,提交才不会产生冲突。所以产生冲突时,通常会提示文件过时,是因为本地的文件不是最新版本的

在Cornerstone中,点击Update后,

标记为M(Modified)的文件版本为100+,服务器上最新版本为100

标记为C(Conflicted)的文件版本为100+,服务器上最新版本为101甚至更高。


//Compare with BASE是用100+与100比较

//Compare with HEAD是用100+与服务器上最新版本比较,如果是M的话,服务器上最新版本就是100与BASE相同。如果是C的话,服务器上最新版本就是101甚至更高

//这里的最新版本与其说是最新版本,不如说是上一次更新时服务器上的的版本。因为我们并不是每时每刻都在更新的。

2.冲突解决

不能用100+的版本去覆盖101的版本,因为不能随意地覆盖别人的修改。这就需要小张和小王进行协商:小张和小王两个人都做了修改,这些修改哪些要保留,哪些要删除?

等协商完毕后,


0 0
原创粉丝点击