这是我的问题。我有一个构建脚本,动态地将映射添加到某个工作区,然后在它通过时取消映射。我担心,如果(当)脚本在取消映射之前失败,映射将保持到下一次并且搞砸了。
所以我想在脚本开始时取消映射整个工作区,并重新创建它,但问题是我不知道具体可能是什么。通过TFS命令行,我可以轻松地取消映射,但您必须确切知道映射是什么。我的问题是如何最简单,最好的方法来完成这项工作?
感谢您的帮助!
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
如果您确定您需要保留的工作区中没有任何待处理的更改,则可能更容易将其完全删除并创建一个新的。
或者,如果您确实希望坚持使用算法,那么Power Tools可以让您更轻松:
$ws = get-tfsworkspace .
$ws.Folders | % { $ws.DeleteMapping($_) }