从Gerrit搬到Crucible

Vic*_*Vic 11 jira gerrit atlassian-crucible

我们目前使用Gerrit,为一个大约十几个团队和一些开发人员.

这是我们当前的工作流程:
1.开发人员从master开始分支
2.开发人员在他们的本地分支上工作
3.开发人员推动gerrit,它通过在refs/for/master中包含推送的提交来保护master分支.(如果你不知道,gerrit也是一个存储库管理器.)4.Gerrit
调用Jenkins,在变更集上运行单元测试(和Selenium测试).如果失败,则提交将被踢回给开发人员.否则,Jenkins + 1s提交.
5.审阅者查看提交和+ 1s
6.高级审阅者查看提交和+ 2s并将变更集合并到refs/head/master(即实际分支)

我们喜欢这个工作流程 这很棒.它为我们的开发带来了精彩且非常需要的流程和纪律,并且从我们之前被忽视和忽略的代码审查瓶颈中创建了一个待办事项列表,每个人都对此感到高兴.

x - 间歇 - x

我们现在正在寻求将任务管理转移到Jira.在我设置它的同时,我也设置了Crucible,因为它似乎是自然集成以使代码审查成为整个shebang的一部分.我无法做的是重现我们已经爱上的工作流程.随着Jira/Crucible的集成,由于我们不再拥有我们的存储库守门所有东西(而且我们不想为Atlassian的Stash付费),我们会将代码推送到Bitbucket.我们不能再直接在master上工作了,因为糟糕的代码不再是"门保持",而是在通过任何测试或代码审查之前由开发人员合并到master中.保持它脱离主分支的唯一解决方案似乎是分叉.好吧,这很烦人,但我可以随便滚动.但是,如何通过开发人员的fork获取提交,以便在通过代码审查后合并到master分支中?这就是我希望从那些做过任何甚至远程相似的事情的人那里听到的,或者知道如何根据我的情况来完成它.

所有这一切的替代方法是尝试使用https://github.com/hobbs/jirret强制Jira和Gerrit之间的集成,但是它使用了Jira仍然支持但不再进行任何开发的XML RPC.

小智 4

Vic,要从开发人员的分支中获取更改并将它们带入原始存储库的主代码行,您可以在 Bitbucket 中使用拉取请求。它们是对您正在进行的 Crucible 代码审查的补充。如果分叉很痛苦,您可以尝试在存储库中创建一个“集成”分支,并让开发人员经常将代码推送到那里(甚至在准备好进行同行评审之前)。该分支就像一锅汤,集成问题可以在其中浮出水面并得到解决,而不会污染主服务器。Atlassian 的一些开发团队使用集成分支,并且还利用 Bamboo 支持自动将 CI 方案应用到新分支,以及每次构建时在分支之间自动合并。通常,每次将代码推送到开发分支时,您都会让 Bamboo 将您的开发分支合并到集成中。对于尽早发现冲突确实很有帮助。

Matt 链接的博客更详细地描述了这种工作流程。无论您使用什么 CI 工具,基本工作流程都可以成功(尽管 Bamboo 确实对其提供了很好的支持,并且具有出色的 JIRA 集成)。

我希望这有帮助!