11

我们目前使用 Gerrit,用于一个由大约十几个开发人员组成的团队。

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

我们喜欢这个工作流程;这很棒。它为我们的开发带来了美妙且急需的流程和纪律,并从我们之前被忽视和忽视的代码审查瓶颈中列出了待办事项,每个人都为此感到高兴。

x - 中场休息 - x

我们现在希望将我们的任务管理转移到 Jira。在我设置它的同时,我还设置了 Crucible,因为它似乎是让代码审查成为整个 shebang 的一部分的自然集成。我无法做的是在我们喜欢的上面重现我们的工作流程。借助 Jira/Crucible 集成,由于我们不再拥有存储库的一切看门人(而且我们不想为 Atlassian 的 Stash 付费),我们会将代码推送到 Bitbucket。我们不能再直接在 master 上工作,因为坏代码将不再是“门控”,而是在通过任何测试或代码审查之前由开发人员合并到 master 中。将其排除在主分支之外的唯一解决方案似乎是分叉。好吧,这很烦人,但我可以接受。但是我如何从开发人员那里获得提交' s fork 在通过代码审查后合并到主分支?这就是我想从做过任何类似事情的人那里听到的,或者根据我的情况知道如何完成它。

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

4

3 回答 3

4

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

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

我希望这有帮助!

于 2012-08-20T17:17:46.990 回答
1

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

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

一个小提示——虽然“Jira 仍然支持但不会再做任何开发的 XML RPC”这个 API 非常强大并且具有一些其他 API 所缺乏的功能,所以即使它不会在未来被开发,你可能会发现它可以满足您的大部分需求。

希望有所帮助。

于 2012-08-18T09:26:15.237 回答
0

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

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

于 2013-01-14T20:22:48.833 回答