在持续集成中自动化Git合并,但如果存在合并冲突则失败

3
我正在与一个团队合作,希望使用持续集成自动合并两个git分支。然而,我们希望如果出现合并冲突,持续集成任务会失败,以便开发人员可以手动运行合并并解决任何问题。
有没有人有这种设置的经验(最好是在TeamCity上,但任何CI服务器都很有趣)?
2个回答

2
这可以通过使用TeamCity的自动合并构建功能来实现。

enter image description here

合并操作将在构建成功后执行,但如果合并过程中存在任何冲突,则会导致构建失败。
更多详细信息可以在此处找到 - TeamCity文档 希望这有所帮助。

0

我之前写了一个Bash脚本来做这件事。实际上,完整的脚本为我们Github仓库中所有带有test标签的开放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
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接