检查svn存储库URL是否不存在

And*_*ndy 43 svn command-line

我正在编写一个脚本,它将根据用户提供的名称在存储库中添加一个新项目.部分原因是检查存储库中是否已存在具有相同名称的URL.

在存储库中,我们团队的所有项目都存储在其中

https://developernetwork.repo.net/svn/Projects/

假设用户想要调用项目"Calculator"并运行脚本.在这种情况下,我们需要确保存储库中不存在以下内容

https://developernetwork.repo.net/svn/Projects/Calculator/

是否有一个svn命令可以用来完成它?不幸的是,我根本无法在svn文档(http://svnbook.red-bean.com/en/1.0/svn-book.html)中看到一个合适的命令.

Liw*_*wen 46

你可以使用

svn ls https://developernetwork.repo.net/svn/Projects/Calculator/
Run Code Online (Sandbox Code Playgroud)

它将告诉您存储库(目录)是否存在.

更新

对于包含许多文件的目录:

svn ls http://server/svn/foo --depth empty
Run Code Online (Sandbox Code Playgroud)

  • 您是否尝试过在这些情况下查看返回代码? (9认同)

Ste*_*ano 46

我只是检查返回代码而不是检查返回字符串:

svn ls REPOSITORY/PATH
Run Code Online (Sandbox Code Playgroud)

svn info REPOSITORY/PATH
Run Code Online (Sandbox Code Playgroud)

如果一切顺利,则返回0;如果出错,则返回1; 你可以快速检查出来:

echo $?
Run Code Online (Sandbox Code Playgroud)

所以在bash脚本中只需执行以下操作:

error=$?
if [ $error -ne 0 ]; then
      YOUR ERROR HANDLING
fi
Run Code Online (Sandbox Code Playgroud)

就像一个享受!

  • 这应该标记为正确的答案 (3认同)

ama*_*ain 9

要接收有关任何现有存储库的信息(例如,可能丰富错误消息),您也可以使用

svn info https://developernetwork.repo.net/svn/Projects/Calculator/
Run Code Online (Sandbox Code Playgroud)

对于一个不存在的项目,它将返回

svn: Could not open the requested SVN filesystem
Run Code Online (Sandbox Code Playgroud)