如何使Xcode项目源文件与文件系统目录保持同步?

时间:2010-02-20 21:25:34

标签: xcode version-control project xcode3.2

我是XCode的新手,我发现文件管理非常痛苦。在大多数IDE中,您只需让项目源树引用磁盘上的目录结构即可。这样可以轻松地将新文件添加到项目中 - 您只需将它们放在磁盘上,它们就会自动编译。

使用XCode,似乎我必须创建文件并单独将其添加到项目中(或者被迫通过UI操作文件系统)。但这意味着通过源代码控制共享.xcodeproj充满了问题 - 通常,我们会在xcodeproj文件上出现合并冲突 - 当我们不这样做时,我们经常会遇到链接器错误,因为在合并期间会出现一些文件在项目中列出的被删除。所以我必须将它们重新添加到项目文件中,直到我可以编译它,然后重新检查项目文件。

我确信我必须在这里遗漏一些东西。我尝试使用'参考文件夹',但其中的代码似乎没有被编译。在为项目添加或删除文件时,构建一个强制每个人修改单个共享文件的IDE似乎很疯狂。

2 个答案:

答案 0 :(得分:5)

尽管有其他答案,但这绝对不同于其他IDE,也是一个重大的麻烦。我知道没有好的解决方案。

我经常使用的一个技巧是让它更具可忍性 - 特别是对于包含大量文件的资源目录 - 是:

  • 选择项目树中的目录
  • 点击删除键,
  • 选择“仅删除参考”,然后选择
  • 将目录拖到项目中以重新添加。

这会破坏文件的任何手动重新排序,但它至少会同步O(1)操作,而不是更改文件数量的O(n)。

答案 1 :(得分:2)

我很感兴趣你正在使用哪些IDE自动编译目录中的所有内容,因为我从未使用过IDE(至少对于C ++而言)。我认为拥有一个包含所有文件列表的项目文件是非常标准的。通常,您可能只想为不同的目标包含某些文件,具有每个文件的编译器设置等。

无论如何,鉴于它 的工作原理,你真的不应该有太多合并冲突的问题。最好的建议是提前和经常提交,这样你就不会与其他人的变化失去联系。仅仅将文件添加到项目中不应该导致冲突,除非它们碰巧被添加到项目树中的完全相同的点。我们多年来一直在我们的团队中使用Xcode,我们很少遇到冲突:只有有人重组了项目。

幸运的是,因为Xcode文件格式是文本,所以当它们发生时通常很容易解决冲突,不像Codewarrior的Bad Old Days和它的二进制格式。