我需要找到与项目中某个主题相关的TFS工作项.为此,我尝试使用Visual Studio中的查询构建器查询工作项.
由于我希望搜索多个术语,我想象一个这样的查询:
WHERE (
Priority > 300 AND
(Title.Contains('Dog') OR Title.Contains('Cat') OR Title.Contains('Hamster')))
Run Code Online (Sandbox Code Playgroud)
现在,根据http://msdn.microsoft.com/en-us/library/dd286638.aspx(节和/或)应该能够做到这一点,像这样:
| Priority| > | 300
And | Title | Contains | Dog
Or | Title | Contains | Cat
Or | Title | Contains | Hamster
Run Code Online (Sandbox Code Playgroud)
但是......这不能像所描述的那样起作用:据我所见,这被视为
(优先级> 300 AND Title.Contains('Dog'))或Title.Contains('Cat')OR Title.Contains('Hamster')))
现在这对我来说有点问题,因为除了"优先级"标准之外,我还有8个额外的标准需要应用于所有匹配(日期,状态等).我不仅有三场冠军赛,而且还有十场左右.因此,这将成倍增加,我最终会得到一个非常长且多数冗余的查询.
..或者,我在这里遗漏了什么?有没有其他方式来表达这些陈述?或者是否有另一种方法来查询TFS工作项,比如另一种工具?
谢谢!
将变更集与工作项关联时,TFS默认为解析工作项.我想默认关联它.
我知道在TFS 2008中你必须使用像http://www.woodwardweb.com/vsts/000230.html这样的东西删除解决登记操作,但我认为我在某处读到有更好的方法来执行此操作TFS 2010.有谁知道是否是这种情况?
比尔,比尔
我想复制一个工作项及其所有任务.
我正在使用这个版本的产品:11.0.50727.1我正在使用Scrum 2.0模板进行项目
如果可以,我该怎么办?
我需要一个在构建之间制作的变更集(或工作项)列表(如果必要,我可以标记构建).我需要为我们的测试团队提供该列表(以及发布'changelist')
MSBuild任务是否能够检索该列表并保存为文件(然后我可以进一步处理该列表.
或者我可能需要从C#代码连接到TFS并自己检索该列表(我熟悉在C#中检索WorkItems)
我正在寻找一种方法来自动生成我的应用程序的两个版本之间的更改日志(实际上是一个工作项列表).我有两个版本的应用程序,v1和v2,每个版本都由TFS 2010(LABEL1和LABEL2)中的标签标识,我在构建应用程序的设置之前手动创建了该标签.我有一个分支系统,这意味着我有一个主干,大多数错误是固定的,并且一个分支,其中补丁主要使用来自主干的合并(但在分支上也有一些修复只与主干无关) .我的应用程序的两个版本(v1和v2)是分支的版本.
我希望TFS 2010能够返回这两个标签之间已修复的错误列表(即,类型= Bug的工作项列表已关闭并验证).
我尝试使用TFS 2010的Web UI或使用Visual Studio实现此目的,但我没有找到任何方法.
然后我尝试使用以下命令行向tf.exe询问历史记录:
tf history /server:http://server_url/collection_name "$/project_path" /version:LLABEL1~LLABEL2 /recursive /noprompt /format:brief
Run Code Online (Sandbox Code Playgroud)
其中LABEL1是与应用程序的v1的源代码关联的标签,LABEL2是与应用程序的v2的源代码关联的标签.它实际上以两种方式失败: - 命令行只返回变更集列表,而不是关联的已关闭工作项列表 - 变更集列表仅包含我在分支本身上应用的变更集,而不是我也应用的变更集和主干然后合并到分支.设置与否"/ slotmode"参数不会改变任何内容.
在那里,我尝试编写一段C#代码来检索工作项列表(而不是变更集列表):
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://server_url/collection_name"));
VersionControlServer controlServer = tfs.GetService<VersionControlServer>();
VersionControlServer vcs = tfs.GetService<VersionControlServer>();
VersionSpec sFrom = VersionSpec.ParseSingleSpec("LLABEL1", null);
VersionSpec sTo = VersionSpec.ParseSingleSpec("LLABEL2", null);
var changesets = vcs.QueryHistory(
"$/project_path",
sTo,
0,
RecursionType.Full,
null,
sFrom,
sTo,
int.MaxValue,
true,
false); // Slotmode to false
Dictionary<int, WorkItem> dico = new Dictionary<int, WorkItem>();
foreach (Changeset set in changesets)
{ …Run Code Online (Sandbox Code Playgroud) 我希望TFS 2010在特定的工作流转换发生时运行一些自定义代码.那可能吗?
我找到了有关自定义操作的文档,这些操作似乎是可以自动触发工作项转换的操作(我是否正确?)我还找到了与Builds相关的自定义活动.但没有任何东西符合这一特殊要求 - 我错过了什么吗?
谢谢你的帮助!
我正在尝试向tfs2010中的bug工作项添加一个新的字符串字段(IterationCompleted).使用TFS 2010电动工具,我编辑了添加新字段的工作项.这导致以下XML
<FieldDefinition reportable="dimension" refname="DevX.IterationCompleted" name="Iteration Completed" type="String">
<ALLOWEDVALUES>
<GLOBALLIST name="Iterations" />
</ALLOWEDVALUES>
<ALLOWEXISTINGVALUE />
<DEFAULT from="value" value="?" />
</FieldDefinition>
Run Code Online (Sandbox Code Playgroud)
我将它添加到一些相关字段旁边的表单中.这是相关的XML
<Group Label="Classification">
<Column PercentWidth="100">
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&Area:" LabelPosition="Left" />
<Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="Ite&ration Found:" LabelPosition="Left" />
<Control FieldName="DevX.IterationCompleted" Type="FieldControl" Label="Iteration Resolved:" LabelPosition="Left" Name="IterationCompleted" />
<Control FieldName="DevX.Customer" Type="FieldControl" Label="Customer:" LabelPosition="Left" />
<Control FieldName="DevX.ReleaseNotes" Type="FieldControl" Label="Include in Release Notes:" LabelPosition="Left" />
<Control FieldName="DevX.Billable" Type="FieldControl" Label="Billable:" LabelPosition="Left" Name="Billable" />
</Column>
</Group>
Run Code Online (Sandbox Code Playgroud)
它根本不涉及工作流程.
我遇到的问题是形式.对于新错误,该字段按预期显示并且可编辑(迭代已解决):

但是对于旧错误,该字段不可编辑.事实上,根本没有控制输入任何东西:

我发现了一个类似的问题,其中包含一个已接受的答案,以确保该字段为String,并且在Form上将类型设置为FieldControl.正如你所看到的,我已经做到了,并且仍然得到了我在上面看到的结果.我过去成功添加了字段,从未遇到过这个问题.有谁知道我可以做些什么来让这个字段在旧bug中编辑?
我正在编写一个实用程序来读取遗留错误跟踪系统中的所有缺陷,并将它们导入TFS(2008/2010).我正在使用TFS API创建新的WorkItems,设置它们的字段,然后保存它们.但是,我无法修改"创建者"和"创建日期"字段,因为这些字段是由系统设置的.(还有其他字段,我希望能够强制使用值,例如将提交者设置为不是有效TFS用户的人)
// these fail with "The value for the field 'Created By' cannot be changed."
defectWorkItem.Fields["Created By"].Value = defect.Submitter;
defectWorkItem.Fields["Created Date"].Value = defect.SubmitDate;
Run Code Online (Sandbox Code Playgroud)
显然,如果我不能设置这些字段,我将最终得到所有遗留的错误,看起来它们是由同一个人在同一天创建的.
有没有办法可以使用API但强制通过更改通常受保护的字段?我已经考虑直接访问TFS数据库表,但架构看起来很复杂,我认为尝试自己修改数据会很危险.
我正试图找出一种方法来找出哪些文件受到TFS 2008中工作项的影响.
我意识到这是一个已经被其他人问过的问题的重复 - 查看作为TFS中的工作项目的一部分而更改的所有文件的列表,但是它没有得到答复,我一直都在寻找这个而.
据我所知,可以查看工作项的链接选项卡,然后查看每个更改集以查看已更改的文件.但是,工作项很可能最终会有许多与之相关的变更集,我想查看作为工作项的一部分修改的文件,但我觉得如果我失去一两个文件的可能性非常高必须依靠单独查看100多个变更集中的每一个.
有谁知道这样做的方法?在此先感谢任何帮助或指导.