2011-05-10 17 views
11

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

उत्तर

12

मैंने अभी वेबिनार डेवलपर और परीक्षक सहयोग में सुधार किया जहां मैंने अपना प्रश्न उठाया। Alpi.com के प्रशिक्षक केन आर्नेसन ने पुष्टि की कि परिवर्तनों के लिंक टीएफएस टीम एक्सप्लोरर में क्वेरी संपादक के माध्यम से रिपोर्ट करने योग्य नहीं हैं। परिवर्तनों के लिंक तक पहुंचने के लिए, "क्यूब" तक पहुंचने के लिए अन्य टूल्स का उपयोग किया जाना चाहिए। मुझे सीखने के लिए और कुछ है।

+1

एह गैड्स जो बेकार है, मैं कुछ ऐसा करने की तलाश में हूं, मैं किसी विशेष दिनांक सीमा में परिवर्तन सेट से जुड़े कार्य आइटम देखना चाहता हूं। अगर मुझे कुछ उपयोगी लगता है तो मैं टिप्पणी करूंगा या जवाब दूंगा। – BlackICE

+0

मेह, मेरे लिए बहुत उपयोगी था, बस यह देखने के लिए कि प्रश्नों का उपयोग कैसे करें ... – anhoppe

21

एक विकल्प निम्न स्निपेट की तरह TFS API का उपयोग करना है।

var projectCollection = new TfsTeamProjectCollection(
    new Uri("http://localhost:8080/tfs"), 
    new UICredentialsProvider()); 
projectCollection.EnsureAuthenticated(); 
var workItemStore = projectCollection.GetService<WorkItemStore>(); 
var versionControlServer = projectCollection.GetService<VersionControlServer>(); 
var artifactProvider = versionControlServer.ArtifactProvider; 
var project = workItemStore.Projects["Test01.MSFAgile.v5"]; 
var teamQueryFolder = project.QueryHierarchy["Team Queries"] as QueryFolder; 
var query = teamQueryFolder["My Tasks"]; 
var queryDefinition = workItemStore.GetQueryDefinition(query.Id); 
var variables = new Dictionary<string, string> 
{ 
    {"project", query.Project.Name} 
}; 
var workItemCollection = workItemStore.Query(
    queryDefinition.QueryText, 
    variables); 
foreach (WorkItem workItem in workItemCollection) 
{ 
    Console.WriteLine("WI: {0}, Title: {1}", workItem.Id, workItem.Title); 
    foreach (var changeset in 
     workItem.Links 
      .OfType<ExternalLink>() 
      .Select(link => artifactProvider 
       .GetChangeset(new Uri(link.LinkedArtifactUri)))) 
    { 
     Console.WriteLine(
      "CS: {0}, Comment: {1}", 
      changeset.ChangesetId, 
      changeset.Comment); 
    } 
} 
9

आप एक क्वेरी करते हैं और बाहरी लिंक गिनती> 0 शामिल करते हैं तो यह वास्तव में आप सब काम आइटम नहीं हैं कि इसके साथ जुड़े changesets दे देंगे।

+0

अरे, यह काफी आसान था! मेरी आवश्यकता केवल परिवर्तनों के बिना आवश्यकताओं की ऑडिट करने के लिए थी, इसलिए यह मुझे इसकी आवश्यकता है! – StoneJedi

+1

ध्यान रखें कि टेस्ट परिणाम बाहरी लिंक गणना भी बढ़ाएंगे, इसलिए यदि आप परीक्षण निष्पादन के लिए टीएफएस का उपयोग करते हैं तो यह सबसे अच्छा तरीका नहीं हो सकता है। – Technobabble