这个工作副本的存储库URL在SVN中的缩写?

时间:2017-01-01 15:19:43

标签: svn

当前工作目录是SVN工作副本时,我可以使用' ^'作为存储库URL的简写。

工作副本的URL是否也有一个很好的简写,svn list <???>/../不会解决工作副本的父目录,而是存储库中工作副本的父目录。如果有的话,<???>的快捷方式是什么?

1 个答案:

答案 0 :(得分:0)

似乎没有这样的捷径。作为一种解决方法,我想出了这个bash函数:

function svnurls() {
  svn info &>/dev/null || return
  local d=$(svn info | sed -n -e '/^URL/s/.*: //p')
  local i=0
  while ! [[ "$d" =~ ^[^:]*:/$ ]]; do
    echo $i $d
    typeset -g svn$i="${d}"
    d=${d%/*}
    i=$((i+1))
  done
}

它首先检查它是否在svn工作副本中被调用,如果不是,则立即返回。

如果是,它会从svn info抓取工作副本的存储库URL,并在shell变量svn0svn1等中提供它及其所有祖先。此外,祖先URL在命令行上打印,以便在后续命令中进行参考,可以是:

svn list $svn1  # list repository parents of working copy
svn switch $svn1/branches/mybranch # assuming standard layout and trunk checkout

(提示:语法^/branches在多项目存储库中不起作用,其中主干和分支和标记可以在层次结构中更深层次。)