GitHubスタックドプルリクエスト
GitHub Stacked PRsは、大きな変更を小さな、レビュー可能なスタックされたプルリクエストに分割できるGitHubの新機能です。これはPhabricatorで提供されていた「stacked diffs」ワークフローをGitHubで実現するものであり、jujutsuなど...
GitHub Stacked PRsは、大きな変更を小さな、レビュー可能なスタックされたプルリクエストに分割できるGitHubの新機能です。これはPhabricatorで提供されていた「stacked diffs」ワークフローをGitHubで実現するものであり、jujutsuなどの新しいバージョン管理ツールでも再評価されているアプローチです。
技術的背景と意義:従来のGitHubとgitのワークフローでは、大規模な変更をコミットレベルで段階的に管理することが難しく、各段階でのレビューが煩雑でした。スタックドPRは、変更を論理的な単位に分割し、下位のPRから上位のPRへと段階的に積み上げる構成により、各変更が独立してレビュー可能になります。
重要な利点:コードレビューの品質向上(小さなPRは短時間で確認でき、問題発見が容易)、開発効率の大幅な改善(レビューが迅速に進むため開発サイクルが加速)、モノレポ環境での効率的な変更管理、長期実行機能の段階的実装が可能になることです。このアプローチにより、開発チームはより小粒度の変更に対するレビューを通じて、品質と速度のバランスが取れたワークフローを実現できます。
ただし、GitHubのUI改善(commitレベルの操作機能強化)が必要という指摘もあります。
Phabricator経験者からは肯定的に評価されており、stacked-diff機能によるワークフロー改善への期待が高い。一方、GitHubのUIの限界や、Gerritなどの代替ツールとの機能比較についての議論も活発です。
「Phabricatorとmercurialを使用していた自分にとって、GitHubとgitに戻ることは石器時代に戻ることのような感じです。これとjujutsuがPhabricatorのstacked-diff機能を再現してくれることを期待しています。モノレポだけではなく、レビューと長期実行機能プロジェクトの両方の作業がはるかに良くなります。より小さなPRやdiffsを推奨し、ビルドの間に素早く簡単にレビューできるようになります。」— @adamwk