我最近一直在研究如何管理项目或多个项目中的源文件。我已经读过Xcode有内置支持使用svn,并且也支持git,我发现这两者都非常有用。
我无法理解的一件事是关于Xcode项目管理指南中描述的源树。这是我的理论,但由于我无法从任何地方真实地证实这一点(据我所知),我真的希望有人能说出我所缺少的东西,如果有的话。
a root
,它是我本地文件系统中的文件夹。Setting Name
相同(但绝对在她的本地文件系统中的不同文件夹中),如果她的文件位于相同的相对位置,那么她的Xcode可以毫无问题地访问该文件。这是正确的,我们使用源树,因为它使我们能够与项目文件夹外的文件协作?
即使项目文件夹外的文件被项目文件夹本身(而不是源树)的相对路径引用,如果这些文件全部由SVN管理,那么它们与项目位于相同的相对位置在每个人的环境中的文件夹,然后我不需要源树,对吧?
答案 0 :(得分:4)
我从不认为我是Xcode的专家,但似乎你的问题暂时没有得到回答,所以也许值得评论一下我能说的话:
你所描述的几乎就是它。 Think是一个操作系统的环境变量。例如,通常在由Autotools构建的构建系统中,文件由相对路径引用,例如$PROJECT_HOME/src/common/error.cpp
。只要文件可以通过它们到用户的$PROJECT_HOME
目录的相对路径访问,$PROJECT_HOME
在每个用户的本地文件系统中的位置都无关紧要。
是的,如果用于项目的整个文件夹层次结构被项目主页的相对路径引用,并且确定每个人在同一位置都拥有相同的文件,则不需要使用源树(对于例如,因为版本控制存储库包含一个块中的每个文件,如你所说)。
但是,我认为最好将所有文件保留在项目主文件夹中,除非它们用于多个项目,因此版本控制存储库只包含一个根目录(项目)你的项目。如果有多个项目最好共享的文件,那么我会为这些文件设置一个单独的存储库。在这种情况下,您的所有同事必须使用相同的协议,例如,具有相同设置名称的源树,并将从版本控制服务器检索到的所有项目主页直接放在源树下(因此可以引用项目主页外的文件)与所有程序员的源代码树相关。)
我的回答大部分都是对你已经描述的内容进行改写,但这就是我自己在Xcode中使用source trees
功能的方式。也许其他人可以告诉你更多相关信息。