svn:在客户端检查定制的目录结构

时间:2013-06-26 11:03:49

标签: svn

我想知道是否支持以下愿望:在客户端,即在我的工作目录空间中,我不希望从目录中获得一对一的工作副本在服务器上找到的树(相应的子树)。相反,我希望有一个特定的观点,如

take directory1 from the repos, check it out here under ./mydirectory1
take directory2 from the repos, check it out here under ./mydirectory2

这样的事情。我认为CVS的“模块”功能是/能够做到的。

svn中有类似内容吗?

PS:我知道:externals:property。但这不是我想要的,因为这要求个人客户/用户必须做正确的事情,将外部设置正确。我更喜欢这种配置只进行一次,因此用户可以在签出的内容上获得相同的视图。

PPS:我可以想象符号链接会达到我想要的效果      只要从那时起一切都在同一个存储库/工作目录中      链接可以使用相对路径。 (我不知道是否有象征性的联系      是跨不同文件系统的强大解决方案)

2 个答案:

答案 0 :(得分:1)

从存储库中,您无法决定用户查看其工作副本的位置/方式。您可以获得的最接近的是创建一个“meta”目录,其中没有项目,但是通过svn:externals填充。如果您无法信任您的用户正确使用系统,则需要更好地培训用户,获取新用户或安装挂钩脚本以检查提交和提交。拒绝任何不符合要求的人。

符号链接不适用于任何使用Windows的客户端。

答案 1 :(得分:0)

外部 是实现目标的正确方法。您需要将根目录添加到存储库:

svn mkdir file:/path/to/repos/root

然后看看:

svn co file:/path/to/repos/root root -m"Creating root directory"

添加适当的外部定义:

svn propedit svn:externals root

这将在你应该添加的空文件上打开你的编辑器:

mydirectory1 file:/path/to/repos/directory1
mydirectory2 file:/path/to/repos/directory2

提交您的更改:

svn commit root -m"Added externals to root"

如果现在你运行更新:

svn update root

directory1directory2的内容应该检出root/mydirectory1root/mydirectory2

要求您的用户查看file:/path/to/repos/root,他们还会获取您的其他目录。