2010-07-20 44 views
0

我们使用subversion来跟踪我们的代码,只是在我们两个人之间共享代码。但是,当我们在下一次提交之前同时添加或删除文件时,我们遇到了一个问题。看起来,每当我们与群&文件混淆,项目包下的project.pbxproj将被修改,颠覆无法照顾。因此该项目无法打开。Subversion,xcode和project.pbxproj的问题

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

回答

0

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

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

将其设置为文本类型将使您可以更好地进行合并,因此无论谁承诺首先保存更改,然后当其他人更新其工作副本时,更改将合并到文件中。您应该在合并发生时检查更改,即使颠覆擅长于此,它只是一个计算机进程,并且不会按照您的预期偶尔执行。

+0

它看起来像我至少在其中一个选项中被损坏。它提供了三种选择,不是用我的确切措辞,但是(1)保留本地更改,(2)用存储库版本覆盖本地文件,以及(3)关闭xcode。如果我们关闭Xcode它不会打开,我们必须手动删除它并从命令行更新内容。然后Xcode将以存储库的文件层次结构打开。 – huggie 2010-07-20 13:23:44

+0

这听起来更像是合并工具踢入并告诉你它不能执行合并,因为存在冲突(即,你们都改变了同一行 - 工具无法知道使用哪条线)。关闭xcode并尝试在文件上使用TortoiseSVN。还将其设置为文本MIME类型,您将拥有更好的合并支持。 – gbjbaanb 2010-07-20 15:04:11

1

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

所以你必须提交这个文件,当你提交你的源代码。

如果更新后无法打开项目,这是因为您的“Project.pbxproj”文件与先前的提交发生冲突。因此,您必须通过编辑&来解决问题。

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

  1. 您的冲突文件。
  2. 你自己的文件。 (.mine)
  3. svn中最新提交的文件。
  4. 您工作过的旧版本文件。

您需要手动比较并解决问题。

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

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

只要确保你添加了&就可以删除以前在最后一次提交&冲突之前完成的文件。现在,最新的提交文件将对您的项目进行更改。您现在可以将该项目提交到您的存储库。

希望它是有道理的。