我编写了一个简单的bash脚本来使用Subversion 1.8.15更新我的所有11个项目(在Debian 7下)。 这是其中的一部分:
echo "PHP PROJECT1 update..."
cd $PHPDIR/Project1 && svn up
echo "PHP PROJECT2 update..."
cd $PHPDIR/Project2 && svn up
...
它工作正常但是......当出现错误时,例如svn由于拒绝访问文件夹或连接错误而无法更新一个项目,它会跳过更新此特定项目并愉快地转到下一个项目。
在这种情况下,svn控制台输出很长,很难找到这些错误消息,所以我真的不知道我的所有项目是否都已更新。
我的问题是:Subversion 1.8.15是否存储来自不合适更新的日志以及我可以在哪里找到它们?
编辑:
解决方案比我最初的想法更有趣。我的目的是将stdOut和stdErr打印到控制台,并且只打印stdErr到/tmp/svnErr.log。 经过一番搜索,我发现了这个问题How do I write stderr to a file while using "tee" with a pipe?
多亏了这一点,我在bash中了解了Process Substitution。
最后,我的解决方案是:
svn up > >(tee) 2> >(tee -a /tmp/svnErr.log >&2)