如何开始使用svn:externals?
我正在寻找一个关于使用svn:externals的简洁和写得很好的教程。
我已经知道如何以一种基本的方式使用它们,但是我想要回答最近出现的这样一个问题时可以链接到的一篇好文章:
如何处理多个项目取决于相同的来源?
我会自己做,但我不经常使用它们,不想让我的脖子出来,写一个教程。 Google对这个话题毫无帮助。
以下是关于它在svnbook / TortoiseSVN手册中的一些部分:
这是svn:externals的svnbook页面。 这是关于这个问题的最有用的资源。
这个解释了在工作stream中包含子项目的四种方法(并且在这个过程中丢失了第五个:符号链接)。
最后一个是关于如何导入存储库中的东西(不直接与svn:externals相关)的TortoiseSVN特定页面。
如果从上面提供的链接不清楚,你设置svn:externals
属性绑定到一个特定的修订(pinning),这里是:
svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras
这将在extras
目录下创build一个plugins
子目录,并将其链接到外部SVN URL https://svn.example.com/common/plugins
修订版本12345
。
有一个红豆的文章build议使用propedit
因为svn:externals
可以是一个多行的值。 上面的例子将被改变如下使用propedit
。
svn propedit svn:externals extras
然后,您将为每个外部链接添加一行,其格式如上所示。
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
第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