初学者:设置Subversion外部

时间:2009-12-12 18:56:39

标签: iphone svn xcode

我相信svn externals是我想要使用的,但是想要对它进行一些澄清。我从来没有这样做过。

我的环境是:

Mac 10.6.2
Xcode
Cornerstone
Subversion 10.6 (file based/single developer)
Single repository

我的svn文件夹结构是:

\projects\projectA
\projects\projectB
\projects\projectC
\projects\projectX (.lib file)
\projects\projectY (images)

所有项目都有trunk,tags和branches文件夹(就像Subversion建议的那样)。项目X& Y是真正的共享代码。我想要分享的是图像和.lib文件。例如,projectY将包含图像的PSD和产品,即PNG。 projectX将包含Xcode源文件以及产品,即.lib文件。

在项目A到C中,我想引用PNG和.lib文件,并希望选择引用最新版本或特定版本,我理解外部版本。 projectY将包含其所有PNG文件。但是,projectX会将其.lib输出到所有Xcode项目使用的公共构建文件夹。

如果我从projectA创建一个外部属性到projectY中的图像,这是不是意味着所有projectY都是外部源代码(PSDs)和所有?我只对巴布亚新几内亚感兴趣。

此外,如果我想在项目B和C中引用projectX中特定版本的.lib文件,那么由于projectX将其.lib文件输出到公共Xcode构建文件夹,该怎么做?

当我在projectX中更新图像时,projectA如何获取最新图像?只是做一次更新?

如果我将所有projectY的图像放入产品文件夹中,并且只需要在projectA中显示其中50个图像中的三个,那么所有50个图像是否仍会显示在projectA中?这是性能问题吗?

2 个答案:

答案 0 :(得分:2)

您可以在Subversion中设置任何文件夹的外部参考 - 您可以指向仅包含PNG的文件夹。对于特定的构建版本,您应该考虑提交构建输出,并标记每个版本,然后设置svn:externals对标记的引用。

是的,对projectA的更新将通过externals链接在projectX中获取更新的图像(只要你没有选中忽略外部的选项......)。

答案 1 :(得分:0)

标记对于此类方案非常有用(取决于您的要求的复杂性是否保证)。我在共享资源的工作中使用的做法是标记要通过外部分发的代码的每个版本(1.0,1.1,2.0等),并将外部指向最新的标记版本。

这意味着,无论出于何种原因,我是否需要查看某个项目的旧版本,它总是引用相同的共享文件,而不仅仅是最新版本。