从Gerrit迁移到Crucible

11

我们目前使用Gerrit进行团队的开发,在这里我们有十几名开发人员。

这是我们当前的工作流程:
1. 开发人员从主分支上创建自己的分支
2. 开发人员在本地分支上进行开发
3. 开发人员将代码推送到Gerrit,该平台通过包含提交的内容在refs/for/master中来保护主分支(如果你不知道,Gerrit也是一个仓库管理工具)。
4. Gerrit调用Jenkins,在更改集上运行单元测试和Selenium测试。如果测试失败,提交将被退回给开发人员。否则,Jenkins会+1提交。
5. 评审人员审查提交并+1
6. 高级评审人员审查提交并+2,更改集合并到refs/head/master(即实际的分支)

我们非常喜欢这个工作流程;它很棒,它为我们的开发带来了必要的过程和纪律,并使我们之前被忽视和忽略的代码审查瓶颈变成一份待办事项清单,每个人都更加满意。

x - 中间休息 - x

现在,我们正在考虑将任务管理转移到Jira上。当我设置它时,我还设置了Crucible,因为它似乎是将代码审查作为整个流程的一部分进行自然集成的工具。但我无法复制我们喜欢的上述工作流程。由于Jira/Crucible集成中不再有仓库来保护所有内容(而且我们不想付Atlassian's Stash),所以我们将代码推送到Bitbucket。我们不能再直接在主分支上进行开发了,因为错误的代码将不再通过任何测试或代码审查就被开发人员合并到主分支中。唯一的解决方案似乎是使用forks来避免这种情况。好吧,这很烦人,但我可以接受。但是,如何让开发人员的fork的提交经过代码审查后合并到主分支中呢?我想听听那些做过类似事情或知道如何在我的情况下完成任务的人的建议。

如果不采用以上的方法,还有一个选择是尝试使用https://github.com/hobbs/jirret来强制集成Jira和Gerrit,但这种方法使用的是XML RPC,Jira仍然支持,但不再进行任何开发。


我会将这个问题转发给Atlassian的Sarah Goff Dupont,因为她刚刚在http://blogs.atlassian.com/2012/07/feature-branching-continuous-integrationgit-bamboo/上发布了与此相关的两篇博客。 - mdoar
我最终得到了更多惊人的信息,目前还需要一些时间来处理它! - Vic
3个回答

4
为了将开发者的分支中的更改内容整合到原始代码库的主分支中,您可以使用Bitbucket中的pull requests来实现。这与您正在进行的Crucible代码审查是互补的。如果复制是一件麻烦事,您可以尝试在您的仓库中创建一个"集成"分支,并让开发人员经常将代码推送到该分支(甚至在他们准备好进行同行评审之前)。这个分支成为一个汤,在这里,集成问题可以浮出水面并得到解决,而不会污染主分支。Atlassian的一些开发团队使用集成分支,并利用Bamboo对新分支自动应用CI方案和分支之间的自动合并的支持。通常情况下,您可以让Bamboo在每次将代码推送到开发分支时将其合并到集成分支中。这对于早期发现冲突非常有帮助。

Matt链接的博客详细描述了这种工作流程。基本的工作流程可以在使用任何CI工具的情况下都能成功(尽管Bamboo对此提供了非常好的支持和JIRA集成)。

我希望这可以帮到您!


1

如果您不介意进行一些编程,您可以使用Jira脚本套件来使用Jira工作流事务在服务器上运行实际代码,并相应地更新问题内容/状态。要显示动态内容(从本地文件或任何远程服务器获取),您可以使用Jira行为插件并通过使用JavaScript和HTML代码

正如我所说,这需要一些编程,但您可以将原始工作流与Jira集成。

一个小提示-尽管“XML RPC仍然支持Jira,但不再进行任何开发”,但此API非常强大,并具有某些其他API缺乏的功能,因此即使它不会被未来开发,您可能会发现它适合大多数需求。

希望能对您有所帮助。


0

我现在在Bitbucket的跟踪器上开了一个票,询问关于类似的事情:https://bitbucket.org/site/master/issue/5652/allow-for-pull-requests-to-require

不幸的是,从Atlassian那里得到的答案是“抱歉,我们不会这样做。请购买Stash。”我们对此的问题是,Stash目前不是托管解决方案,并且我们没有计划建立基础设施来自行托管它(实际上,我们以前确实这样做了,但在与Atlassian交谈后最终迁移到了他们的托管解决方案)。我不太确定为什么他们不将其作为Bitbucket的“企业”功能提供,考虑到他们已经在Stash中完成了这项工作。就目前而言,我认为我能做的就是让人们在那张票上发表评论,以显示开发人员对这些类型的工作流程非常感兴趣(这是一个可以使其与GitHub区分开来的功能!)。


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