我有几个Subversion存储库看起来像:
/Core
/trunk
/External
/LibraryA
- LibraryA.dll
- LibraryA.pdb
/LibraryB
- LibraryB.dll
- LibraryB.pdb
/Website
/trunk
/Website
...
/Bin
...
我想使用以下行使用svn:externals将/ Core / trunk / LibraryA和/ Core / trunk / External / LibraryB中包含的文件引入文件夹/ Website / trunk / Website / Bin:
当我将上述行添加到/ Website / trunk / Website文件夹的svn:externals属性时,从后一行引入的文件会覆盖从前一行引入的文件,因此我最终得到:< / p>
/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网站项目,所以这是我正在使用的约束。
更新
为了实现我想要实现的目标,我已将两个库拉入Libraries文件夹下的自己的文件夹中,这样我最终得到以下结构:
/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 Web站点项目的引用时,系统会创建.refresh文件(如上所示)。只应从/ Bin文件夹中签入那些.refresh文件。应通过svn:ignore。
将所有其他文件和文件夹添加到Subversion忽略列表中要明确:上面标签中标有星号的文件应添加到svn:ignore,而标有+的文件应添加到Subversion。
答案 0 :(得分:2)
我怀疑这可能只是使用外部。外部基本上只是说“在这里自动检查这个并在我更新存储库的其余部分时更新它”。如果可以这样做,则需要能够在同一目录中存储有关两个存储库的信息,SVN不允许这样做。
您可以在Windows Vista及更高版本上使用mklink。在2000 / XP / 2003上,您可以使用NTFS symlinks来创建硬链接 - 可能有一个工具可以做到这一点,但我不知道任何特定的链接。
当然,你也可以在Vista上使用硬链接,如果你愿意,也可以使用--mklink也可以。但请注意,硬链接只能指向同一卷上的文件,这些符号链接不需要。