svn - 如何直接查看SVN外部URL?

标签 svn svn-externals

我有一个包含一些客户端文件的 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/

相关文章:

java - SVN 错误 : svn: E200007: Runner for 'org.tmatesoft.svn.core.wc2.SvnMerge'

svn - 我做错了吗?将 SVN 更改从主干 merge 到 git 分支。使用 merge --squash

svn - 如何获取所有 Subversion 提交作者用户名的列表?

更新时 SVN 外部存储库 "is already locked"

SVN 外部和修订协会

file - 我们可以在Subversion中将单个文件设置为外部文件吗?

eclipse - 如何使用eclipse在SVN中制作标签?

SVN如何升级工作副本

SVN 开发和发布流程 - 健全性检查

svn - 我怎样才能让 subversion 从其他存储库中 check out 项目?