2011-09-07 37 views
5

Tôi đang sử dụng phản hồi svn log --xml để xem các thay đổi cho một bản sửa đổi cụ thể. Nhưng trong trường hợp sửa đổi hoặc đường dẫn không hợp lệ, tôi muốn chỉ nhận được phản hồi xml trống nhưng hợp lệ. Có thể làm điều đó không?svn log --xml không hợp lệ xml

Vì vậy, thay vì điều này:

<?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 

tôi có thể nhận được:

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

Cảm ơn!

Trả lời

1

Không thể làm được.

Tuy nhiên, nếu bạn kiểm tra mã trạng thái thoát của lệnh svn log, bạn có thể tự mình xử lý vấn đề. Ví dụ: trong tập lệnh shell Bash:

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

Kiểm tra mã lỗi của lệnh và không cố gắng phân tích đầu ra của nó hoặc tạo ra một XML trống để thay thế. Một cái gì đó như thế này:

#!/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}" 
Các vấn đề liên quan