给定分支提示的哈希集合,是否可以构造某种树来确定哪些提示是合并的候选者,哪些不是项目的当前主节点?
我不是CI/CD的人,但我试图从诗人的物理学角度理解是否有可能构建某种树来确定哪些分支有资格合并到master,哪些分支不符合。
澄清
出于此查询的目的,有问题的分支提示集合是 1( 与 master 没有冲突和 2( 已通过所有 CI 测试的分支。
听起来你想要的是某种测试可合并性的方法。 通常,这对于命令行 Git 二进制文件来说很难。 您可以尝试测试合并并在git merge --abort
退出非零时运行,但为此目的最好使用 libgit2(或您首选语言的包装器(,它提供了GIT_MERGE_FAIL_ON_CONFLICT
标志,可用于在不修改存储库的情况下检测这种情况。
至于检查您的CI或CD系统以查看是否所有测试都已通过,大概是可能的。 您还没有告诉我们您正在使用什么系统,但许多此类系统都有您可以使用的 API。
如果您使用的是 GitHub 等 Git 托管平台,则可以改为查询该状态,这样您就不必自己执行此操作。 GitHub 有关于如何检查拉取请求是否可合并的文档,还有一个您可以使用的检查 API。