2010-06-23 9 views
5

मैं विशिष्ट संशोधन पर फ़ाइलों को प्राप्त करने के लिए निर्यात() सदस्य फ़ंक्शन का उपयोग कर रहा हूं जो काम कर रहा है लेकिन अन्य मामलों में किसी कारण से यह नहीं है। सभी संशोधित पथों के लिए यह काम करता प्रतीत होता है हालांकि उस संशोधन में हटाए गए और कभी-कभी जोड़े गए फ़ाइलों के साथ मुझे अपवाद मिलता है कि यूआरएल में कोई फ़ाइल नहीं है। जब मैं इन पथों पर टर्टोइस एसवीएन "प्रतिलिपि संशोधन ..." का उपयोग करता हूं तो यह ठीक काम करता है और मैं सोच रहा हूं कि अगर मुझे शार्पएसवीएन के साथ कुछ याद आ रहा है, तो मैं सभी संशोधित फ़ाइलों के संशोधन पर पूर्ण संस्करण चाहूंगा। मेरे कोड का सामान्य विचार है:SharpSVN SvnClient.Export (...) हमेशा फ़ाइलों को क्यों नहीं ढूंढ रहा है जो वहां होना चाहिए?

if (logentry.ChangedPaths != null) 
{ 
    foreach (SvnChangeItem svnChangeItem in logentry.ChangedPaths) 
    { 
     SvnExportArgs ex = new SvnExportArgs(); 
     ex.Revision = revisionNum; 
     client.Export(SvnTarget.FromUri(new Uri(pathInsideRepo)), exportFile, ex); 
    } 
} 

किसी भी मदद या सुझाव की सराहना की जाएगी, धन्यवाद।

उत्तर

2

मैंने पाया कि SvnExportArgs के साथ केवल यूरी के बजाय एक SvnUriTarget का उपयोग करने से मुझे सही जानकारी प्राप्त करने की अनुमति मिली। इस बात पर भी यकीन नहीं है कि वे अलग क्यों हैं लेकिन यह काम करता है।

तो बजाय मैं ऊपर निर्यात पर इस्तेमाल किया:

client.Export(new SvnUriTarget(new Uri(pathInsideRepo), revisionNumber), exportFile, ex); 

जवाब मैंने पाया link text

2

कमांड लाइन ग्राहक एक ही व्यवहार है पर था। क्या हो रहा है कि एक फ़ाइल को इंगित करने वाले यूआरएल आ सकते हैं और जा सकते हैं। इसका अर्थ यह है कि अब हटाई गई फ़ाइल को इंगित करने वाला यूआरएल अमान्य है, जब तक कि आप निर्दिष्ट नहीं करते कि आप पुराने यूआरएल का उपयोग करना चाहते हैं। इसे एक पेग संशोधन कहा जाता है।

svnbook में peg revisions पर पढ़ें।

संबंधित मुद्दे