2009-05-15 5 views
10

हाय मैं सी # और शार्पस्विन पुस्तकालय का उपयोग करता हूं। मैं यह जांचना चाहता हूं कि फ़ाइल SvnClient के साथ जोड़ने से पहले स्रोत नियंत्रण में है या नहीं। जोड़ें। जब मैं इसे फ़ाइल पर करता हूं जो पहले से ही एसवीएन के तहत है, तो मुझे त्रुटि मिलती है: "पहले से ही संस्करण नियंत्रण में है"।कैसे जांचें कि फ़ाइल SharpSvn में स्रोत नियंत्रण में है या नहीं?

उत्तर

10

यह बहुत अच्छी तरह से दर्शाता है कि कैसे स्थिति

using(SvnClient client = new SvnClient()) 
{ 
    SvnStatusArgs sa = new SvnStatusArgs(); 
    sa.Depth = SvnDepth.Empty; // Adjust this to check direct files, or (recursive) directories etc 

    Collection<SvnStatusEventArgs> statuses; 
    client.GetStatus("c:\\somefile.txt", sa, out statuses); 

    Assert.That(statuses.Count, Is.EqualTo(1)); 
    Assert.That(SvnStatus.NotVersioned, Is.EqualTo(statuses[0].LocalContentStatus)); 
} 
+3

.GetInfo() के साथ जांच करना थोड़ा सस्ता है (यदि आप केवल यह जानना चाहते हैं कि फ़ाइल स्रोत नियंत्रण में है या नहीं, तो फ़ाइल संशोधित है या नहीं। –

+0

'.Status() 'फ़ाइल तुलना में एक फ़ाइल तुलना करेगा यदि फ़ाइल संशोधित हो सकती है, तो केवल 2 जीबीटीई फ़ाइल के अंतिम बाइट को संशोधित करने के मामले में सबसे खराब मामला संशोधित किया गया था, यह निर्धारित करने के लिए लगभग 2 * 2 GByte पढ़ सकता है। 'INCFO() 'के साथ आप सुनिश्चित हैं कि यह कभी नहीं होता है। –

6

का उपयोग कर आप केवल तब फ़ाइल स्रोत नियंत्रण में है आप .Info()/.GetInfo() इस्तेमाल कर सकते हैं जानना चाहते हैं यह करने के लिए। यह विधि आम तौर पर तेज़ होती है क्योंकि इसे जांचना नहीं पड़ता है कि फ़ाइल की जांच होने के बाद से फ़ाइल बदल गई है या नहीं।

+0

'.Status() 'फ़ाइल तुलना में एक फ़ाइल तुलना करेगा यदि फ़ाइल संशोधित हो सकती है, तो केवल 2 जीबीटीई फ़ाइल के अंतिम बाइट को संशोधित करने के मामले में सबसे खराब मामला संशोधित किया गया था, यह निर्धारित करने के लिए लगभग 2 * 2 GByte पढ़ सकता है। 'INCFO() 'के साथ आप सुनिश्चित हैं कि यह कभी नहीं होता है। –

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