在TFS中使用teamcity,是否可以先运行shelveset而不首先将其放到我的工作区?我找到了只从挂起的更改中运行它的方法(因此没有得到解决),但这似乎很奇怪,这是不可能的。
使用Visual Studio 2008和teamcity添加8.1。
答案 0 :(得分:2)
该功能目前尚未内置于TeamCity的TFS VCS插件中。
作为一种解决方法,您可以使用自定义构建配置参数和自定义构建步骤来执行此操作,该步骤会在构建之前自动取消搁置搁置集。
我在此处创建了一项功能请求:https://youtrack.jetbrains.com/issue/TW-43793
手动解决方法:
创建新的构建参数:
姓名:ShelvesetName
善意:Configuration parameter
规格:text description='The shelveset to unshelve in the format |[shelvesetname|[;username|]|]' label='Shelveset Name' validationMode='any' display='normal'
创建新的构建步骤:
亚军类型: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
您可能需要使用代理和您正在使用的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
。