vcL*_*wei 62 svn iphone xcode conflict
我们团队中有两名成员.我们使用Xcode的SCM(使用SVN)来管理我们的源代码文件.
我们都将文件添加到Xcode项目中.他已经致力于SVN服务器.当我更新时,Xcode发现project.pbxproj文件中存在冲突.然后我选择退出Xcode并手动合并冲突.然后我开始编辑我的project.pbxproj,合并我们的更改.实际上我不知道Xcode如何管理文件,我只是添加了一些文件,我的project.pbxproj文件没有.当我完成时,我的项目无法打开.我猜是因为project.pbxproj文件无法通过手动编辑.
所以,我想知道,当你发现这个问题时,project.pbxproj文件有冲突,如何解决呢?
谢谢!
Ken*_*ner 132
我使用git但是我们看到同样的问题 - 如果两个人添加文件就会发生合并冲突.
通常编辑很容易.只需使用文本编辑器进入project.pbxproj文件,然后查找合并冲突部分 - 通常会标记为:
>>>>>>>
Stuff 1
======
Stuff 2
<<<<<<<<
Run Code Online (Sandbox Code Playgroud)
在99%的Xcode项目合并冲突情况下,你只想接受合并的两面(因为两个人添加了不同的文件) - 所以你只需删除合并标记,在上面的情况下最终会像:
Stuff 1
Stuff 2
Run Code Online (Sandbox Code Playgroud)
就像我说的,这在大多数情况下都很有用.如果完成后Xcode不会读取项目文件,只需获取最新的未合并版本并再次手动添加文件.
此解决方案仅适用于git,但您可以将.gitattributes文件添加到项目中,然后在该文件中添加以下行:
*.pbxproj merge=union
这将告诉git保持合并的两面,这将是你想要的绝大部分时间.
要手动解决合并冲突,请检查UUID每个冲突项的 。
例子:
<<<<<<< HEAD
6B01C4B72008E70000A19171 /* ExistingFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B01C4B62008E70000A19171 /* ExistingFile.swift */; };
3F01C4B72008E70000889299 /* NewFileA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F01C4B72008E70000889299 /* NewFileA.swift */; };
=======
6B01C4B72008E70000A19171 /* ExistingFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B01C4B62008E70000A19171 /* ExistingFile.swift */; };
4DF01C4B72008E70000882ED /* NewFileB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF01C4B72008E70000882ED /* NewFileB.swift */; };
>>>>>>> branch_to_merge
Run Code Online (Sandbox Code Playgroud)
检查每个 UUID:
ExistingFile.swiftNewFileA.swift和NewFileB.swiftproject.pbxproj文件中找到一个事件,我会认为它是一个人工制品并且可以安全地删除它。结果将是:
6B01C4B72008E70000A19171 /* ExistingFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B01C4B62008E70000A19171 /* ExistingFile.swift */; };
3F01C4B72008E70000889299 /* NewFileA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F01C4B72008E70000889299 /* NewFileA.swift */; };
4DF01C4B72008E70000882ED /* NewFileB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF01C4B72008E70000882ED /* NewFileB.swift */; };
Run Code Online (Sandbox Code Playgroud)
注意:我不建议添加*.pbxproj merge=union到.gitattribues文件以基本上忽略合并冲突,因为除非有复杂的脚本为您执行此操作,否则应始终手动检查冲突合并。
| 归档时间: |
|
| 查看次数: |
70992 次 |
| 最近记录: |