2011-09-07 17 views
5

मैं किसी विशेष संशोधन के लिए परिवर्तनों को देखने के लिए svn log --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 कमांड के बाहर निकलने का स्थिति कोड देखते हैं, तो आप स्वयं को समस्या को संभाल सकते हैं। उदाहरण के लिए, बैश खोल स्क्रिप्ट में:

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

कमांड का त्रुटि कोड जांचें और इसके आउटपुट को पार्स करने या इसके बजाय खाली एक्सएमएल उत्पन्न करने का प्रयास न करें। कुछ ऐसा:

#!/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}"