Командная строка TFS: как отменить отображение всего рабочего пространства? - PullRequest
0 голосов
/ 29 августа 2009

Вот моя проблема. У меня есть сценарий сборки, который динамически добавляет сопоставления в определенную рабочую область, а затем распаковывает их по окончании. Я обеспокоен тем, что если (когда) мой сценарий завершится неудачей до того, как будет выполнено удаление сопоставлений, сопоставления останутся отложенными до следующего раза и испортят все.

Итак, я хотел бы разархивировать всю рабочую область в начале сценария и воссоздать ее, но проблема в том, что я не знаю, что конкретно там может быть. Через командную строку TFS я могу достаточно легко удалить карту, но вы должны точно знать, что такое отображение. Мой вопрос: как проще всего это сделать?

Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 29 августа 2009

Если вы уверены, что не будет никаких ожидающих изменений в рабочем пространстве, которое вам нужно сохранить, вероятно, проще удалить его полностью и создать новое.

Или, если вы хотите придерживаться своего алгоритма, Power Tools сделает его намного проще:

$ws = get-tfsworkspace .
$ws.Folders | % { $ws.DeleteMapping($_) }
0 голосов
/ 29 августа 2009

Мое решение состояло в том, чтобы сохранить выходные данные этого ...

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

... в строковый массив, затем выполните итерацию по нему, ища "$ /", который указывает на отображение, и unmap

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
    }
}
...