2009-12-12 50 views
1

我相信svn externals是我想使用的,但想要设置它的一些说明。我从来没有这样做过。初学者:建立Subversion外部结构

我的环境是:

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) 

所有项目都有树干,标签,和分行的文件夹(就像Subversion的建议)。项目X & Y是真正的共享代码。我想要分享的是图像和.lib文件。例如,projectY将包含PSD图像加上产品,这是一个PNG。 projectX将包含Xcode源文件和产品,这是一个.lib文件。

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

如果我创建了projectA到图像projectY外部属性,并不意味着所有projectY的是外部的,源代码(月台幕门)和所有?我只是对PNG感兴趣。如果我想从项目B和C的projectX中引用特定版本的.lib文件,自从projectX将.lib文件输出到常见的Xcode构建文件夹以来,这是如何完成的?

当我更新projectX创建图像,如何了projectA获得最新的图像?只是通过更新?

如果我把所有projectY的图像转化为产品文件夹,并只需要三其发言权了projectA 50幅图像,将所有50个仍在了projectA显示出来的?这是一个性能问题吗?

回答

2

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

是的,一个upate到了projectA将通过的外部链接拿起projectX创建更新的图像(只要你没有检查出来的选项忽略外部...)。

+0

感谢。我相信你是说我需要将所有PNG放入projectY中的产品子文件夹,并仅引用产品子文件夹文件夹? – 4thSpace 2009-12-12 19:14:59

+0

你会发现使用projectY中的某个结构来做你想要的更容易,是的。 – 2009-12-12 19:15:48

+0

完美,谢谢!我已经更新了我的问题的最后部分,涉及在产品文件夹中定位图像。我知道单个文件不能用于外部。 – 4thSpace 2009-12-12 19:20:53

0

标记是这样的情况下(根据您的要求复杂是否值得吧)非常有用。我在工作中使用共享资源的做法是标记要通过外部分发的代码的每个版本(1.0,1.1,2.0等),并将外部标记指向最新的标记版本。

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