Xcode SCM should provide more robust tool for resolving file merge conflicts
| Originator: | me | ||
| Number: | rdar://22818402 | Date Originated: | 23-Sep-2015 |
| Status: | Open | Resolved: | |
| Product: | Developer Tools | Product Version: | Xcode 7 |
| Classification: | Feature (New) | Reproducible: | Sometimes |
Summary: The number one type of merge conflicts that I encounter are related to project files, Storyboards, or other plists. There are examples of using the built in git merge=union but this has caused issues for some people and doesn’t do a good enough job. Then there are projects like https://github.com/simonwagner/mergepbx that take further steps to achieve better results. It looks like it might work well but includes this caveat from the author: “This script needs knowledge about the structure of XCode's project. However, there doesn't seem to be any documentation (and I would be surprised if there were any). Luckily, the format of the project file is a plain text Plist, so reverse engineering the structure is rather easy.” It would be great if Xcode had built in tools that could easily integrate with git and other relevant SCM systems to address these kinds of issues. Steps to Reproduce: Create several different git branches that each do something that causes changes to project files, Storyboards, or other plists. Then try to merge these branches together. Expected Results: The branches should merge neatly with the union of all changes to project files, Storyboards, or other plists. Actual Results: Merge conflicts are caused and it is necessary to manually edit the project files, Storyboards, or other plists to resolve these conflicts. Version: Xcode 7 Notes: Configuration: Attachments:
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!