iOS开发使用SVN_解决冲突
推荐:
Mac安装SVN:http://www.jianshu.com/p/a27849bde1d3 作者:HonglingHe
推荐完成。
进入文章主题
在多人共同开发APP时,如果两个人同时修改某行代码,没有执行更新(svn update)就上传代码(svn commit),会出现冲突。
举例说明冲突产生情况,假设有两名开发者
开发者A 账号:cgg 密码:cgg123
开发者B 账号:sxm 密码:sxm123
开发者A修改了"viewcontroller.m"文件第一行://添加ABC; 然后上传代码(svn commit)
开发者B修改了"viewcontroller.m"文件第一行://上传了其他字符串;然后上传代码(svn commit);
这时开发者B的终端就会显示:
第一行上传命令,最后一行错误信息模拟开发者B解决冲突
在终端,cd 到目标文件下,更新代码:
svn update然后就会显示:
在此界面可以选择解决问题的方案输入p:稍后解决,容开发者和开发者B商量,商量完怎么解决后面讲;
输入df:显示不同之处;
输入e:编辑文件;
输入mc,选择开发者B的代码作为最新版本;
输入tc:选择开发者A的代码作为最新版本;
输入s:显示所有选项
如果一时无法决定选择开发者A或者开发者B的代码作为最新版本而输入p之后,接下来怎么办呢?
解决冲突第二阶段
输入p之后。打开本地代码文件夹,会发现多了三个文件:ViewController.m.mine、ViewController.m.r6、ViewController.m.r7。如下图:
多了三个文件.m.mine 是仿开发者A编辑的冲突文件
.m.r6 是仿开发者A、开发者B为编辑之前的冲突文件
.m.r7 是仿开发者B编辑的冲突文件
通过以上三个文件可以了解三者之间的区别。
然后,打开冲突文件“ViewController.m”。发现代码变成这样:
都能看出来这是什么意思吧然后修改正这样:
这就是最终要上传的代码修改完后,保存关闭。
在终端
svn resolved working 冲突文件路径冲突到此解决
原来出现的三个文件.m.mine 、 .m.r6 、 .m.r7 被删除了。以修改过的冲突文件最为最新版本的文件。