V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
mintist
V2EX  ›  git

大家是如何同步别人在 Gerrit 上打 Patch 到本地的?

  •  
  •   mintist · 2015-07-06 20:08:59 +08:00 · 7283 次点击
    这是一个创建于 3438 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如场景是A和B协同开发:

    A在master分之上新提交了一个commit,然后push到Gerrit的Review Repo上。

    B去Review了之后,发现了一些错误,通过checkout到本地FETCH_HEAD并修改了一些错误,然后--amend之后,在原来的基础上提交了Patch Set 2

    那么此时A该如何在不生成新的commit的前提下,优雅的同步B打的Patch Set 2到自己本地?

    PS:这里不改变每次打patch的change-id。

    7 条回复    2020-04-01 17:19:53 +08:00
    shibo501c
        1
    shibo501c  
       2015-07-07 10:09:14 +08:00
    A reset到提交前的commit,然后再把B的checkout到本地呢?
    losincasablanca
        2
    losincasablanca  
       2015-07-07 12:51:56 +08:00
    1.fetch Patch Set 2
    2.merge to local branch
    mintist
        3
    mintist  
    OP
       2015-07-07 19:23:56 +08:00
    @shibo501c 这不就不太优雅了么,没有直接更新B的新patch到当前commit的操作么
    mintist
        4
    mintist  
    OP
       2015-07-07 19:28:13 +08:00
    @losincasablanca 你是说新建个本地分支么?还是说直接merge到master上,如果是后者,会产生新的commit,那么还要在本地cherry-pick才能再打新的patch到原来的commit上。

    不晓得我的理解对不对
    jiangbingo
        5
    jiangbingo  
       2017-06-09 16:37:00 +08:00
    git pull -f origin patch set2 ?
    jiangbingo
        6
    jiangbingo  
       2020-04-01 17:10:17 +08:00
    @jiangbingo 三年过去了,我还在疑惑 gerrit 这个问题。
    jiangbingo
        7
    jiangbingo  
       2020-04-01 17:19:53 +08:00
    目前的操作是两个笨办法
    ## gerrit web 上
    - 在 A 的 ticket 上通过菜单 edit-add 增加改动的文件
    - done editing -publishement 生成新的 patch
    这种方法只适用同步没有 conflict 的 ticket

    ## 本地
    - 将 B checkout 出来生成 1.diff
    - apply 1.diff 到 A 上,有冲突解决冲突。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1204 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.