SVN检出问题

3
我即将把SVN作为我的首选RCS(多年来一直使用CVS),有一个基本问题......
我有许多共享项目——我想要在许多不同的项目中使用的代码。是否可以将这些共享文件夹“链接”到需要它们的项目,以便检出项目时也会检出共享代码?
例如,假设我的仓库如下所示:
根目录 --项目1 --项目2 --共享 --SMTP
当我检出项目1时,我还想检出共享和SMTP。
回到我的CVS时代,我会在其中一个项目文件夹中使用Unix符号链接,但由于我的新SVN仓库不一定在Unix盒子上托管,我无法这样做。
6个回答

11

SVN外部依赖是您想要的内容。 SVN书籍在此处详细解释。这是我喜欢SVN的一件事,它有很棒的文档。


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将检出固定到一个版本,以便如果您在进行更多开发时,可以确保其他项目不会随机破坏。通常,我会外部引用一个包含稳定版本的标签,而不是使用这种版本控制方式。

0

这就是svn中"Externals"的作用。


0

jamuraa 明显有一个更好、更直接的答案。我投了赞成票。 - Jilles

0

是的,这个机制被称为“外部”。请参见这本书


0

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

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

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接