问题是当你从第一个数据模型开始时,Xcode 会创建一个文件,比如说:myProject.xcdatamodeld
假设您通过菜单Editor > Add Model Version创建了名为 _myProject_v2_ 的模型的第二个版本。Xcode 实际做的是:它创建一个文件夹,命名为您的原始模型,并将原始模型复制到一个子文件夹中,然后创建第二个子文件夹,其中包含一个包含新版本的文件:
myProject.xcdatamodeld
|
+- myProject.xcdatamodel
| |
| +- contents (a file containing the actual model)
|
+- myProject_v2.xcdatamodel
|
+- contents (a file containing the 2nd version of the model)
所以 SVN 感到困惑,因为他认为是一个文件(原始 myProject.xcdatamodeld)并且存储在 SVN 中,现在是一个文件夹,带有子文件夹。而且,这些由 XCode 创建的子文件夹最终会获得它们隐藏的.svn文件夹。所以我的解决方案是:
- 从 SVN 中删除文件夹myProject.xcdatamodeld
- 做其余的提交
- 关闭 Xcode 并重命名您的文件夹项目:eh: _projectFolder_old_
- 对项目进行检查,希望不会有myProject.xcdatamodeld
- 在 xcode 中,创建一个名为myProject的虚假数据模型。不要在模型中创建任何东西,它是无用的
- 版本它,编辑器>添加模型版本
- 关闭 XCode
- 在 Finder 中打开myProject.xcdatamodeld中的旧数据模型(鼠标右键,显示包内容)
- 在 Finder 中打开您的原始模型并将内容文件从 *projectFolder_old/myProject.xcdatamodeld/myProject.xcdatamodel* 复制到新项目:projectFolder/myProject.xcdatamodeld/myProject.xcdatamodel (您将需要执行几个Show Package Contents
- 重复第二个版本,将内容文件从 *projectFolder_old/myProject.xcdatamodeld/myProject_v2.xcdatamodel* 复制到新项目:*projectFolder/myProject.xcdatamodeld/myProject_v2.xcdatamodel*
- 重新打开 Xcode 并检查一切是否正确
- 添加到 svn 文件,如果尚未添加,并执行提交