对同一个目录树进行两次签出是行不通的。如果您检查您的源代码,并尝试检查 OSS 项目源代码,那么它们的任何共同目录都会失败,说它已经是另一个项目的工作目录。
如果你可以将css、xml、xsl等文件集中到一个公共目录中,你可以将它们放在你自己项目的svn中的一个目录中,然后将它们检出到OSS项目的工作目录中的一个目录中。
~/Working => svn://samhoice/project/trunk
~/Working/osscomponent => svn://osshost/project/latesttag
~/working/osscomponent/config => svn://samhoice/project/trunk/config
在这种结构中,samhoice 的 svn 存储库中不存在 osscomponent 目录。它由您的安装脚本添加为 OSS 项目的工作目录根目录。config 目录没有从 OSS 项目中检出,也不存在。config 目录由您的安装脚本创建,并且 config 目录从您的项目存储库中签出。
所以在这个目录结构中你有三个结帐。没有递归重叠,因此任何子目录上的 svn 映射之间都没有冲突。
如果您需要将配置文件安排在 OSS 项目的结构中,请在您的 makefile 或配置脚本中添加一些符号链接。您也可以在 svn 客户端的结帐后挂钩中执行此操作。
我在我的一个项目中使用了这样的结构,用于在两个项目树之间共享一些代码。共享内容位于我为您的配置部分推荐的子树中。