2

假设我有 svn 存储库 A,其中包含一堆目录:trunk/dir1 trunk/dir2 trunk/dir3 ...

我想在存储库 B 中使用这些目录的子集。一种方法是设置一个 svn:externals 属性,该属性只会引入所有 A: A https://path/to/A/trunk

因为我只想要这些目录的一个子集,所以我宁愿只引入我需要的东西。这很好 - 我可以将属性设置为只引入 dir1 和 dir2

dir1 https://path/to/A/trunk/dir1
dir2 https://path/to/A/trunk/dir2

这可以满足我的要求,并且当 A 包含大量我不想要的目录时,它似乎确实使我的结帐速度更快。不过我注意到的是,当我进行 svn 更新时(特别是在 A 中实际上没有更新任何内容时),这需要更长的时间,因为它必须检查 svn:externals 属性中列出的每个目录以查看是否修订版已经改变......当我只是在整个主干中使用 svn:externals 时,svn 更新更快,因为它只需要检查一个目录。

实际上,我正在寻找的是一些语法,它表示我想要多个子目录,但是因为它们都是 svn 只需检查一次修订历史记录的子目录。从概念上讲,是这样的:

dir1,dir2 https://csdrepos/path/to/A/trunk/dir1,dir2

我找不到像这样的任何语法的参考......有没有办法做到这一点?关于如何加快我的 svn 更新而不需要 svn:externals 在厨房水槽中并减慢我的初始结帐速度的任何其他提示?我无法真正重新组织 A 的目录结构,因为不同的 repos 将需要 A 目录的不同子集。

4

1 回答 1

0

Taking your comment into account the most efficient solution seems to include the external in a 'special' folder (e.g. /ext)

Then adding symlinks to the relevant folders in /ext in the place you want.

The result is only a single 'external' download and only the relevant directories cluttering your listing in the places you want.

于 2012-12-14T19:23:42.980 回答