如何开始使用svn:externals?


81

我正在寻找使用svn:externals的简洁明了的教程。

我本人已经知道如何以一种基本的方式使用它们,但是我希望在回答最近出现的这样的问题时可以链接到一篇好文章:

取决于同一来源,如何处理多个项目?

我自己动手做,但是我经常使用它们,以至于不想伸出自己的脖子在上面写一个教程。Google对此主题毫无帮助。

Answers:


47

这是svnbook / TortoiseSVN手册中有关此内容的一些部分:

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

这一节解释了在工作流中包括子项目的四种方式(并且在此过程中遗漏了第五种方式:符号链接)。

这最后一个是如何在资源库中导入东东TortoiseSVN的特定页面(没有直接关系的svn:外部对象)。


20

如果根据上面提供的链接不清楚,则设置与svn:externals特定修订(固定)相关联的属性的方式如下:

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

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

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

svn propedit svn:externals extras

然后,您将为每个外部链接添加一行,并使用与上述值相同的格式。


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

第2步

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

就像是: ln repo1/proj/base/client repo2/proj/base/client

第三步

export SVN_EDITOR=vim

第四步

svn propedit svn:externals repo2

vim显示:

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

步骤5:再添加两个文件

../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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.