Mercurial和代码审查; 好工作流程?

jas*_*r77 9 mercurial pull-request

我是一个小型分布式团队,使用Mercurial作为中央存储库.我们每个都通过ssh将它克隆到我们自己的linux盒子上.我们的目的是在将更改推送到中央存储库之前检查彼此的工作,以帮助保持中心的提示清洁.在不同的Linux机器上开发人员之间共享代码的好方法是什么?我是Mercurial的新手.我能想到的选择(通过阅读,而不是经验)是:

1:作者提交所有本地更改并使用中心提示更新工作克隆.作者使用hg bundle,如果有办法指定要包含在哪个本地转速中.(一个实验显示我"捆绑"只抓取未经修改的更改,即使之前有中央不知道的本地提交)作者将捆绑文件提供给审阅者.Reviewer从中心的提示创建一个新的干净克隆,并将该包导入该克隆.要么,

2:在作者和评论者从中心提示中获取后,作者使用补丁和审阅者导入补丁.要么,

3:作者推向审稿或审阅从笔者拉(但如何,正是我读什么是只是为了提升和从原来担任仓库拉到/和/或在同一个盒子,而不是不同的Linux框之间?).

4:忘记在推送到中心之前检查代码; 继续推进,使用标签来识别已经审查过的内容,并使用Hudson(已经工作)来标记最新的安全版本,以便团队成员可以知道从哪一个开始.

如果您的团队使用Mercurial并进行代码审核,您如何让审核人员查看您的更改?

tgh*_*ghw 6

其中大部分是可能的,有些比其他更繁琐.

  1. 您可以通过将中央仓库的提示指定为以下来使用捆绑--base:
    hg bundle --base 4a3b2c1d review.bundle
  2. 不妨只使用捆绑.这样,还包括变更集数据.
  3. 您可以推送(并拉)到具有共同祖先的任何存储库(来自).如果你想从你的一个同事那里拉,他们只需要hg serve在他们的机器上运行,你就可以拉.
  4. 这也有效,但你必须保持多个头并注意合并.如果不这样做,可以很容易地在未查看的变更集之上进行稳定的更改,如果您以后需要修复未经审核的变更集,则很难撤消.

在您提出的选项中,#1和#3可能最简单,只取决于您是否可以达到彼此的方框.

在一个相关的说明:这是让我的同事和我开始开发Kiln的问题,我们的(Fog Creek)Mercurial托管和代码审查工具.我们的计划和最初的原型将保留多个存储库,一个"中央"存储库和一堆"审查"存储库.审核过程将通过将中央仓库克隆到服务器上的审核仓库,然后在两者之间运行完整的repo diff来启动,其中包含用于获取和查看差异的简单Web界面.

我们已经相当多地改进了这个工作流程,但是一般的想法,有一个分支回购推送未经审查的更改,以及在将它们推入中央仓库之前审查它们的界面,仍然是相同的.我不想在这里做广告,但我建议尝试一下.