0

这是我的问题。我有一个构建脚本,它动态地将映射添加到某个工作区,然后在完成时取消映射它们。我担心如果(何时)我的脚本在取消映射完成之前失败,映射将一直保留到下一次并且搞砸了。

所以我想在脚本开始时取消映射整个工作区,然后重新创建它,但问题是我不知道具体可能存在什么。通过 TFS 命令行,我可以很容易地取消映射,但您必须确切知道映射是什么。我的问题是如何最简单、最好地完成这项工作?

谢谢你的帮助!

4

2 回答 2

0

我的解决方案是保存这个的输出......

$workspace_info = [String[]] (&$tfs_cli workfold /workspace:$workspace_name)

...进入一个字符串数组,然后对其进行迭代,寻找表示映射的“$/”,然后取消映射

foreach($wi in $workspace_info) 
{ 
    if($wi.Contains("$/")) 
    { 
        $mapping = $wi
        #minor string manipulation code left out for brevity

        &$tfs_cli /unmap $mapping /workspace:$workspace_name
    }
}
于 2009-08-28T21:30:11.660 回答
0

如果您确定需要保留的工作区中不会有任何待处理的更改,那么将其完全删除并创建一个新的可能会更容易。

或者,如果您确实想坚持使用您的算法,Power Tools 会让它变得更容易:

$ws = get-tfsworkspace .
$ws.Folders | % { $ws.DeleteMapping($_) }
于 2009-08-29T16:15:18.363 回答