2011-09-07 46 views
5

我使用svn log --xml響應來查看特定修訂的更改。但是如果版本或路徑無效,我只想得到一個空白但有效的xml響應。有可能這樣做嗎?svn log --xml無效xml

因此,不是這樣的:

<?xml version="1.0"?> 
<log> 
svn: Unable to find repository location for 'http://subversion.ny.jpmorgan.com /svn/repos/IM_RPS_CORE/rps_deploy_tools_content_test/branches/rol-201106-content-test' in revision 1556 

我可以得到:

<?xml version="1.0"?> 
<log> 
</log> 

謝謝!

回答

1

不能。

但是,如果您檢查svn log命令的退出狀態代碼,則可以自己處理該問題。例如,在Bash shell腳本中:

if ! svn log --xml $url > $xmlOutput 2> /dev/null 
then 
    cat > $xmlOutput <<EOF 
<?xml version="1.0"?> 
<log> 
</log> 
EOF 
fi 
1

檢查命令的錯誤代碼,不要嘗試解析其輸出或生成空的XML。類似這樣的:

#!/bin/bash 

FILE=svn_log.xml 
svn log --xml > "${FILE}" 2>/dev/null 
RET=$? 

if [ $RET -ne 0 ]; then 
(cat <<EOF 
<?xml version="1.0"?> 
<log> 
</log> 
EOF 
) > "${FILE}" 

fi 

cat "${FILE}"