TFS 编程中的事务

发布于 2024-11-17 16:30:37 字数 159 浏览 1 评论 0原文

我正在使用 C# 和 TFS SDK 2008 为特定的构建自动化任务开发一个小型应用程序。

我想知道我们是否可以针对 TFS 任务运行事务代码;例如,我想签入更改,然后自动创建标签,如果标签创建由于某些故障而失败,我想回滚我所做的最后更改。

这是可用的,还是我应该编码?

I am developing a small application for a specific build-automation task using C# and TFS SDK 2008.

I wonder if we can run transactional code against TFS tasks; for example I want to check-in a change and then create a label all automatically, if the label creation fails due to some failure I want to roll back the last change I made.

Is this available, or I should code this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

决绝 2024-11-24 16:30:37

您必须对此进行编码 - 不过 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=" />

签入

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

签出

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

撤消

$(TF) undo /noprompt /recursive $(FilePath)"/>

You will have to code this- MSBuild has support for this though.

Your first step is checking in the file.

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

Next step is to create a label. Here though, on error, we will rollback the checkout.

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

And finally, add the command to undo the checkout.

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

Examples of checkin, checkout and undo:

For all

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

Checkin

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

Checkout

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

Undo

$(TF) undo /noprompt /recursive $(FilePath)"/>
铁憨憨 2024-11-24 16:30:37

是的,确实如此。我建议将其分为两个任务。从第一个任务返回成功/失败代码,这将很容易使用 MS BUILD 实现。如果第一个任务成功,则执行第二个任务。

HTH

干杯,塔伦

Yes it does. I would recommend breaking this in to two tasks. From the 1st task return a success/failure code, this will be very easy to achieve using MS BUILD. If the first task succeeds then execute the 2nd task.

HTH

Cheers, Tarun

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文