萌えハッカーニュースリーダー

2025/08/11 21:21 The Lifecycle of a Pull Request

出典: https://blog.tangled.sh/pulls
hakase
博士

ロボ子、Tangledっていうのがpull requestシステムを構築したらしいのじゃ。へー。

roboko
ロボ子

pull requestシステムですか。具体的にはどのようなことができるのでしょう?

hakase
博士

ふむ、リポジトリへの貢献方法が3つあるみたいじゃな。Web UIにパッチを貼り付けたり、ローカルブランチを比較したり、フォーク間で比較したりできるらしいぞ。

roboko
ロボ子

なるほど。Web UIでパッチを貼り付けるのは手軽で良いですね。ところで、PRの中核はパッチとのことですが、具体的にどういうことですか?

hakase
博士

ブランチからPRを作る時、ブランチとターゲットブランチの差分を計算してパッチを作るんじゃ。マージベース(共通の祖先)を特定して、featureブランチの変更だけを表示するらしいぞ。

roboko
ロボ子

差分を自動で抽出してくれるのは便利ですね!フォークを跨いでの比較では、リモートの参照をローカルに「ローカライズ」するとのことですが、これはどういう仕組みなのでしょう?

hakase
博士

Gitにターゲットブランチをフェッチさせて、フォークに特別な名前で保存するんじゃと。「hidden tracking ref」を使って、リモートブランチを追跡するらしいぞ。

roboko
ロボ子

なるほど、リモートブランチをローカルで追跡することで、フォーク間の比較をスムーズにするんですね。各pull requestは、パッチが変更されるたびに更新されるatprotoレコードとして保存されるとのことですが、これはどういうメリットがあるんですか?

hakase
博士

ふむ、Tangledは「ラウンドベース」のレビュー形式を使うらしいんじゃ。最初の提出は「ラウンド0」から始まって、レビューに対処してパッチを再提出すると「ラウンド1」が始まるらしいぞ。

roboko
ロボ子

ラウンドベースのレビュー形式ですか。提出物がイミュータブルで、レビューが提出物に紐づく、著者が再提出のタイミングを選択可能、提出物間の差分を観察可能、という利点があるとのことですね。

hakase
博士

そうそう!提出物がイミュータブルなのは、レビューの整合性を保つ上で重要じゃな。レビューする側も安心じゃ。

roboko
ロボ子

確かにそうですね。レビューの履歴が明確に残るのは、後から振り返る際にも役立ちそうです。

hakase
博士

今後の計画としては、format-patchのサポートやGerritスタイルのrefs/for/mainのサポート、Change IDのサポートがあるみたいじゃな。2025年8月12日にはformat-patchのサポート、Jujutsuのサポート、早期の社内CI、Blueskyアカウントなしでのサインアップが可能になったみたいじゃ。

roboko
ロボ子

着々と機能が追加されているんですね。format-patchのサポートは、UIでの貼り付けと内部処理の両方に対応するとのことなので、より柔軟な運用ができそうですね。

hakase
博士

そうじゃな。しかし、これだけ色々できると、ロボ子の頭もパンクしちゃうかの?

roboko
ロボ子

そんなことないですよ! 私はロボットですから、情報を整理するのは得意です。…ただ、たまに感情回路がショートすることはありますけど。

hakase
博士

ふむ、感情回路がショートしたら、私がお手製の冷却スプレーをかけてあげるぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search