0

我们有一个典型的工作流程,在 Git 功能分支上进行开发。master 上的更改被拉入特性分支,完成后,特性分支被合并到 master 中(大部分工作没有冲突)。

功能分支在 Jenkins 上不断构建(每个分支一个项目),尤其是为了运行在开发机器上难以完成的测试。这些构建的结果(失败或成功)的通知必须发送给相关的开发人员。从实际的角度来看,所涉及的开发人员是那些在功能分支上工作的人。没有必要让所有这些开发人员都收到通知,将通知发送给对分支进行最后一次更改的人就足够了(意思是:更改分支 HEAD 的值)。

问题是:如何以编程方式确定这些开发人员?我知道这可能不可能 100%,目标是找到一个可行但不完美的解决方案。

绝对不能发生的事情是从未在分支上工作过的提交作者收到通知。当 master 合并到分支中并且在初始分支创建之后,有(很多)提交作者与分支无关。

我会将我想到的方法作为答案,但如果有更好的解决方案,我很感兴趣。

4

1 回答 1

0

我会在功能分支上获取所有提交的集合,并删除出现在 master 上的所有提交。这可以通过 git log ^master branch-name来实现。在剩余的提交中,我会选择最新提交的作者。如果从 master 拉取,通知将发送给在拉取之前提交到分支的最后一个人。

仍然存在分支上可能根本没有提交的问题(在从 master 无法访问的意义上)。对于新分支上的第一次构建尤其如此。

于 2015-08-06T11:31:58.370 回答