Git / Gerrit Jenkins持续集成:如何处理rebase需求

时间:2013-11-12 03:17:03

标签: git jenkins gerrit

我有一个关于持续与Jenkins for Git / Gerrit集成的问题:有没有办法取消Jenkins作业执行,因为Git更改需要在等待期间因先前的更改而导致的rebase / merge?

最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

经过调查,我发现了一种检测潜在合并冲突的方法。基于Windows的shell脚本如下所示:

git fetch
git merge-base HEAD origin/master > _base
set /p MERGEBASE=<_base
git merge-tree %MERGEBASE% HEAD origin/master | grep -E -A3 "changed in both">_tempDiff
cat _tempDiff
set /p VAR=<_tempDiff
if not "%VAR%"=="" (
      echo "Your change needs rebase"
      exit /b -1
)
exit /b 0

如果在Gerrit验证构建的第一个时运行此脚本,当前分支使用最新的主分支修改相同的文件时,构建将立即被破坏,通常用户必须在构建后在Gerrit中进行rebase。