【问题标题】:Forcing a TFS checkin of a file via C#通过 C# 强制对文件进行 TFS 签入
【发布时间】:2010-09-17 20:26:00
【问题描述】:

如何指定我总是希望本地文件替换服务器副本,即使 TFS 副本较新?


if (pendingChanges.GetUpperBound(0)>-1)
   ChangeSetNumber = workspace.CheckIn(pendingChanges, filename);

我可以从智能感知中看到,我可以将 checkinoptions 指定为 CheckIn 方法的参数,但我只是找不到需要输入的内容以使其始终签入并忽略我的任何冲突可能会想出。

提前致谢。
编辑:我找到了一个命令 TF RESOLVE "item" /auto:AcceptYours /recursive 所以我想我修改后的问题是是否有与 /auto:AcceptYours 开关等效的编程?
NecroEDIT:在签入前处理冲突

Conflict[] 冲突 = workspace.QueryConflicts(new string[] { TFSProject }, true); foreach(冲突中的冲突) { 冲突.Resolution = Resolution.AcceptTheirs; 工作区.ResolveConflict(冲突); }

【问题讨论】:

  • 您不应该进行合并而不是替换吗?

标签: checkin


【解决方案1】:

签入是原子的——要么全部成功,要么全部失败。 如果在签入前有任何冲突需要解决,签入操作会抛出异常。(文档)

您必须评估签入是否存在冲突,然后通过 Workspace.ResolveConflict 方法解决 CheckinConflicts。 ResolveConflict 需要 CheckinConflict,而 EvaluateCheckin 的结果(即 CheckinEvaluationResult)包含 CheckinConflicts。

This page 可能会有所帮助。

注意:checkinoptions 与您的要求无关。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-05-27
    • 2016-01-23
    • 2011-05-05
    • 1970-01-01
    • 2012-07-27
    • 2013-02-13
    • 2021-03-09
    • 2012-12-30
    • 2015-07-21
    相关资源
    最近更新 更多