2008-12-07 9 views
5

जिस परियोजना पर मैं काम कर रहा हूं उसे उपयोगकर्ताओं के स्रोत नियंत्रण तक पहुंच की आवश्यकता है। ऐसा करने के लिए हम पेर्सफोर्स एपीआई और सबवर्जन एपीआई को लपेट रहे हैं (क्रमशः पी 4 एनईटी और सबवर्जनशर्प का उपयोग कर)।क्या एकाधिक एससीएम प्रदाता के एपीआई लपेटने के लिए सी # लाइब्रेरी है?

हम उपयोगकर्ता आवश्यकताओं के आधार पर जितना हम कर सकते हैं उतना समर्थन करना चाहते हैं और मैंने मौजूदा पुस्तकालय के लिए googling की कोशिश की है लेकिन कोई भाग्य नहीं है। क्या सी # लाइब्रेरी जो एकाधिक एससीएम अनुप्रयोगों को लपेटती है?

उत्तर

2

आप propably माइक्रोसॉफ्ट स्रोत कोड नियंत्रण प्रदाता (MSSCCI) के लिए खोज। मुझे पता है, स्रोत सुरक्षित, टीम फाउंडेशन सर्वर, सबवर्जन, इवोल्यूशन, (और कुछ अन्य) स्रोत नियंत्रण उत्पादों में यह इंटरफेस लागू है।

1

एमएसएससीसीआई कई स्रोत नियंत्रण उत्पादों को विजुअल स्टूडियो से सीधे पहुंचने में मदद करेगा, लेकिन यह आवश्यक नहीं है कि .NET कोड से उपयोग योग्य हो। मेरे ज्ञान के लिए, कोई .NET लाइब्रेरी नहीं है जो सभी स्रोत नियंत्रण उत्पादों तक पहुंच को सारणीबद्ध करती है, यहां तक ​​कि एक से अधिक तक नहीं।

यह दिलचस्प होगा अगर आप एक एमएसएससीसीआई प्रदाता (शायद आपको कुछ सी ++ हेडर लागू करना होगा) .NET असेंबली के रूप में लपेटें।

+0

वीएस 2005 में एसडीके नमूना है कि सी # में एमएसएससीसीआई प्रदाता को कैसे कार्यान्वित किया जाए। यह एसडीके डाउनलोड करने के लिए स्वतंत्र है। – TcKs

+0

यह एक एमएसएससीसीआई प्रदाता उदाहरण नहीं है, लेकिन एक नई शैली एससीसी पैकेज कार्यान्वयन है। (ऐसे पैकेज वीएसएस के बाहर नहीं चलते हैं, लेकिन पुरानी एमएसएससीसीआई एपीआई की तुलना में वीएस में खुद को बेहतर एकीकरण की अनुमति देते हैं: कोई चेकआउट-चेकिन आवश्यकताएं और नहीं) –

1

आप DllImport/इंटरॉप के माध्यम से MSSCCI आह्वान कर सकते हैं?

तथ्य की बात है, हाँ के रूप में संपादित करें ...

[DllImport(@"C:\Program Files\Microsoft Visual Studio\Common\VSS\win32\SSSCC.DLL")] 
0

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

अधिकांश नए स्रोत नियंत्रण प्रणाली अद्यतन/मर्ज सिद्धांत का उपयोग करते हैं और/या पुराने व्यवहार की नकल करने के लिए अद्यतन/मर्ज और लॉकिंग के संयोजन की अनुमति देते हैं।

यदि आप सबवर्सन से .NET का उपयोग करना चाहते हैं तो आपको नई SharpSvn लाइब्रेरी को भी देखना चाहिए, क्योंकि आपको सभी नेटवर्जन पावर को .Net शैली api में प्रदान किया जाता है। (यदि आपको पसंद नहीं है तो आपको स्मृति प्रबंधन, एपीआर सरणी, फ़ंक्शन पॉइंटर्स इत्यादि के बारे में सोचना नहीं है)।

ज्यादातर मामलों में यह आपको पुराने बाइंडिंग कोड के कोड के लगभग 1/5 वें के साथ सबवर्सन का उपयोग करने की अनुमति देता है।

using(SvnClient client = new SvnClient()) 
{ 
    client.Update(@"C:\My\WorkingCopy"); 

    // Do something to your working copy 
    File.AppendAllText(@"C:\My\WorkingCopy", "\nFile Change\n"); 

    SvnCommitArgs ca = new SvnCommitArgs(); 
    ca.LogMessage = "Line added"; 

    client.Commit(@"C:\My\WorkingCopy", ca); 
} 
संबंधित मुद्दे