84

我正在寻找关于使用 svn:externals 的简洁且编写良好的教程。

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

如何处理依赖于同一来源的多个项目?

我会自己做,但我不经常使用它们,以至于想伸出脖子写一篇教程。谷歌对这个话题毫无帮助。

4

3 回答 3

47

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

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

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

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

于 2009-03-19T17:43:39.507 回答
20

如果从上面提供的链接中不清楚,您设置与svn:externals特定修订版(固定)相关的属性的方式,这里是:

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

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

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

svn propedit svn:externals extras

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

于 2012-01-27T17:36:43.777 回答
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

第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
于 2016-11-18T03:02:16.957 回答