当前工作目录是SVN工作副本时,我可以使用' ^'作为存储库URL的简写。
工作副本的URL是否也有一个很好的简写,svn list <???>/../
不会解决工作副本的父目录,而是存储库中工作副本的父目录。如果有的话,<???>
的快捷方式是什么?
答案 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变量svn0
,svn1
等中提供它及其所有祖先。此外,祖先URL在命令行上打印,以便在后续命令中进行参考,可以是:
svn list $svn1 # list repository parents of working copy
svn switch $svn1/branches/mybranch # assuming standard layout and trunk checkout
(提示:语法^/branches
在多项目存储库中不起作用,其中主干和分支和标记可以在层次结构中更深层次。)