我有一个关于持续与Jenkins for Git / Gerrit集成的问题:有没有办法取消Jenkins作业执行,因为Git更改需要在等待期间因先前的更改而导致的rebase / merge?
最诚挚的问候,
答案 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。