SVN结帐问题

时间:2020-03-05 19:00:06  来源:igfitidea点击:

我将选择使用SVN作为我的RCS(使用CVS多年后),并有一个基本问题...

我有许多共享项目代码,我想将它们与许多不同的项目一起使用。是否可以将这些共享文件夹"链接"到需要它们的项目,所以检出项目也将检出共享代码?

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


--project1
--project2

  • 共享
    --smtp

当我检出project1时,我也想检出shared和smtp。

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

解决方案

回答

SVN外部组件是我们想要做的。 SVN本书在这里对其进行了详细说明。我喜欢SVN,这是很棒的文档,这是一件事。

回答

这就是svn"外部"的用途。

回答

是的,看看SVN外部。

回答

是的,此机制称为"外部"。看书。

回答

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

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

希望能有所帮助。

回答

我们正在寻找" 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将签出固定到修订版,这样,如果我们要对此进行更多开发,则可以确保其他项目不会随机中断。通常,我不执行此修订工作,而是在保存稳定版本的标签外部进行操作。