【发布时间】:2011-05-10 21:57:06
【问题描述】:
我有几个 Subversion 存储库,如下所示:
/Core
/trunk
/External
/LibraryA
- LibraryA.dll
- LibraryA.pdb
/LibraryB
- LibraryB.dll
- LibraryB.pdb
/Website
/trunk
/Website
...
/Bin
...
我想使用 svn:externals 将 /Core/trunk/External/LibraryA 和 /Core/trunk/External/LibraryB 中包含的文件引入文件夹 /Website/trunk/Website/Bin 中,使用以下行:
- /svn/Core/trunk/External/LibraryA@HEAD Bin
- /svn/Core/trunk/External/LibraryB@HEAD Bin
当我将以上行添加到 /Website/trunk/Website 文件夹的 svn:externals 属性时,从后一行引入的文件会覆盖从前一行引入的文件,所以我最终得到:
/Website
/trunk
/Website
...
/Bin
- LibraryB.dll
- LibraryB.pdb
...
有人可以建议正确的方法吗?我想结束:
/Website
/trunk
/Website
...
/Bin
- LibraryA.dll
- LibraryA.pdb
- LibraryB.dll
- LibraryB.pdb
...
如果我可以将网站转换为 ASP.NET Web 应用程序项目,我可以以不同的方式处理它。按照目前的情况,这个项目必须是一个 ASP.NET 网站项目,所以这是我正在处理的一个限制。
更新:
为了实现我想要实现的目标,我将这两个库拉入到库文件夹下各自的文件夹中,这样我最终得到了以下结构:
/Website
/trunk
/Website
...
/Bin
- LibraryA.dll *
- LibraryA.pdb *
- LibraryA.dll.refresh +
- LibraryB.dll *
- LibraryB.pdb *
- LibraryB.dll.refresh +
/Libraries
/LibraryA
- LibraryA.dll +
- LibraryA.pdb +
/LibraryB
- LibraryB.dll +
- LibraryB.pdb +
...
然后,我将这两个库作为参考添加到网站,它会根据需要提取所有库。当添加库作为对 ASP.NET 网站项目的引用时,系统会创建 .refresh 文件(如上所示)。只有那些 .refresh 文件应该从 /Bin 文件夹签入。所有其他文件和文件夹都应该通过 svn:ignore 添加到 Subversion 忽略列表中。
明确一点:上面列表中标有星号的文件应该添加到 svn:ignore,而标有 + 的文件应该添加到 Subversion。
【问题讨论】: