svnadmin verify在验证失败时是否有退出代码1?

svnadmin verify在验证失败时是否有退出代码1?,svn,Svn,我正在编写一个脚本,以便在计划的基础上(可能每天)对我们所有的回购协议进行验证。我使用-q选项(quiet)运行它,并且我试图找出如何检测验证是否成功。文档中没有关于退出代码的内容,也没有关于如果出现故障将得到什么输出的内容。以下是脚本: #!/bin/bash SVN_ROOT=#root directory for repositories# for name in $SVN_ROOT/*; do start_time=`date +%s` REPO_NAME=$(basen

我正在编写一个脚本,以便在计划的基础上(可能每天)对我们所有的回购协议进行验证。我使用-q选项(quiet)运行它,并且我试图找出如何检测验证是否成功。文档中没有关于退出代码的内容,也没有关于如果出现故障将得到什么输出的内容。以下是脚本:

#!/bin/bash
SVN_ROOT=#root directory for repositories#
for name in $SVN_ROOT/*;
do
    start_time=`date +%s`
    REPO_NAME=$(basename $name);
    echo "--------------------"
    echo "Verifying $REPO_NAME"
    svnadmin verify $name -q
    end_time=`date +%s`
    run_time=$((end_time-start_time))
    echo "Verification took $run_time seconds"
    echo "--------------------"
    echo
done

我们可以简单地检查
svnadmin verify
命令的退出代码吗?

如果验证成功,您将无法获得任何输出。所以检查一下,终端上不应该写任何东西,或者不返回任何东西

失败可以是任何事情。但它总是从

* Error verifying repository metadata.
svnadmin: 
我经常遇到的是 看起来像这样:

* Error verifying repository metadata.
svnadmin: E160006: No such revision 2

您可以从svn源代码的文件
svnadmin_tests.py
中获得完整信息。

根本没有输出不是真的。如果指定-q表示安静,则没有输出,否则它会输出其检查的每个版本的信息。此外,通过svnadmin_tests.py查看,它不会测试“svnadmin verify”I,尽管问题仅与-quiet模式有关-成功时,安静模式根本不输出任何内容。是的,svnadmin有整套测试。要在文件中查找的函数有
verify\u keep\u going
verify\u keep\u quiet
等。唯一可靠的方法是知道svnadmin verify在失败时是否有非零的退出代码。解析输出非常困难。我不知道为什么它没有在手册页上指定。实际上它甚至没有在代码中记录。因此,它不太可能出现在手册页面中。
* Error verifying repository metadata.
svnadmin: E200014: L2P index checksum mismatch in file common-model_error/db/rev
s/0/2:
   expected:  889bad2c5c202537b7cba500084dce5a
     actual:  1858b46dd6554ef73bf8e0076e490802