自动化SVN预提交到Review Board,然后在批准后提交到SVN

3

我的目标是使用SVN预提交钩子直接向Reviewboard发布评审请求,而不是将其提交到仓库。第二步,我希望在批准差异后,它会自动进入仓库。

是否可能做到这一点?如果是,则将赞赏一些指针。有很多地方可以解释如何配置post-commit,但我在Google上找不到任何东西。

编辑:试图阐述问题

因此,最近我们已经设置了Reviewboard的环境。我们使用Reviewboards post-review hook将其与SVN集成。只要用户使用“publish review”字符串提交,它就会进入Reviewboard。

现在我想实现这个

1. 用户从SVN提交。更改应该以差异的形式自动进入审核版,而不是进入仓库。
2. 评审应该分配给默认评审人(对于初学者,以后可能可以在提交字符串中指定)
3. 评审人将对其进行评审。批准差异后,该差异应自动或手动提交到仓库中。


可能是重复的问题:如何在 SVN 中防止同行评审之前提交代码 - Dipu H
3个回答

4
  1. 您可以使用预提交挂钩阻止提交并转移到RB(阻止是明显的,转移-“如果您可以手动完成它-它可以自动化”,但需要更多关于操作的细节才能得出确定的答案)。
  2. 已批准更改的提交不是钩子的任务,它将是另一个独立的自动提交过程,这个过程可能会遇到一些问题:您必须保留队列中提交的原始顺序(如果有多个提交同时存在),条件是较新的更改可以在先前的更改之前获得批准。

从我的观点来看,将提交到特殊分支而不是阻止提交和合并<此REV>对主干进行批准可能是一种更有效且更简单的方法。


1
只是想知道,我已经在我的工作副本中做了一些更改,而预提交钩子正在将文件发送给其他人进行批准。到这个部分都没问题。审批者也需要一个工作副本来检入吗?一个人在本地工作副本中所做的更改如何传递到审批者的工作副本中?所有这些工作副本路径都将在预提交钩子中编码吗?如果我的疑问很愚蠢,请纠正我。 - Dipu H
@DipuH - 简短回答是“我没有概念”。在钩子中,您可以发送差异而不是文件(具有新内容)。评审人员可以仅阅读差异以想象完整的图片,或者可能希望获得完整的源代码。我无法想象评审请求如何分派给评审人员(为简单起见-我对常见的CodeReview工具没有概念)。所有问题都与繁重的工作流程和政策有关。我无法从空气中获得答案。 - Lazy Badger
@LazyBadger,请问您需要哪些具体细节?我会相应地编辑我的问题。 - Abhishek Bansal
@AbhishekBansal - 你可以尝试用 CR 和 SCM "现状"(手工操作)来描述你当前的工作流程,以展示大局 - 我无法自动化和改进虚无。 - Lazy Badger
@LazyBadger 我不知道你所说的“CR”和“SCM”的意思,但我已经编辑了我的问题,并提供了更多细节。希望这会有所帮助。如果你需要更具体的细节,请告诉我。 - Abhishek Bansal

1
为什么我们不直接连接Reviewboard数据库并在pre-commit hook中检查评审的适当状态呢?这样更清晰地解决问题。

1

@abhishek:

  • 在我们的情况下,我们在svn中添加了一个pre-commit钩子脚本,需要在提交时提供review board URL。如果没有提供,将阻止您进行提交。

  • 关于审查请求,我认为您可以直接从pre-commit脚本中完成。但这肯定会减慢提交过程。您可以获取svn提交消息并基于此创建审查请求。但我不建议这样做,因为这样不准确,您将无法详细说明更改内容。

  • 我们已经将Eclipse与e-reviewboard插件集成在一起,该插件在git中可用。这将允许您执行右键单击即可创建审查请求。它将自动上传所选文件的差异。在此步骤之后,您可以使用该审查请求提交到svn。这样您就可以详细说明您的更改。我认为这是最好的方式!


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