20

我是 XCode 的新手,我发现文件管理非常痛苦。在大多数 IDE 中,您可以简单地让项目源代码树引用磁盘上的目录结构。这使得向您的项目中添加新文件变得很容易——您只需将它们放在磁盘上,它们就会自动编译。

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

我确定我一定在这里遗漏了一些东西。我尝试使用“参考文件夹”,但其中的代码似乎没有被编译。构建一个 IDE 似乎很疯狂,它迫使每个人在向项目添加或删除文件时都修改单个共享文件。

4

2 回答 2

7

尽管有其他答案,但这绝对是与其他 IDE 的背离,并且是一大麻烦。我知道没有好的解决方案。

我经常使用的一个技巧是让它变得更容易忍受——尤其是在资源目录中有很多文件的情况下——是:

  • 在项目树中选择一个目录,
  • 按删除键,
  • 选择“仅删除引用”,然后
  • 将目录拖到项目中以重新添加它。

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

于 2011-07-15T21:54:48.537 回答
0

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

无论如何,鉴于这就是它的工作方式,你真的不应该因为合并冲突而遇到太多问题。最好的建议是尽早并经常提交,这样您就不会与其他人的更改脱节。仅将文件添加到项目不应导致冲突,除非它们恰好被添加到项目树中的完全相同的点。我们团队多年来一直在使用 Xcode,而且我们很少遇到冲突:只有在有人重组了项目的情况下才会发生冲突。

幸运的是,因为 Xcode 文件格式是文本,所以当它们发生冲突时通常很容易解决,这与 Codewarrior 的旧时代的二进制格式不同。

于 2010-02-23T21:41:30.280 回答