【问题标题】:Check-in files in a TFS vNext build在 TFS vNext 构建中签入文件
【发布时间】:2017-12-30 00:10:07
【问题描述】:

我需要签入在 TFS 2017 vNext 构建期间生成的一些文件。 在我的旧 XAML 构建中,我可以使用 tf checkin 命令轻松完成此操作,因为文件位于构建工作区中。

在新的 vNext 构建中,工作区所有者是 Project Build ServiceProject Collection Build Service,即使我将代理配置为在不同帐户下运行也是如此。 有什么方法可以在构建工作区上执行签入?或者以某种方式配置谁拥有该工作区?

【问题讨论】:

  • 这应该不是问题。我正在使用 PowerShell 脚本来执行我的签入,并且 tf.exe 工作得很好。不过,您可能会检查工作区 - 现在是“\src”,之前是“\source”。
  • 签入生成的文件不是一个好习惯。它们应该是您为子孙后代构建输出的一部分,但在源代码管理中没有位置。

标签: tfs tfsbuild azure-pipelines


【解决方案1】:

TFVC Build Tasks extension 中有添加和签入更改任务。

对于没有挂起的更改,您需要通过调用 TF add 命令将文件添加到工作区的挂起更改列表中。

【讨论】:

    【解决方案2】:

    不推荐在构建管道期间签入/修改源代码。如果您真的想这样做,您可以编辑构建工作空间文件并在自定义/powershell 任务 eq 中使用 tf 命令

    cd $env:BUILD_SOURCESDIRECTORY
    
    $TFFile = Get-Item "C:\Program Files (x86)\Microsoft Visual Studio 1x.0\Common7\IDE\TF.exe"
    
    $tfOutput = [string]( & $TFFile.FullName checkin /noprompt /override:"***NO_CI*** New version is $newVersion." /comment:"***NO_CI*** New version is $newVersion." 2>&1)
    

    另一种方法是安装 TFS Power Tool 并使用 Windows PowerShell Cmdlet 签入文件。更多详情请参考此链接:PowerShell and TFS: The Basics and Beyond

    【讨论】:

    • 这正是我正在做的。但工作区归“项目构建服务”所有,与代理帐户不同。我收到的错误表明没有待处理的更改。
    • @shayc 与您的代理帐户无关。您需要检测您对 $(Build.SourcesDirectory) 所做的所有编辑和删除。如果不是,则不应有任何待处理的更改。要完成签入,您需要两个步骤:首先添加 ItemToTfs,然后提交 theTfsChange。你可以看看这个教程--How To Commit Code To TFS With PowerShell 其中包括工作流。
    猜你喜欢
    • 1970-01-01
    • 2019-12-16
    • 2016-06-20
    • 1970-01-01
    • 2015-12-11
    • 2016-08-27
    • 1970-01-01
    • 2016-07-30
    • 2016-04-18
    相关资源
    最近更新 更多