我有一个包含一些客户端文件的 Subversion 存储库。某些客户端将使用标准文件,但其他客户端将提供文件的自定义版本。为了适应这一点,我对将使用共享文件的客户端使用了 svn:externals。所以我们的结构是这样的:
svn
|+ top
|+ shared
|+ clients
|+ custom1
|+ custom2
|+ shared1
|+ shared2
客户端“custom1”是 Subversion 中的真实文件夹,包含该客户端的自定义文件,客户端“shared1”是 /clients
文件夹上的 svn:external 属性,它指向 /顶部/共享
。
我希望的是,当我想部署新客户端时,我可以简单地将其文件夹导出到服务器,使用如下命令:
svn export http://svn/top/clients/custom1 \\server\custom1
或
svn export http://svn/top/clients/shared1 \\server\shared1
这对于自定义客户端来说效果很好,因为它们在 Svn 中有一个“真实”文件夹,但对于配置了外部的客户端,我收到错误:
svn: E170000: URL 'http://svn/top/clients/shared1' doesn't exist
有没有办法可以直接 checkout /导出“外部”文件夹?
最佳答案
我最终做的是使用 svn ls查看我是否正在访问物理目录。如果它不存在,则使用以下命令获取我的外部目标:
svn propget svn:externals http://svn/top/clients/ | findstr "\<shared1\>" | sed "s/\(.*\)\s\(shared1\)/\1/"
findstr
将获取我要查找的属性的单行,而 sed
命令将解析出目标 url(空格之前的部分)。
关于svn - 如何直接查看SVN外部URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840720/