svn如何解决冲突
首先我们明白,当文件正常时,
1、本地是最新文件,修改文件,变红,提交,提交成功,本地是新最新,成功提交远程,远程也从最新变成新最新,同步。
2、本地是最新文件,更新文件,从远程获取新的文件,覆盖本地,本地是新最新,同步。
从上我们可以看到,正常情况下用新最新的文件代替最新的文件是正常同步的。
即同步的意思就是正常的,用新最新代替最新。
需要注意的是,这里其实有3个文件,修改前文件是版本1,修改后文件工作文件,远程文件时版本1,因为修改前后不同,所以变红,提交前,修改前和远程是一样的,所以提交成功,大家都是版本2,修改前文件成为版本2。
而更新时,本地存在版本2,远程版本3,中间是紧密无间隔的,所以能直接覆盖,本地拥有了版本3,工作版本也成为版本3
我们再看冲突的例子。
一个文件内容是1,远程文件,A客户,B客户,3地是一样的。
A修改为2提交。 A2 远程2, A和远程一致。
B修改为3,不论是提交和更新 都会提示冲突。
因为修改前为版本1,远程为版本2,工作版本和另外都不一样,本意是升级版本2,但工作工作版本和远程版本不一样,必须选择其一,或者解决冲突合并。
所谓的解决冲突,不是另外备份工作版本,然后删除冲突文件,再然后更新远程到本地,然后再用备份的工作版本提交到远程。
又或者,手工对比版本2和工作版本,不是这样的,但已经很接近了。
所谓的解决冲突是有套程序已经完成一切准备工作,你选择保留哪一部分就好,并确定冲突已解决