当两个或更多人将补丁集推向Gerrit的同一个变更集时,我很难找到一个好的工作流程.
我试图用命令行Git命令(没有git-review,IDE等)来实现这一点.
从Gerrit服务器下拉最新的补丁集以进行特定更改很容易,但从那里我不确定.
我认为这个过程将是:
但在rebase期间,它将所有传入的变化标记为冲突,即使它们没有在本地更改.
也许这与HEAD本地无法访问下载的最新补丁集有关.
任何人都可以建议多个开发人员如何处理相同的变化?
编辑: 这个问题的答案显示了如下所述的技术:如何更改补丁集并将其作为新补丁集推送?
你的问题就是gerrit它本身。更改集gerrit是一次git提交,每当更改集在审核过程中发生更改时,都会重写该提交。因此,您会得到这样的历史记录:
reviewed branch head --- changeset A, first revision
\-- changeset A, second revision
\- changeset A, third revision
Run Code Online (Sandbox Code Playgroud)
现在,通过您在问题中概述的工作流程,您尝试创建此历史记录:
reviewed branch head --- changeset A, first revision --- changeset A, second revision
Run Code Online (Sandbox Code Playgroud)
如果您这样做,两个版本中存在的任何更改都将与其自身发生冲突。
解决这个问题的方法gerrit是获取变更集的最新版本,修改变更集,然后将其作为变更集的新版本推送,替换以前的变更集,希望同时没有其他开发人员处理相同的变更集。最后一部分是gerrit基于工作流无法实现使用 pure 实现的微不足道的事情git:开发人员无法在同一变更集上并行工作。这与 pure 形成鲜明对比git,在 pure 中,所有开发人员都可以随心所欲地自由创建新的提交、分支和合并,并且git能够将所有部分重新组合在一起。但要使其发挥作用,提交必须在 中保持不变git,这是工作流违反的原则gerrit。
如果你问我,最好的办法就是避免使用gerrit. 它的基本工作流程被破坏了,你最好git按照 Linux 开发人员使用的方式使用 pure。
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |