如何开始使用svn:externals?

时间:2009-03-19 17:27:25

标签: svn tortoisesvn externals

我正在寻找一个关于使用svn:externals的简洁而精心编写的教程。

我自己已经知道如何以基本的方式使用它们,但我想要一篇很好的文章,我可以在回答最近出现的问题时链接到这篇文章:

What to do with multiple projects depending on the same source?

我自己也会这样做,但我不经常使用它们想要伸出脖子并在上面写一个教程。谷歌在这个话题上出人意料地无益。

3 个答案:

答案 0 :(得分:45)

以下是svnbook / TortoiseSVN手册中有关它的部分内容:

This是svn:externals上的svnbook页面。它是该主题最有用的资源。

This one解释了在工作流程中包含子项目的四种方法(并且在此过程中错过了第五项:符号链接)。

this last one是一个特定于TortoiseSVN的页面,介绍如何在存储库中导入内容(与svn:externals没有直接关系)。

答案 1 :(得分:18)

如果从上面提供的链接中不清楚,您设置与特定修订版(钉扎)相关联的svn:externals属性的方式,则为:

svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras

这将在plugins目录下创建一个extras子目录,并将其链接到外部SVN网址12345的修订版https://svn.example.com/common/plugins

有一篇红豆文章建议使用propedit,因为svn:externals可以是多行值。上面的示例将更改如下,以使用propedit

svn propedit svn:externals extras

然后,您将按照上面显示的相同格式为每个外部链接添加一行。

答案 2 :(得分:0)

root/repo1/proj/base/common/log.c
root/repo1/proj/base/common/log.h
root/repo1/proj/base/client

root/repo2/proj/test/base

如上所示,我们希望将2个文件和1个目录复制到repo2

  

步骤1

     

目录:/ home / jack / repo2 / proj /

cd /home/jack
  

第二步

svn propset svn:externals "../repo1/proj/base/client proj/base/client" repo2

类似于:ln repo1/proj/base/client repo2/proj/base/client

  

步骤3

export SVN_EDITOR=vim
  

步骤4

svn propedit svn:externals repo2

vim显示:

../ repo1 / proj / base / client proj / base / client

  

Step5:添加另外两个文件

../repo1/proj/base/client proj/base/client
../repo1/proj/base/common/log.c proj/base/common/log.c
../repo1/proj/base/common/log.h proj/base/common/log.h