Tfs 如何复制工作项及其任务
我想复制一个工作项及其所有任务 我使用的是这个版本的产品:11.0.50727.1 我在项目中使用Scrum2.0模板Tfs 如何复制工作项及其任务,tfs,visual-studio-2012,workitem,Tfs,Visual Studio 2012,Workitem,我想复制一个工作项及其所有任务 我使用的是这个版本的产品:11.0.50727.1 我在项目中使用Scrum2.0模板 如果这是可能的,我该如何做呢?您尝试过Excel吗?在对工作项进行大规模编辑时,它是您最好的朋友。您可以复制/粘贴多个工作项。通过选择除ID列之外的所有列。复制它们,然后将它们粘贴到Excel中打开的查询的底部 您需要确保使用的是基于树的查询,并且要复制的所有列都是查询列的一部分 但这样可能会丢失HTML类型字段的格式 我很想知道为什么你想批量复制产品待办事项及其所有任务,从s
如果这是可能的,我该如何做呢?您尝试过Excel吗?在对工作项进行大规模编辑时,它是您最好的朋友。您可以复制/粘贴多个工作项。通过选择除ID列之外的所有列。复制它们,然后将它们粘贴到Excel中打开的查询的底部 您需要确保使用的是基于树的查询,并且要复制的所有列都是查询列的一部分 但这样可能会丢失HTML类型字段的格式
我很想知道为什么你想批量复制产品待办事项及其所有任务,从scrum的角度来看,我真的不知道这有什么意义。我知道这个问题已经有2年多的历史了。Excel不会为我创建父链接。以下是我的Powershell解决方案:
if ( (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
Add-PSSnapin Microsoft.TeamFoundation.PowerShell
}
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Common")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.WorkItemTracking.Client")
# Connect to TFS and get Work Item Store.
$tfsCollectionUrl = "https://tfs.CORP.com/tfs/group"
$tfs = Get-TfsServer -name $tfsCollectionUrl
$ws = $tfs.GetService([type]"Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore")
$storyID = 15211 # ID of the story you want to copy.
$story = $ws.GetWorkItem($storyID)
Write-Host "Cloning User Story: " + $story.Title
#Clone User Story
$cloneStory = $story.Copy()
($story, $cloneStory )
$cloneStory.Title = "COPY : " + $story.Title
# cloneStory will not have links to all the tasks that were linked to the orginal story.
# cloneStory will have two links, one to the same "feature" that the orginal was linked to, and one to the story it was cloned from.
$cloneStory.Links
# cloneStory will have 0 for an ID, because it has not yet been saved.
$cloneStory.Id
#$cloneStory.Save()
# cloneStory will now have an ID.
$cloneStory.Id
$parentID = $cloneStory.Id # Parent ID will be used to link new cloned tasks to this story.
$links = $story.Links
# Define a Link Type to be used in the loop.
$linkType = $ws.WorkItemLinkTypes[[Microsoft.TeamFoundation.WorkItemTracking.Client.CoreLinkTypeReferenceNames]::Hierarchy]
foreach ( $link in $links )
{
$itemID = $link.RelatedWorkItemId
#$itemID
$item = $ws.GetWorkItem($itemID)
if ( ($item.Type).Name -eq "Task" )
{
$reportLine = "Cloning Task ID:{0} {1}" -f $itemId, $item.Title
Write-Host $reportLine
# Clone the Task
# Create the Parent Link object
# Add the Parent Link to Cloned Task
# Save New Cloned Task
$cloneTask = $item.Copy()
$cloneTask.Title = "COPY : " + $item.Title
$parentLink = new-object Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemLink($linkType.ReverseEnd, $parentID)
$cloneTask.WorkItemLinks.Add($parentLink)
$cloneTask.save()
$cloneTask
}
else
{
$reportLine = "Skipping: {0} is not a Task, it is a {1}" -f $item.Title, ($item.Type).Name
Write-Host $reportLine
}
}
我不知道他是在分解迭代,还是将不完整的项目从一个迭代转移到下一个迭代?@JohnSaunders,这也是我的猜测。。。但这不应该经常发生,因为我们想为它提供一个功能;)。我不希望在两次迭代中完成相同的工作,除非每次都是“构建特性”、“设计特性”、“测试特性”、“部署特性”,在这种情况下,这些任务没有多大意义。谢谢大家。我会尝试Excel选项,老实说,我已经做过一次了,再也没用过,所以你再次提醒我。关于您的问题,在我们的业务中,您可以使用预定义的任务子集对用户历史进行建模,我们的开发工具可以很好地工作,这就是为什么我需要重复相同数量的任务。我没有拆分迭代,我确实需要将itemos从一个迭代移动到下一个迭代,但我只是更新了迭代字段。复制任务也有助于捕获发布步骤,从而获得一致、可重复的过程。可惜这仍然很难。DRY代表代码。可重复性对于我们世界的其他地方很重要!