我想知道是否支持以下愿望:在客户端,即在我的工作目录空间中,我不希望从目录中获得一对一的工作副本在服务器上找到的树(相应的子树)。相反,我希望有一个特定的观点,如
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:我可以想象符号链接会达到我想要的效果 只要从那时起一切都在同一个存储库/工作目录中 链接可以使用相对路径。 (我不知道是否有象征性的联系 是跨不同文件系统的强大解决方案)
答案 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
directory1
和directory2
的内容应该检出root/mydirectory1
和root/mydirectory2
。
要求您的用户查看file:/path/to/repos/root
,他们还会获取您的其他目录。