2011-08-08 14 views
5

मैं प्रोग्रामिक रूप से यह निर्धारित कैसे कर सकता हूं कि यह फ़ाइल किस शाखा से संबंधित है? मैंने बिना किसी परिणाम के इसे समझने के लिए 3 घंटे बिताए हैं। मुझे यह विषय मिला लेकिन यह वही नहीं है जो मैं चाहता हूं: How to programmatically get information about branches in TFS?टीएफएस 2010 प्रोग्रामेटिक रूप से आइटम शाखा का निर्धारण

+0

क्या आप अपने कार्यक्षेत्र में एक फ़ाइल का संदर्भ ले रहे हैं, या स्रोत नियंत्रण पथ में एक फ़ाइल का जिक्र कर रहे हैं? –

+0

शायद मैं अपने विवरण का अधिक विवरण में वर्णन करूंगा, जो मैं करना चाहता हूं वह कस्टम नीति है जो यह निर्धारित करती है कि परिवर्तन में सभी फाइलें एकल शाखा से आती हैं, इसलिए आपके प्रश्न का उत्तर दें मुझे नहीं लगता कि यह वास्तव में लंबित है क्योंकि चेंज के पास बॉट पथ हैं , लोकलइटम - वर्कस्पेस पथ, सर्वरइटम - स्रोत नियंत्रण पथ। – Krzysiek

+0

धन्यवाद। कृपया उस प्रश्न को अपने प्रश्न में जोड़ें। आपके द्वारा प्रदान की जाने वाली अधिक जानकारी, बेहतर। हालांकि, मुझे चिंतित है कि आप उन सभी की तुलना में स्रोत नियंत्रण पेड़ में उच्चतर शाखा बिंदु से आने के लिए परिवर्तन में सभी फ़ाइलों की आवश्यकता लेना चाहते हैं। क्या आपका स्रोत नियंत्रण "$/Main" और वहां से शाखा से शुरू होता है? –

उत्तर

2

एक विशिष्ट फ़ाइल के लिए शाखा जानकारी प्राप्त करने का एकमात्र तरीका वर्जनकंट्रोल सर्वर का उपयोग करना है .QueryBranchObjects प्रत्येक संभावित शाखा को फ़ोल्डर संरचना में सभी तरह से पूछने के लिए जड़ के लिए।

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

4

मुझे एक बहुत ही समस्या थी। मैं यह करने के लिए एक समाधान मिल गया है, यहाँ कोड है:

... 
// get all branches 
VersionControlServer vcs = tfs.GetService(typeof(VersionControlServer)); 
BranchObject[] allBranches = vcs.QueryRootBranchObjects(RecursionType.Full); 

string myItem = "$/My Project/some Path including the branch/myFile.txt"; 

foreach(BranchObject branch in allBranches) 
{ 
    if(myItem.Contains(branch.Properties.RootItem.Item)) 
    { 
    // branch is the branch to which the item belongs! :) 
    } 
} 
... 

मुझे आशा है कि यह इस समस्या के साथ किसी मदद करता है, मुझे लगता है कि सेशन पहले से ही हल किया है (यह एक समय हो गया है जब से वह प्रश्न पूछा)।

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