在另一个内部包含外部版本控制项目的方法

时间:2009-12-21 14:16:02

标签: svn version-control

我希望在我自己的项目中包含从外部SVN存储库构建的项目的dll输出。实现这一目标的最佳方法是什么。

由于外部项目svn:忽略bin \ release文件夹,我认为我不能使用svn:external。

构建最新版本并在dll中复制似乎容易出错。

在这个例子中,我希望包含来自codeplex的HtmlAgilityPack,因此任何引用此项目的示例都会很好(https://htmlagilitypack.svn.codeplex.com/svn)。

2 个答案:

答案 0 :(得分:1)

这正是svn:externals的用途。由于源代码是在另一个存储库中提供的,因此您必须在构建该源的解决方案中添加一个新项目,而不是包含DLL。

此外,不要忘记链接到外部仓库的特定修订版(而不是HEAD)的最佳做法,以便您可以控制是否以及何时更新其代码副本。

修改

给出目标存储库的

结构
/Branches
    1.3.0
    1.4.0
/Release
    1_4_0_beta1
    1_4_0_beta2
/Trunk

我会链接到Release文件夹中的某些内容,例如

/Release/1_4_0_beta2/HtmlAgilityPack

您还可以指定修订号作为防止意外更改的安全措施,但这是一个标记,因此它们不太可能更新它们 - 它们只会创建一个新标记。

答案 1 :(得分:0)

看起来基本上,svn:external正是您所需要的。当然,您链接到的存储库必须以某种方式提供文件。如果没有,我认为你不会以某种方式在脚本级别上下载和复制它们。