运行shelveset作为远程运行而没有取消搁置

时间:2015-08-04 14:07:14

标签: tfs teamcity

在TFS中使用teamcity,是否可以先运行shelveset而不首先将其放到我的工作区?我找到了只从挂起的更改中运行它的方法(因此没有得到解决),但这似乎很奇怪,这是不可能的。

使用Visual Studio 2008和teamcity添加8.1。

1 个答案:

答案 0 :(得分:2)

该功能目前尚未内置于TeamCity的TFS VCS插件中。

作为一种解决方法,您可以使用自定义构建配置参数和自定义构建步骤来执行此操作,该步骤会在构建之前自动取消搁置搁置集。

我在此处创建了一项功能请求:https://youtrack.jetbrains.com/issue/TW-43793

手动解决方法:

  1. 创建新的构建参数:

    姓名:ShelvesetName
    善意:Configuration parameter
    规格:text description='The shelveset to unshelve in the format |[shelvesetname|[;username|]|]' label='Shelveset Name' validationMode='any' display='normal'

  2. 创建新的构建步骤:

    亚军类型:Command Line
    步骤名称:Unshelve shelveset
    执行步骤:If all previous steps finished successfully
    运行:Custom script
    自定义脚本:
    if "%ShelvesetName%"=="" exit /b 0

    "%VS2013_Path%\tf.exe" unshelve "%ShelvesetName%" "%vcsroot.vcsroot-name.tfs-root%" /recursive /noprompt /login:domain\username,password

  3. 您可能需要使用代理和您正在使用的Visual Studio版本中的相应变量/参数更改VS2013_Path

    您必须使用vcs root的名称更改vcsroot-name,并删除/login参数或指定您自己的凭据。

    必须将VCS根签出模式设置为Automatically on agent (if supported by VCS roots),以便TeamCity创建TFS工作区,以便正常工作。

    最后,当您运行自定义构建时,请将Shelveset Name标签上的Parameters字段设置为shelveset的名称,包括所有者,例如shelveset1;domain\username