svn 命令行怎么解决冲突

svn 命令行怎么解决冲突,第1张

基本思路是首先使用svn resolved filename 放弃对文件的修改,然后就可以提交上去了。
然后svn rm testlog删除掉这个文件。然后再次提交,如果其他人更新的也同样处理。
1svn ci -m "update"
svn: Commit failed (details follow):
svn: Aborting commit: 'testlog' remains in conflict
2使用svn resolved testlog
3svn ci -m "update"
这个时候应该可以提交了
4svn rm testlog
删除掉这个文件
5svn ci -m "update"
再次提交
这个时候服务器上就没有这个文件了。
在其他的服务器终端上如果遇到这个问题的时候重复这个 *** 作。

必须更新,然后再提交。如果你们修改的是同一个文件那么需要编辑冲突。你为什么要强行提交?如果你是需要将你现在修改的覆盖之前的修改,那么你大可更新后会提示你编辑冲突时直接标记为解决然后就可以提交了。如果你又想回到上个版本还能查看svn本地历史记录,在回到上个版本。

一、我给你说一下原理吧:
假如DBAccessUtilsjava你在修改test方法,而你同事也在修改test方法,但是他先commit了,而你想commit的时候,commit不了,然后你不假思索就update下来了,然后就会出现4个文件分别为:
DBAccessUtilsjava、
DBAccessUtilsjavamine、
DBAccessUtilsjavar2129、
DBAccessUtilsjavar2130。
mine是你的修改的版本,里面是保存的你修改的内容
r2129是你做更新 *** 作以前的版本,你是在这个版本的基础上做的修改
r2130是版本库中的最新版本,这里有别人的修改,而就是这个修改和你的修改冲突了
DBAccessUtilsjava就是融合了你修改的内容和服务器最新的修改内容
二、说了那么多,现在说说怎么解决冲突吧:
我们打开DBAccessUtilsjava,你会看到由小于号、等于号和大于号串组成的三个部分,其中小于号和等号之间的内容是你的修改,而等号和大于号之间的修改是其他人的修改,在明确了冲突的原因之后,我们已经知道怎么修改了,两个人的修改都是需要保留的。
OK,那就保留所有的修改,删除掉<、=和>,最后就把冲突解决了。
注意:小于号、等于号和大于号串是冲突标记,并不是冲突的数据,你一定要确定这些内容在下次提交之前得到删除。
三、如何降低冲突解决的复杂度:
1、当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。
2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
3、养成良好的使用习惯,使用SVN时每次都是先资源同步,看看有没有冲突,再做相应的提交或更新。
4、每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。

1我个人认为不管是提交、更新、编辑冲突第一个 *** 作都应该是和资源库进行同步,项目右键==》Team==>于资源库同步(这里需要注意的是你的开发环境中已经正常集成了SVN,可以直接在myeclipse中使用)2与SVN资源库同步后,就会在界面上显示如你当前的项目需要更新多少文件、提交多少文件。3到这里我们知道了情况后就是 *** 作顺序的问题,我个人建议先更新没有冲突的文件到本地,再编辑冲突文件、最后测试确认无问题再提交到SVN上。在这个界面上更新和提交的 *** 作我就不详细说明了,我这里想详细说说编辑冲突。4在上面的中需要重点说明的是2和3编辑冲突是会出现蓝色和红色的对比框。蓝色的可以点击中间的小正方形从服务器移动到本地,红色的移动后还得手动修改成一样的,要不然还会出现冲突。这些事做完了保存一下,要保证你本地的已经有的部分和服务器上一致,这次修改或者需要提交的是服务器上没有的。到这里还要像图3那样标记一下为合并。5最后一步其实就是提交,但是我建议在提交之前还是本地运行一下看看有没有运行错误、报错之类的。确认没有问题后就回到那个资源库对比界面选择提交。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13373876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存