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