首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Coding
V2EX  ›  问与答

Gerrit 多人协作,开发成员有没有办法感知得到互相之间已提交但未入库的代码?

  •  
  •   tommyZZM · 267 天前 · 829 次点击
    这是一个创建于 267 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在工作中,新单位的前端项目是通过 Gerrit 管理的。

    刚刚参加没多久,就发现了几次这样的现象:开发成员提交的代码容易在 Gerrit 审核环节过程中把互相之间的代码覆盖掉。导致某一些已经被修复过的问题的反复出现。

    参与项目的成员似乎无法通过 rebase 其他成员的分支来自行处理潜在的冲突,只能在审核阶段由审核的同学手动处理?

    而且在代码入库(审核通过合并分支)之前,似乎也没法感知得到其他成员负责模块的开发进度?

    请教一下大家 Gerrit 工作流正常情况下应该是怎么样的?

    Gerrit 工作流中有没有办法体现 GitLab 那样的 PR 机制?

    8 回复  |  直到 2019-03-23 13:38:39 +08:00
        1
    wheeler   267 天前 via iPhone
    为什么会出现覆盖别人代码的情况呢?如果两人的改动都在等待 review 状态,按理说应该报冲突才对啊。

    如果想在入库之前获取别人的改动,可以选择 gerrit 的 commit 对应的 download 功能了。
        2
    whileFalse   267 天前 via iPhone   ♥ 2
    这种问题我司也出现过。就是解决冲突的时候用自己代码无脑覆盖的缘故,和 review 无关。

    解决办法是:

    1. 把前端几千行代码的 js 拆开,以降低冲突几率。
    2. 给前端童鞋宣讲如何处理冲突
    3. 跟据 git blame 抓住无脑覆盖的提交者,杀了祭天
        3
    whileFalse   267 天前 via iPhone
    是用 git blame 还是得 git log 我不记得了。
        4
    binux   267 天前 via Android
    @whileFalse 看到他覆盖别人的代码,review 还给过?
        5
    tommyZZM   267 天前
    @binux @whileFalse 不一定会触发冲突,有时候只是一个同一条代码重复修改。

    例如一个变量已经改了一次,然后另一个同学提交后又改了回来,这种 review 环节也确实很难发现。
        6
    tommyZZM   267 天前
    @whileFalse 而且 Gerrit 入库之后似乎会把每个同学的提交记录都合成一个。
        7
    chiu   267 天前
    Gerrit 好像是 Review 还没通过,push 了也不会 push 进 branch,要等一系列审核+1 后,才真正 merge 进去 branch。
        8
    wheeler   267 天前 via iPhone
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2288 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 15:16 · PVG 23:16 · LAX 07:16 · JFK 10:16
    ♥ Do have faith in what you're doing.