什么是Xcode首选项中的“源树”,我可以用它做什么?

时间:2011-02-13 02:50:55

标签: xcode

我最近一直在研究如何管理项目或多个项目中的源文件。我已经读过Xcode有内置支持使用svn,并且也支持git,我发现这两者都非常有用。

我无法理解的一件事是关于Xcode项目管理指南中描述的源树。这是我的理论,但由于我无法从任何地方真实地证实这一点(据我所知),我真的希望有人能说出我所缺少的东西,如果有的话。

  • Xcode首选项中的源树更像是源树的a root,它是我本地文件系统中的文件夹。
  • 我可以使用我的任何Xcode项目中的任何文件,即使文件不在项目文件夹中,如果我可以指定文件的位置与我的某个源树相关。
  • 现在有人拥有与我同步的项目文件夹。她拥有项目文件夹中的所有文件,但源树的相对位置引用的文件可能存在于项目文件夹之外。
  • 但她有一个源代码树,与我的Setting Name相同(但绝对在她的本地文​​件系统中的不同文件夹中),如果她的文件位于相同的相对位置,那么她的Xcode可以毫无问题地访问该文件。

这是正确的,我们使用源树,因为它使我们能够与项目文件夹外的文件协作?

即使项目文件夹外的文件被项目文件夹本身(而不是源树)的相对路径引用,如果这些文件全部由SVN管理,那么它们与项目位于相同的相对位置在每个人的环境中的文件夹,然后我不需要源树,对吧?

1 个答案:

答案 0 :(得分:4)

我从不认为我是Xcode的专家,但似乎你的问题暂时没有得到回答,所以也许值得评论一下我能说的话:

你所描述的几乎就是它。 Think是一个操作系统的环境变量。例如,通常在由Autotools构建的构建系统中,文件由相对路径引用,例如$PROJECT_HOME/src/common/error.cpp。只要文件可以通过它们到用户的$PROJECT_HOME目录的相对路径访问,$PROJECT_HOME在每个用户的本地文件系统中的位置都无关紧要。

是的,如果用于项目的整个文件夹层次结构被项目主页的相对路径引用,并且确定每个人在同一位置都拥有相同的文件,则不需要使用源树(对于例如,因为版本控制存储库包含一个块中的每个文件,如你所说)。

但是,我认为最好将所有文件保留在项目主文件夹中,除非它们用于多个项目,因此版本控制存储库只包含一个根目录(项目)你的项目。如果有多个项目最好共享的文件,那么我会为这些文件设置一个单独的存储库。在这种情况下,您的所有同事必须使用相同的协议,例如,具有相同设置名称的源树,并将从版本控制服务器检索到的所有项目主页直接放在源树下(因此可以引用项目主页外的文件)与所有程序员的源代码树相关。)

我的回答大部分都是对你已经描述的内容进行改写,但这就是我自己在Xcode中使用source trees功能的方式。也许其他人可以告诉你更多相关信息。