iOS Developer编程学习

iOS开发使用SVN_解决冲突

2016-11-06  本文已影响2646人  天海相接

推荐:

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   被删除了。以修改过的冲突文件最为最新版本的文件。

上一篇下一篇

猜你喜欢

热点阅读