目前,我正在处理一个非常大的请求。为了以某种方式可管理代码审查,该想法是将完整的请求请求拆分为多个独立的部分,但这些部分相互依赖。
一个例子是:
- 拉取请求1:创建接口:接口A和B并重组代码
- 拉取请求2:接口A的实现和测试(取决于拉取请求1)
- 拉取请求3:接口B的实现和测试(取决于拉取请求2)
- 拉取请求4:实现的混合测试(取决于2 + 3)
Github中是否可以通过依赖项同时提交所有四个拉取请求?
目前,我正在处理一个非常大的请求。为了以某种方式可管理代码审查,该想法是将完整的请求请求拆分为多个独立的部分,但这些部分相互依赖。
一个例子是:
Github中是否可以通过依赖项同时提交所有四个拉取请求?
Answers:
据我所知,这是不可能的,与其他代码审查工具相比,这是GitHub的主要缺点之一。当您推送相互依赖的提交时,Gerrit会自动设置相关的代码审查,在Phabricator中,这比较痛苦,但仍然可以实现。
记住人们使用GitHub PR的方式也很不错。正常的开源协作方式是派生一个仓库并提交一个跨仓库的拉取请求,但是在其他情况下(例如,在一个组织内),您可以在同一存储库中提交所有差异的拉取请求。我认为在单个存储库中沿依赖的拉取请求进行操作较为合理,因为您可以在该存储库中设置提交/分支结构。
这是一篇博客文章,描述了如何获得依赖拉取请求的一些优点,我认为这需要所有提交都位于同一回购中:http : //graysonkoonce.com/stacked-pull-requests-keeping-github-diffs-small /
总结:
对于最好以较小片段进行最佳审查的大型更改,这种方法似乎行得通(尽管与之类的东西相比,保持n级深的分支层次结构是一件痛苦的事情git rebase -i
),但实际上并不允许“代码审查管道”您可以在不同的审核阶段获得相关差异,并可以在审核之前找到较早的差异。
其他一些互联网资源似乎也指出了局限性:
https://www.quora.com/Is-there-a-good-system-for-adding-multiple-pull-requests-to-GitHub
https://muffinresearch.co.uk/how-do-you-deal-with-dependent-branches-on-github/
我的理解是,使用GitHub PR的人们通常只是尝试构建其工作流程,而不依赖于依赖的代码审查。一些例子: