3

我即将转向 SVN 作为我选择的 RCS(在使用 CVS 多年之后)并且有一个基本问题......

我有许多共享项目——我想在许多不同项目中使用的代码。是否可以将这些共享文件夹“链接”到需要它们的项目,因此签出项目也会签出共享代码?

例如,假设我的存储库如下所示:


--project1
--project2
--shared
--smtp

当我结帐 project1 时,我还想结帐共享和 smtp。

回到我的 CVS 时代,我会在其中一个项目文件夹中使用 Unix 符号链接,但由于我的新 SVN 存储库不一定托管在 Unix 机器上,所以我不能这样做。

4

6 回答 6

11

SVN Externals 是您想要做的。SVN 书在这里详细解释了它。这是我喜欢 SVN 的一件事,精彩的文档。

于 2008-09-17T21:29:50.100 回答
2

您正在寻找“svn:externals”属性。请参阅svnbook 的这一部分:

在您要在其中使用共享项目的项目下,然后在该目录上设置一个名为“svn:externals”的属性。此属性包含包含外部存储库的目录的名称,并且可以有一些其他选项,以便您始终获得相同的修订。

示例(来自 svnbook,这是 svn 问题的优秀参考):

$ svn propget svn:externals calc
third-party/sounds             http://svn.example.com/repos/sounds
third-party/skins -r148        http://svn.example.com/skinproj
third-party/skins/toolkit -r21 http://svn.example.com/skin-maker

在此示例中,将从http://svn.example.com/repos/sounds签出第三方/声音。-rNNN 将结帐固定在修订版上,这样如果您正在对此进行更多开发,您可以确保您的其他项目不会随机中断。通常,我不做这个修订的事情,而是在一个拥有稳定版本的标签之外。

于 2008-09-17T21:33:13.960 回答
0

这就是 svn "Externals" 的用途。

于 2008-09-17T21:29:50.317 回答
0

是的,看看SVN Externals

于 2008-09-17T21:29:58.553 回答
0

是的,这种机制被称为“外部”。见

于 2008-09-17T21:30:22.017 回答
0

SVN 有一个名为“externals”的功能,它的工作方式基本上与符号 UNIX 链接的工作方式相同(您将存储库中某个位置的某个目录指向存储库中其他位置的某个目录)。

有关如何设置外部的更多信息,请参阅: http ://svnbook.red-bean.com/en/1.0/ch07s03.html

希望有帮助。

于 2008-09-17T21:32:30.717 回答