我如何让Jenkins看到Git合并提交作为更改?

时间:2013-11-20 16:30:51

标签: git merge jenkins

用户A和B各自对特定仓库进行修改(在不同的功能分支上)。

用户A将更改合并到暂存分支。 Jenkins构建了分段分支,并且成功了。

用户C(用户B团队的发布经理)将用户B的更改合并到暂存分支。但是,合并中的某些内容出错并且未被注意到,例如未能正确解决的冲突。

Jenkins构建了分段分支,但由于合并错误而失败。

用户A和B会收到构建失败的通知,因为他们的代码是合并的一部分,即使他们的更改没有出错。用户C永远不会收到失败通知,即使他的错误合并是破坏了构建的。

有办法:

  1. 导致Jenkins将合并提交视为更改? (在合并期间实际上可能会修改代码!)
  2. 通知用户C(作为合并提交者)以及用户A和B?
  3. 我们正在使用Jenkins的GitEmail-ext插件。

    编辑,几个月后:仍然存在这方面的问题 - 即使在合并的人没有引入重大变更的情况下,他们仍然很高兴得到通知构建成功(或失败)。

2 个答案:

答案 0 :(得分:1)

您可以尝试强制始终no fast-forward merges--no-ff选项)并且所有合并甚至会产生合并提交(不仅在存在冲突时)。

它还可以生成更易读,更清晰的git日志。

BTW检查你是否拥有Jenkins Git plugin的最新版本(过去他们有issues)。

答案 1 :(得分:-3)

您所描述的问题是您最终会在git历史记录中提交额外的提交。

如果用户A和用户B正在进行需要最终合并的更改,那么,一旦合并,您的git历史记录应该显示用户A和用户B的更改的SHA。

如果我在userC合并了userB的更改后检查历史记录,那么我真的不希望看到额外的 git提交告诉我userC已经合并了userB的提交 - 后者已经出现在git历史中。

如果在git历史记录中记录了userC的合并 ,它将如何记录?差异会是什么样的?

我认为您描述的场景中的问题是,在合并注意到合并错误时,userC没有给予足够的重视。好的软件并不排除需要有能力的开发人员。