Fel*_*xyz 33 xml git version-control xcode objective-c
合并分支(我使用git)时,Xcode项目文件(Project.xcodeproj/project.pbxproj)中经常会发生冲突.有时它很容易,但有时我最终会得到一个损坏的项目文件并且必须还原.在最坏的情况下,我必须通过拖动文件等在第二次提交中手动修复项目文件(可以用之前的方式压扁).
有没有人有关于如何处理大型和复杂文件(如Xcode项目文件)中的合并冲突的提示?
编辑 -一些相关的问题:
我应该使用merge = union将.pbxproj文件与git合并吗?
资源:
http://www.alphaworks.ibm.com/tech/xmldiffmerge
http://www2.informatik.hu-berlin.de/~obecker/XSLT/#merge
http://tdm.berlios.de/3dm/doc/thesis.pdf
http://www.cs.hut.fi/~ctl/3dm/
http://el4j.svn.sourceforge.net/viewvc/el4j/trunk/el4j/framework/modules/xml_merge/
将项目分解为更小,更逻辑的库/包.大规模的项目经常是糟糕设计的标志,比如太多或太大的对象.
设计易于重建 - 如果您编写的程序必须由多个工具或IDE构建,这也会有所帮助.我可以通过添加一个目录来重建我的许多"项目".
删除无关的构建阶段.示例:我已从所有项目中删除了"复制标题"构建阶段.通过include指令明确包含特定文件.
尽可能使用xcconfig文件.这也减少了更新构建时必须进行的更改次数.xcconfig文件定义了一组构建设置和支持#include
.当然,在定义要使用的xcconfig时,然后从每个项目和目标中删除(大多数)用户定义的设置.
对于目标依赖项:创建执行逻辑操作的目标,而不是物理操作.这通常是shell脚本目标或聚合目标.例如:"build dependencies","run all units tests","build all","clean all".那么你不必每一步都保持每一个依赖变化 - 就像使用引用一样.
为您的代码定义一个通用的"源树",为第三方源定义第二个.
有外部构建工具可用.这可能是您的选择(至少对您的某些目标而言).
此时,xcodeproj将更加简单.它将需要更少的更改,并且非常容易重建.您可以进一步了解这些概念,以进一步降低项目和构建的复杂性.
归档时间: |
|
查看次数: |
20627 次 |
最近记录: |