Subversion,xcode和project.pbxproj的问题

时间:2010-07-20 11:52:20

标签: xcode version-control

我们使用subversion来跟踪我们的代码,只是在我们之间共享代码。但是,当我们在下次提交之前同时添加或删除文件时遇到问题。似乎每当我们搞乱群组&项目包下的文件,project.pbxproj将被修改,而subversion无法解决这个问题。结果,项目无法打开。

我的猜测是project.pbxproj会跟踪组和文件的排列方式。如何在Subversion下完成这项工作?它是一个文本文件,但不知何故它似乎没有被视为这样。

2 个答案:

答案 0 :(得分:1)

首先,“Project.pbxproj”是一种跟踪XCode包更新的文件,例如添加,删除,移动的任何新文件。

因此,在提交源代码时必须提交此文件。

如果您在更新后无法打开项目,那是因为您的“Project.pbxproj”文件与之前的提交有冲突。所以你必须通过打开和解决问题来解决这个问题。编辑它。

通常当发生冲突时,SVN会添加3个额外的文件。

  1. 您的冲突文件。
  2. 您自己的文件。 (.mine)
  3. svn。
  4. 中的最新提交文件
  5. 您工作过的旧版本文件。
  6. 您需要手动比较并解决问题。

    其他更好的方法是,保留最新的提交文件&删除冲突的,您自己的文件&旧版文件。将最新的已提交文件重命名为project.pbxproj

    现在,您可以在删除冲突文件时打开xcode项目。

    请确保添加&删除之前在上次提交和之前完成的文件冲突,对目标。现在,最新的提交文件将在项目中进行更改。您现在可以将项目提交到存储库。

    希望它有意义。

答案 1 :(得分:0)

首先,.pbxproj文件是否已损坏,或者您所做的更改是否未正确反映在其中? (即如果删除文件,但在.pbxproj文件中没有更新,是否拒绝加载?)

如果.pbxproj文件是文本,您可以通过设置svn:minme-type属性告诉subversion存储它。

将其设置为文本类型将为您提供更好的合并,因此无论谁先提交保存更改,然后当另一个更新其工作副本时,更改将合并到文件中。你应该在合并发生时检查更改,即使subversion很擅长这一点,它只是一个计算机进程,并且不会偶尔做你想要的。