美文网首页iOS Developer
一个用于协助解决合并冲突的 Xcode利器

一个用于协助解决合并冲突的 Xcode利器

作者: liaojinxing | 来源:发表于2018-03-13 18:30 被阅读39次

痛苦的开端

近期手头上的项目是fork过来,经常需要merge上游的改动。由于上下游都有很多人同时在开发,因此每次merge都会有很多冲突,面对数十甚至数百个冲突,解决冲突是一件极其消耗脑细胞的事情。

解决冲突无外乎这几种方式:

  • 采用上游的改动
  • 采用本地的改动
  • 同时采用上游和本地的改动
  • 自定义的改动

对于前三种方式,很多IDE,例如Intelij IDEA,Visual Studio, Android Studio都有协助工具:


idea.png

唯独Xcode没有!!!Shame on you!

自己动手,丰衣足食

好在Xcode 8之后,开发者可以开发Xcode Source Editor Extension,可以获取及修改当前文件的内容。

You build extensions to the source editor in Xcode using XcodeKit. Source editor extensions can read and modify the contents of a source file, as well as read and modify the current text selection within the editor.

来看一个冲突的示例:

<<<<<<< HEAD
Your changes
=======
Their changes
>>>>>>> their_branch

实现起来也很简单,获取当前光标所在位置,如果被"<<<<<<< HEAD" 和 ">>>>>>>"所包围,即可识别为处于冲突区域。
插件提供三种选择:"Accept Theirs", "Accept Yours", "Keep Both",对应上述常见冲突解决方案。针对不同选择,删除相应代码即可。
成品如下:


3.gif

独乐乐不如众乐乐

代码已开源,https://github.com/liaojinxing/ConflictResolver
已实现功能:

  • 支持三个选项,'Accept Theirs', 'Accept Yours', 和'Keep Both',一键解决冲突,无需手动删除代码
  • 支持跳转到下一个冲突的地方
  • 支持 git diff3 style

带着这个工具,开始愉快的merge旅程吧!

相关文章

  • 一个用于协助解决合并冲突的 Xcode利器

    痛苦的开端 近期手头上的项目是fork过来,经常需要merge上游的改动。由于上下游都有很多人同时在开发,因此每次...

  • fatal: cannot do a partial commi

    分支合并代码,解决冲突后,修改代码commit时Xcode提示:fatal: cannot do a partia...

  • fatal: cannot do a partial commi

    分支合并代码,解决冲突后,修改代码commit时Xcode提示:fatal: cannot do a partia...

  • (4.2) git分支管理-解决冲突

    小结 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。 解决冲突就是把Git合并失败...

  • (二)

    转自:Android Studio、Git 解决合并冲突Android Studio、Git 解决合并冲突Andr...

  • project.pbxproj 文件格式损坏

    1 合并代码时,project.pbxproj 有冲突,解决冲突即可。2 合并时,project.pbxpro...

  • git/svn/gradle配置签名文件/Android性能优化

    一.git、svn1)冲突怎么解决? 答:在开发的时候,冲突一般分为两种,上传冲突 与 合并冲突, 合并冲突的解...

  • cocoa pods 多人合作冲突

    问题 1.由于我们是多人协助开发,通过通过合并代码后,使用pod install 的时候,出现?问题 由于合并冲突...

  • Git分支

    分支简介 分支创建 分支切换 分支新建与合并 新建分支 分支的合并 分支删除 遇到冲突时的分支合并 解决冲突之后,...

  • Git高级合并

    高级合并 我们在遇到冲突时的分支合并介绍了解决合并冲突的一些基础知识, 对于更复杂的冲突,Git 提供了几个工具来...

网友评论

    本文标题:一个用于协助解决合并冲突的 Xcode利器

    本文链接:https://www.haomeiwen.com/subject/fitifftx.html