Kin โ€” medicine for headache with .pbxproj merge

Petro Korienev ๐Ÿ‡บ๐Ÿ‡ฆ
2 min readJan 16, 2017

IMPORTANT: SUPPORT UKRAINE NOW ๐Ÿ‡บ๐Ÿ‡ฆ

Please, spend few minutes reading through the website:

https://supportukrainenow.org/

Your help can save lives today!

This is an article #1 of โ€œItโ€™s all about Toolsโ€ cycle. So,

Once upon a timeโ€ฆ Iโ€™ve found this one

We often do have a lot of fun with merge conflicts. Usually your SourceTree reports something like this:

With this happy scenario you get to merge of your pbxproj. Using different merge tools throughout my career I ended up with http://www.barebones.com/products/TextWrangler/ โ€” friendly and performant text editor.

However, the main problem is validation. And Kin fulfils requirement on validation of manual merge results ideally. My merge results lately:

What have I done so far? Just resolved four conflicts following my gut of how it should look. Restarting merge could be the option of wasting my time, however I do have kin.

su-macbook-2e23:some_dir petr$ cd path_to_project/
su-macbook-2e23:path_to_project petr$ kin
ANTLR runtime and generated code versions disagree: 4.6!=4.5.2
ANTLR runtime and generated code versions disagree: 4.6!=4.5.2
ERROR: line 4078:207 mismatched input 'wrapsLines' expecting '}'
ERROR: line 13742:4 mismatched input 'LastTestingUpgradeCheck' expecting 'LastUpgradeCheck'
ERROR: line 13743:4 mismatched input 'LastUpgradeCheck' expecting '}'

Just perfect, huh? Could I manually find errors on lines 4078 and 13743? I believe no.

Installation is simple, using pip โ€” Python package manager.

Usage is simple:

  1. Navigate to project dir
  2. type `kin`

Conflicts resolved, build successful time to have some ๐Ÿป

--

--