Транзакции в программировании для TFS - PullRequest
2 голосов
/ 27 июня 2011

Я разрабатываю небольшое приложение для конкретной задачи автоматизации сборки с использованием C # и TFS SDK 2008.

Интересно, сможем ли мы запустить транзакционный код для задач TFS; например, я хочу зарегистрировать изменение и затем автоматически создать метку, если создание метки не удалось из-за какого-либо сбоя, я хочу откатить последнее внесенное изменение.

Это доступно, или я должен написать это?

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Вам придется кодировать это - MSBuild поддерживает это.

Ваш первый шаг - проверка в файле.

<Target Name="Checkin" />  
<Exec Command="Command_To_Checkin_File"  />  
</Target>

Следующим шагом является создание метки. Здесь, однако, по ошибке мы откатим заказ.

<Target Name="CreateLabel" />  
<Exec Command="Command_To_Create_Label"  />  
<OnError ExecuteTargets="UndoCheckout" />
</Target>

И, наконец, добавьте команду, чтобы отменить оформление заказа.

<Target Name="UndoCheckout" />  
<Exec Command="Command_To_Undo_Checkout"  />  
</Target>

Примеры регистрации, проверки и отмены:

Для всех

<Exec WorkingDirectory="$(SolutionRoot)" Command=" />

1017 * Checkin *

$(TF) checkin /comment:&quot;Auto-Build: Version Update&quot; /noprompt /override:&quot;Auto-Build: Version Update&quot; /recursive " />

Оформить заказ

$(TF) checkout /recursive $(FilePath)" />

Undo

$(TF) undo /noprompt /recursive $(FilePath)"/>
0 голосов
/ 27 июня 2011

Да, это так.Я бы рекомендовал разбить это на две задачи.Из 1-й задачи верните код успеха / неудачи, это будет очень легко сделать с помощью MS BUILD.Если первое задание выполнено успешно, выполните второе задание.

HTH

Приветствия, Тарун

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