2012-06-21 5 views
5

मैंने एक ऐड का प्रयास करने से पहले फ़ाइल की स्थिति पूछने के लिए SharpSVN का उपयोग करके एक सरल सी # ऐप लिखा है। इस उद्देश्य के लिए मैंने विभिन्न स्थानों में जो उदाहरण देखे हैं, उनमें एसवीएन क्लाइंट की गेटस्टैटस विधि को कॉल करना, पूर्ण पथ में गुजरना और SvnStatusEventArgs के संग्रह में आउट पैरामीटर शामिल करना शामिल है।SvnClient.GetStatus (पथ, तर्क, स्थिति) संस्करणित फ़ाइल के लिए 0 लौट रहे हैं?

मेरी समझ यह है कि, एक फ़ाइल के लिए, GetStatus को SvnStatusEventArgs संग्रह के साथ वापस लौटना चाहिए, जिसमें बिल्कुल एक की गिनती है, जिसमें नोटवर्सन, लापता, सामान्य, और इसी तरह की स्थिति शामिल है।

मेरे आवेदन में, स्रोत नियंत्रण के तहत फ़ाइल में GetStatus को मेरी कॉल शून्य की संग्रहण गणना देता है।

 SvnClient foo = new SvnClient(); 
     Collection<SvnStatusEventArgs> statuses; 
     foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty}, out statuses); 

statuses.Count का मूल्य शून्य है, जब मैं एक स्थितियां [0] सामान्य की .LocalContentStatus मूल्य के साथ 1 की उम्मीद कर रहा हूँ। क्या यह उम्मीद गलत है? स्रोत नियंत्रण में फ़ाइल संदर्भित पथ के लिए कॉल करने के लिए कॉल, स्थिति [0] के साथ काम करता है। Notocersioned का LocalContentStatus मान।

पथ को एक कार्यशील प्रति होने के लिए सत्यापित किया गया है, और फ़ाइल प्रोग्राम.cs वास्तव में सबवर्सन में सूचीबद्ध है। मैं SharpSVN संस्करण 1.7005.2163.13448 और वीएस -2010 चला रहा हूं।

मेरे स्पष्ट भ्रम को साफ़ करने के लिए अग्रिम धन्यवाद।

संपादित करें कुछ और जानकारी: संशोधित करने के बाद, लेकिन नहीं, प्रोग्राम.cs, यह कोड स्निपेट अब "संशोधित" के स्थानीयकंटेंट स्टेटस के साथ एक एकल स्थिति मान देता है। फ़ाइल करने के बाद, मूल व्यवहार (कोई लौटाया गया स्थिति मान नहीं लौटा)।

+2

.Status() और .GetStatus() केवल 'रोचक' स्थिति नोड्स लौटाते हैं। आप इसे ऑब्जेक्ट ऑब्जेक्ट पर सेट करके सभी नोड्स को वापस कर सकते हैं। RetrieveAllEntries। –

+0

यह बहुत अच्छी जानकारी है, बर्ट। मैं कोशिश करूँगा और अपने अगले अवसर पर सलाह दूंगा। –

उत्तर

5

बर्ट हुजबेन की प्रतिक्रिया के आधार पर उत्तर प्राप्त करने में देरी के लिए क्षमा करें। मैं यहां हर किसी के लाभ के लिए एफवाईआई का जवाब पोस्ट कर रहा हूं।

था, वास्तव में, इस समस्या को हल SvnStatusArgs वस्तु की RetrieveAllEntries गुण सेट करने के लिए मूल GetStatus कॉल में संशोधन करना, और, फ़ाइलों की स्थानीय (लेकिन अरुचिकर :)) प्रतियां का कारण बनता है एक साथ 1 की वापसी स्थिति गिनती के लिए वांछित के रूप में "सामान्य," के LocalContentStatus।

foo.GetStatus("C:\\Temp\\svnu\\Program.cs", new SvnStatusArgs {Depth = SvnDepth.Empty, 
                   RetrieveAllEntries = true}, out statuses); 

बहुत धन्यवाद।

+0

आपका मतलब है 'पुनर्प्राप्त करें AllEntries'। – AbleArcher

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