目前我正在处理一个非常大的拉取请求。为了使代码评审在某种程度上易于管理,我们的想法是将完整的拉取请求拆分为孤立的部分,而这些部分依赖于彼此。
一个例子是:
在Github中是否有办法同时使用依赖项提交所有四个拉取请求?
答案 0 :(得分:41)
据我所知,这是不可能的,而且在我看来,与其他代码审查工具相比,这是GitHub的主要缺点之一。当你推送相互依赖的提交时,Gerrit会自动设置相关的代码评论,而在Phabricator中,这更令人痛苦,但仍然可能。
还要记住,人们使用GitHub PR的方式有多种。正常的开源协作方式是分叉存储库并提交交叉回购请求,但在其他情况下(例如在组织内),您可以在同一存储库中提交差异的拉取请求。我认为在单个存储库中,获取依赖拉取请求的内容更合理,因为您可以在该存储库中设置提交/分支结构。
这是一篇博客文章,描述了如何获得依赖拉取请求的一些优势,我认为这要求所有提交都在同一个回购中: http://graysonkoonce.com/stacked-pull-requests-keeping-github-diffs-small/
摘要:
这种方法似乎适用于以较小的部分进行最佳审查的巨大变化(尽管与git rebase -i
相比,保持n级深度分支层次结构是一种痛苦,但它并不真正允许一个“代码审查管道”,你可以在不同的审查阶段有依赖差异,并可以在审查时找到早期的差异。
其他一些互联网资源似乎也提出了限制:
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的人通常只是尝试构建他们的工作流程而不依赖于依赖的代码审查。一些例子:
答案 1 :(得分:0)
我开源了一个工具来管理相关的拉取请求,并正好帮助解决这种用例。
使用 SPR,您只需将四个提交添加到一个分支中,该工具就会为您创建和管理整个拉取请求堆栈。