我有一个包含一些客户端文件的 Subversion 存储库。某些客户端将使用标准文件,但其他客户端将提供文件的自定义版本。为了适应这一点,我对将使用共享文件的客户端使用了 svn:externals。所以我们的结构是这样的:
svn
|+ top
|+ shared
|+ clients
|+ custom1
|+ custom2
|+ shared1
|+ shared2
客户端“custom1”是 Subversion 中的真实文件夹,包含该客户端的自定义文件,客户端“shared1”是 svn:external 属性/clients
指向的文件夹/top/shared
.
我所希望的是,当我想部署新客户端时,我可以简单地将其文件夹导出到服务器,使用如下命令:
svn export http://svn/top/clients/custom1 \\server\custom1
or
svn export http://svn/top/clients/shared1 \\server\shared1
这对于自定义客户端来说效果很好,因为它们在 Svn 中有一个“真实”文件夹,但对于配置了外部的客户端,我收到错误:
svn: E170000: URL 'http://svn/top/clients/shared1' doesn't exist
有没有办法可以直接签出/导出“外部”文件夹?
我最终做的是使用svn ls https://stackoverflow.com/questions/868033/check-that-an-svn-repository-url-does-not-exist查看我是否正在访问物理目录。如果它不存在,则使用以下命令来获取我的外部目标:
svn propget svn:externals http://svn/top/clients/ | findstr "\<shared1\>" | sed "s/\(.*\)\s\(shared1\)/\1/"
findstr
将获得我正在寻找的属性的单行,以及sed
命令将解析出目标 url(空格之前的部分)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)