這是我的問題。我有一個構建腳本,它可以動態地將映射添加到某個工作區,然後在完成時取消映射它們。我擔心,如果(當)我的腳本在解映射完成之前失敗,映射將保留下來直到下一次,並搞砸了。TFS命令行:如何取消映射整個工作區?
所以我想在腳本開始時取消映射整個工作區,然後重新創建它,但問題是我不知道具體可能存在哪些內容。通過TFS命令行,我可以輕鬆地取消映射,但您必須確切知道映射是什麼。我的問題是如何完成這個最簡單,最好的方法?
感謝您的幫助!
這是我的問題。我有一個構建腳本,它可以動態地將映射添加到某個工作區,然後在完成時取消映射它們。我擔心,如果(當)我的腳本在解映射完成之前失敗,映射將保留下來直到下一次,並搞砸了。TFS命令行:如何取消映射整個工作區?
所以我想在腳本開始時取消映射整個工作區,然後重新創建它,但問題是我不知道具體可能存在哪些內容。通過TFS命令行,我可以輕鬆地取消映射,但您必須確切知道映射是什麼。我的問題是如何完成這個最簡單,最好的方法?
感謝您的幫助!
如果您確定在工作空間中不會有任何未決的更改需要保留,則可能更容易將其完全刪除並創建一個新的更改。
或者,如果你想堅持自己的算法,電動工具使它更容易:
$ws = get-tfsworkspace .
$ws.Folders | % { $ws.DeleteMapping($_) }
我的解決辦法,以挽救這個輸出...
$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
}
}
感謝您的。每天學些新東西... – JimDaniel 2009-08-29 22:58:36