我试图在Jenkins的两个分支之间合并,但我没有得到它。我试图解决这个问题,创建一个管道(groovy)并运行tfs merge命令,如下所示:
stage('Merging between Dev and Homologação') {
steps {
script{
try{
bat "tf merge ${TFS_BRANCH_DEV} ${TFS_BRANCH_HOMOLOGACAO} /recursive /version:T /login:${TFS_USR};${TFS_PSW}"
}
catch (exception) {
IS_MERGE = 1
}
try{
if (IS_MERGE == 1){
//resolve the merge conflits
bat "tf resolve ${TFS_BRANCH_HOMOLOGACAO} /auto:TakeTheirs /recursive /noprompt /login:${TFS_USR};${TFS_PSW}"
//build the solution
bat "\"${tool name: '.NET Compilação', type: 'msbuild'}\" ${TFS_BRANCH_HOMOLOGACAO_SO} /p:Configuration=Jenkins;Platform=\"Any CPU\" /t:Clean;Build"
}
}
catch (exception) {
throw exception
}
}
}
另一种解决方案是创建两个作业(自由样式),用于获取和构建开发和同源分支,然后使用multijob插件创建另一个作业。在那里,我调用其他两个构建作业,然后在命令窗口区域中运行merge and resolve命令。它不起作用。
我不知道该怎么办。我很容易使用git另一个项目,但使用TFS很难做到。
有人可以帮助我吗?
感谢。
答案 0 :(得分:0)
我找到了解决方案。
首先,必须删除所有工作区。之后,它需要清理TFS缓存,如下所示:
Tfs 2017:"%localappdata%\ Microsoft \ Team Foundation \ 7.0 \ Cache \"
Tfs 2015:"%localappdata%\ Microsoft \ Team Foundation \ 6.0 \ Cache \"
Tfs 2013:"%localappdata%\ Microsoft \ Team Foundation \ 5.0 \ Cache \"
Tfs 2012:"%localappdata%\ Microsoft \ Team Foundation \ 4.0 \ Cache \"
最后,如果jenkins中有自由样式的作业,请检查工作区是否正确。在常规选项卡中,单击高级项目选项按钮,然后标记"使用自定义工作区",在目录字段中通知工作区。