处理顺序拉取请求之间依赖关系的好策略
Good strategy to handle dependencies between sequential pull requests
Bob 克隆项目并从 master
创建一个本地分支 A
。
Bob 添加了一些有用的帮助程序 类 cleaning/refactoring 单元测试设置并清理所有现有测试,感谢他们。
Bob 提交,推送到远程服务器,然后创建拉取请求,以便从 John 那里获得对此重构的代码审查。
项目负责人 John 忙了一个星期,因此无法立即审阅。
在请求代码审查后,Bob 想要编写一些全新的测试文件和一组 类 以另一个单独的拉取请求结束,因为它被认为是在处理新功能。
显然,Bob 想使用他的新助手来处理这些测试文件。
采用哪种策略:
对于那些新的单元测试,Bob 应该创建一个从 master
而不是 A
派生的 B
分支,因为 A
还没有被审查然而。缺点是他还不能使用他的单元测试助手,因为 B
.
中不存在
Bob 应该等待第一个拉取请求的代码审查,合并到 master
,然后从 master
派生 B
。在此期间,他应该专注于不依赖于他之前的 pull request 的其他工作。
Bob 应该从 A
派生出 B
并使用这些助手,冒 A
审查后不被接受的风险。显然导致拒绝B
。
John 应该振作起来,作为一个好的领导者,应该在短时间内审查第一个拉取请求,以便 Bob 可以链接。
处理多个串联拉取请求之间的依赖关系的最佳做法是什么?
没有必要依赖和等待你当前的拉取请求(PR)在以前的拉取请求(PR)上。对于您的情况,Bob 希望在处理 PR(已发布但尚未批准)后继续 develop/test 基于分支 A
的事情。他只需要在分支 A
上开发代码,然后提交并推送到远程。将分支 A
合并到 master 的 PR 将自动包含 Bob 的第二次更改。
所以对于多个PR的情况,如果你想更新已经在pull request中的分支,你只需要commit & push changes,之前的PR可以自动更新。 如果要更新一个processing PR中不包含的branch,需要commit & push changes然后新建一个PR,对之前的processing PR没有影响.
如果您只想添加一些微小的更改或功能本身,您应该在分支 A 上进行更改并使用处理 PR。如果你需要开发新的功能,你应该在一个新的功能分支上进行更改并创建一个新的 PR。
对于Bob的情况,正在开发新功能,需要在分支A
上使用助手,所以他应该从A
派生分支B
,即使A
没有被审查然而。因为开发人员需要考虑如何开发新功能,而在之前的 PR 获得批准之前,开发新功能是没有效率的。或者,如果您的团队确实需要使用这种方式,您仍然可以从 A
派生 B
并根据需要重新设置分支 B。
Bob 克隆项目并从 master
创建一个本地分支 A
。
Bob 添加了一些有用的帮助程序 类 cleaning/refactoring 单元测试设置并清理所有现有测试,感谢他们。
Bob 提交,推送到远程服务器,然后创建拉取请求,以便从 John 那里获得对此重构的代码审查。
项目负责人 John 忙了一个星期,因此无法立即审阅。
在请求代码审查后,Bob 想要编写一些全新的测试文件和一组 类 以另一个单独的拉取请求结束,因为它被认为是在处理新功能。
显然,Bob 想使用他的新助手来处理这些测试文件。
采用哪种策略:
对于那些新的单元测试,Bob 应该创建一个从
master
而不是A
派生的B
分支,因为A
还没有被审查然而。缺点是他还不能使用他的单元测试助手,因为B
. 中不存在
Bob 应该等待第一个拉取请求的代码审查,合并到
master
,然后从master
派生B
。在此期间,他应该专注于不依赖于他之前的 pull request 的其他工作。Bob 应该从
A
派生出B
并使用这些助手,冒A
审查后不被接受的风险。显然导致拒绝B
。John 应该振作起来,作为一个好的领导者,应该在短时间内审查第一个拉取请求,以便 Bob 可以链接。
处理多个串联拉取请求之间的依赖关系的最佳做法是什么?
没有必要依赖和等待你当前的拉取请求(PR)在以前的拉取请求(PR)上。对于您的情况,Bob 希望在处理 PR(已发布但尚未批准)后继续 develop/test 基于分支 A
的事情。他只需要在分支 A
上开发代码,然后提交并推送到远程。将分支 A
合并到 master 的 PR 将自动包含 Bob 的第二次更改。
所以对于多个PR的情况,如果你想更新已经在pull request中的分支,你只需要commit & push changes,之前的PR可以自动更新。 如果要更新一个processing PR中不包含的branch,需要commit & push changes然后新建一个PR,对之前的processing PR没有影响.
如果您只想添加一些微小的更改或功能本身,您应该在分支 A 上进行更改并使用处理 PR。如果你需要开发新的功能,你应该在一个新的功能分支上进行更改并创建一个新的 PR。
对于Bob的情况,正在开发新功能,需要在分支A
上使用助手,所以他应该从A
派生分支B
,即使A
没有被审查然而。因为开发人员需要考虑如何开发新功能,而在之前的 PR 获得批准之前,开发新功能是没有效率的。或者,如果您的团队确实需要使用这种方式,您仍然可以从 A
派生 B
并根据需要重新设置分支 B。