project.pbxproj中的subversion冲突是否正常?

时间:2010-03-21 15:33:13

标签: iphone svn xcode

如果我将文件添加到我的项目中,并且我的同事将文件添加到他的项目中,并且我们都检查了我们的文件,我们是否应该发生冲突?处理这个问题的最佳方法是什么?

4 个答案:

答案 0 :(得分:5)

这种情况经常发生在我身上,我有一个shell脚本来修复这些事情 - 几乎所有时候合并冲突只是因为你和另一个人都在项目中添加了新文件,所以你只想保留两者合并的两面。在主项目目录(构建和Classes目录所在的位置)中运行此脚本,只要发生合并冲突,请转到XCode以确保它可以在您提交固定合并之前加载合并的项目!

请注意,我在git中使用它,您可能需要检查代码中的合并冲突标记,使用下面的字符来显示冲突部分(====是中间分隔符)。

mergeproj.sh

#!/bin/sh

projectfile=`find -d . -name 'project.pbxproj'`
projectdir=`echo *.xcodeproj`
projectfile="${projectdir}/project.pbxproj"
tempfile="${projectdir}/project.pbxproj.out"
savefile="${projectdir}/project.pbxproj.mergesave"

cat $projectfile | grep -v "<<<<<<< HEAD" | grep -v "=======" | grep -v "^>>>>>>> " > $tempfile
cp $projectfile $savefile
mv $tempfile $projectfile

答案 1 :(得分:3)

是的,这很常见。

我通常只是在文本编辑器中手动解决冲突;项目格式实际上并不难以阅读。如果更改很小(只添加或删除一些文件),您可以根据需要通过Xcode UI重新进行更改。

答案 2 :(得分:0)

是的,会有冲突。解决此问题的最佳方法是在TextMate等文本编辑器中打开.prxproj,然后使用>>>搜索这些行。只需删除svn合并内容(带箭头的行和告诉你它来自哪个分支的行)。然后保存文件并将其标记为已解决。你做完了!

答案 3 :(得分:0)

您可以使用XCode附带的FileMerge。您可以在Applications下的developer文件夹下找到它,然后在Utilities下找到它。

当您打开FileMerge时,拖动2个文件,您需要将一个文件比较左边,一个比较到右边。单击并选择指示差异的箭头,然后在右下角选择左,右或两者。

完成此操作后,执行另存为,并使用对原始文件名的更改保存文件。