【发布时间】:2015-07-02 21:51:15
【问题描述】:
与我合作的团队想使用持续集成来自动合并两个 git 分支。但是,如果存在合并冲突,我们希望持续集成作业失败,以便开发人员可以手动运行合并并解决任何问题。
有没有人有过这种设置的经验(最好是使用 TeamCity,但任何 CI 服务器都会很有趣)?
【问题讨论】:
标签: git continuous-integration teamcity
与我合作的团队想使用持续集成来自动合并两个 git 分支。但是,如果存在合并冲突,我们希望持续集成作业失败,以便开发人员可以手动运行合并并解决任何问题。
有没有人有过这种设置的经验(最好是使用 TeamCity,但任何 CI 服务器都会很有趣)?
【问题讨论】:
标签: git continuous-integration teamcity
这可以通过使用自动合并构建功能在 TeamCity 中实现
只有在构建成功后才会执行合并,但如果在合并过程中出现任何冲突,随后会导致构建失败。
更多细节可以在这里找到 - TeamCity Documentation
希望这会有所帮助。
【讨论】:
不久前我编写了一个 bash 脚本来执行此操作。实际上,完整的脚本会为我们 github 存储库中带有 test 标签的 all 打开 PR 执行此操作。
相关位:
try_merge()
{
test -n "$1"
local branch=$1 commit
if ! commit=$(git rev-parse --verify -q $branch)
then
error bogus $branch
return
fi
if bash -c 'set -o pipefail; git branch --contains '$commit' | grep -qw master'
then
warning already $branch
return
fi
if git merge --ff-only $branch $commit
then
good fast $branch $commit
return
fi
if git merge $branch $commit
then
good merge $branch $commit
return
fi
git merge --abort
error abort $branch $commit
return
}
【讨论】: