《SVN版本冲突解决详解》由会员分享,可在线阅读,更多相关《SVN版本冲突解决详解(9页珍藏版)》请在金锄头文库上搜索。
1、版本冲突原因:假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。版本冲突现象:冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件。假设文件名是kingtuns.txt对应的文件名
2、分别是:kingtuns.txt.r1O1kingtuns.txt.r102kingtuns.txt.minekingtuns.txt。同时在目标文件中标记来自不同用户的更改。版本冲突解决:场景:I*q喘匪qp宜件養77T*E,1、现在A、B两个用户都更新kingtuns.txt文件到本地。兀出即44收專00亍fH:、gfkz*,”*八l*,EJ创建一V爭变井*7茁整心Ft典ttil2、文档中原始文件内容如下:3、A用户修改文件,添加内容“A用户修改内容”完成后提交到服务器4、B用户修改文件,添加内容“B用户修改内容”完成后提交到服务器文棒mid)幡武穆not?fdngtusnS件廨贻內容B用
3、户提交更新至服务器时提示如下:OBvtnlanferredr0ftw忙倒and2jetorcHdjThtoperAbonfmed.0rrusTiec1ETTfirErrorActonMwlitdPaffiiwwtype刃琨户幅改文件内容D:Tgss.fedH交刻個节SOP;:文秣直目量gtsta巳曜过B!;11齋Thesb伽mrnokxeedoernetcenesgondtoteresouraflwtftwiKtth*rrqLwbedyer曲outofdate(ndstobtuodvted.orUierequestedwwnrenurunrnirthantfwismcUnrwifrMtJflt
4、heB用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行svnresolved(解决),然后在签入到版本库。在冲突解决之后,需要使用svnresolved(解决)来告诉subversion冲突解决,这样才能提交更新。解决冲突有三种选择:A、放弃自己的更新,使用svnrevert(回滚),然后提交。在这种方式下不需要使用svnresolved(解决)B、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolvedfilename并提交(选择文件一右键一解决)。C、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件
5、。然后执行resolvedfilename来解除冲突,最后提交。解决步骤如下:1、在当前目录下执行“update”(更新)操作ActenPdtiiKnitRtpevag:L8omgrOreorwxrfll&ercn廿第le.5h昭.Cmftcbtd:12、在冲突的文件上(选中文件-右键菜单一TortoiseSVNEditconflicts(解决冲突),出现如下窗口Theirs窗口为服务器上当前最新版本Mine窗口为本地修改后的版本Merged窗口为合并后的文件内容显示3、如果要使用服务器版本,在Theirs窗口选中差异内容,右键,选择Usethistextblock(使用这段文本块)。同理如果
6、要使用本地版本,在协商后,在Mine窗口右键,选择Usethistextblock(使用这段文本块)。4、修改完成后,保存kingtuns.txt文件内容。5、在B用户的冲突目录下,选中文件-右键菜单一TortoiseSVNResolved(解决)。会列出冲突的文件列表,如果确认已经解决,点OK。6、冲突解决7、提交解决冲突后的文件。yanhi亠CiihbiITortmFlnishtrir如何降低冲突解决的复杂度:1当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。