I know. xcdatamodel actually a directory with two files ( elementsand layout).
I know that two files are binary plists and can convert them to XML plists using plutil -convert xml1(although relying on this may be "unreasonable", this is great for development: I expect the build tools to compile / optimize / regardless by overlaying them on the device and assuming that Xcode does not lose the ability to read old files, I can always convert them back to binary1).
My two problems:
- Xcode modifies both files if you are moving an entity (I would expect it to just change
layout), which is completely useless for several developers. - There seems to be no easy way to merge changes (even the XML-plist format is a serialized NSKeyedArchiver object, so text merging will not work).
- There seems to be no easy way to see what has changed (maybe I could convert them to both XML and diff ... ugh).
Has anyone found a solution for any of them? Can I force Xcode to save as XML arrays, or can Subversion convert them to XML arrays when committed? Is the difference even vaguely reasonable? Is there an external tool that runs diff.xcdatamodel diff?
EDIT: SCM , " X"; , - , , . svn:needs-lock , , , Xcode chmod -w elements layout ( .xcdatamodel , Xcode , svn ).