simonwagner / mergepbx

script for merging XCode project files in git
GNU General Public License v3.0
1.04k stars 46 forks source link

Fix #11: Add PBXHeadersBuildPhase and PBXHeadersBuildPhaseMerger3. #12

Closed ncalexan closed 9 years ago

ncalexan commented 9 years ago

Hi @simonwagner: thanks for the fast reponse. Unfortunately adding just the 3-way merge class quiets the error but does not appear to correctly merge. Here's a commit that tries to handle the section explicitly. It doesn't work for my (complicated) rebase -- it fails with a key error looking up some hex string identifier. I don't have clean test data for this, so I can't say if your change works for simpler cases, or if my additional changes address the issue, or if there's more to be done :(

simonwagner commented 9 years ago

Hm, your patches look good (better than my small stupid fix).

You can add --debug to the merge driver configuration to start a pdb session when the key error happens. That should make it easier to debug.

I would take a guess and assume that the key error is caused by looking up a (missing) object reference in PBXProjFile._objects. That can happen if there is a file reference (e.g. fileRef = 060EFCF018A5AC930031B954) that has no matching entry in the objects dictionary of the project file.

If it is possible, you can send the project files to redacted (add --dump FILE to the merge driver configuration to create a ZIP file that contains the project files that are used in the merge) and I will take a look at the files. (But it might take until tomorrow, it's already 11:30pm over here in Europe.)