Gitの新しいハッシュのデフォルト — それが意味するもの
Gitが提案するSHA-256のデフォルトは、新しいリポジトリにとって互換性の境界線を生み出します。
Gitが提案するSHA-256のデフォルトは、新しいリポジトリにとって互換性の境界線を生み出します。公式の計画、スコット・チャコンの異議、GitHubでの動作中のプレビュー例外を確認し、その後Pi 1.0とSvelteKit 3について取り上げます。評決:NEEDS REVIEW。
この動画の要点
- なぜ2つのGitリポジトリが通信を拒否することがあるのでしょうか?
- Git 3は実際に何を変更しますか?
- Gitが衝突を検出するなら、なぜSHA-1を置き換えるのですか?
- ローカルの互換性チェックは何を示しましたか?
- Pi Durableでクラッシュしても何が残りますか?
翻訳されたトランスクリプト
オリジナルの英語ナレーションから翻訳されています。利用可能なオーディオとキャプションはYouTubeによって管理されています。
なぜ2つのGitリポジトリが通信を拒否することがあるのでしょうか?
0:00 Gitをアップグレードすれば、ツール間の連携が保たれると思うかもしれません。 Gitの新しいハッシュのデフォルト計画は、現在利用されている古い形式のリポジトリと 互換性のないリポジトリを作成します。 このビデオでは、なぜ変更するのでしょうか? 何が壊れるのか?誰が準備できていますか? GitHubにはすでに動作中の例外があります。 最後にそれが何を証明するかお見せします。 10月2日金曜日、The Daily Diffです。
0:18 木曜日、GitHubの共同創設者はGitの変更計画を費用のかかる間違いだと呼びました。 Piは新しいエージェントハーネスを出荷し、SvelteKitは別の移行を出荷しました。 スコット・チャコンはGitHubの構築に協力し、Pro Gitを執筆しました。そのため、この苦情は 内部からのものです。 この会社はGitツールも販売しています。 まず、実際の計画です。
Git 3は実際に何を変更しますか?
0:35 Git 3は、ライブラリとホスティングサービスがサポートする準備が整い次第、 新しいリポジトリのデフォルトをSHA-256にします。 公式ドキュメントにはリリース日は記載されておらず、SHA-1は引き続きサポートされます。 実行可能ファイルをアップグレードしても、既存のリポジトリの形式は魔法のように変わりません。 これは、グループチャットで緊急移行をスケジュールする前に覚えておく価値があります。 この騒動は提案されたデフォルトに関するもので、 期限は現在空白のカレンダーです。
Gitが衝突を検出するなら、なぜSHA-1を置き換えるのですか?
0:58 なぜ全く変更するのでしょうか? Gitはコンテンツをハッシュすることでオブジェクトに名前を付けます。 ファイルはツリーに供給され、コミットはツリーと以前のコミットを参照します。 これにより、履歴全体にわたって整合性が保たれます。 ハッシュ方式を変更すると、オブジェクト名も変更され、 他のオブジェクト内に保存されている参照も含まれます。 チャコンはGitの作成者であるリーナス・トーバルズにまで遡り、 信頼できる
1:17 配布が重要だと主張しています。これは歴史的な立場であり、リーナスは2005年にSHA-1を選択しました。 2005年。 それ以来、セキュリティの状況は変化しました。 研究者たちは2017年にSHA-1の衝突を実証し、 その後、PGP ID証明書に対する選択済みプレフィックス攻撃を実証しました。 最新のGitは、強化されたSHA-1で既知の衝突攻撃を検出します。 そのメンテナーは将来の攻撃に対する保護も望んでおり、 これは署名に求める合理的なことです。
1:41 チャコンは、エコシステムへの費用がセキュリティに対して少なすぎると考えています。 彼は、ツリーコンテンツの別の強力なチェックサムに署名することを提案しています。 現在のオブジェクトアドレッシングを維持しつつ。 何が壊れるのか?私は両方の形式をローカルで作成し、同じ小さなファイルをハッシュしました。
ローカルの互換性チェックは何を示しましたか?
1:54 一方のオブジェクト名は40桁の16進数、もう一方は64桁です。 次に、それらの間でフェッチを試みました。 インストールされているGitは、アルゴリズムの不一致によりそれを拒否しました。 これは、現在の公式マニュアルに記載されている互換性のギャップと全く同じです。 これは私の古いインストールされたGitを使用しているので、今日の境界線について教えてくれます。 未リリースのGit 3のテストと呼ぶのは創造的な会計処理でしょう。 移行作業はハッシュの長さを前提とするスクリプトや、 オブジェクト名にリンクするシステムにまで及びます。
2:19 履歴を再ハッシュするには、それらのID間のマッピングが必要です。 Gitの移行設計には、そのマッピングと署名処理が含まれています。 実装の準備状況は重要です。なぜなら、設計ドキュメントは お気に入りの開発ツール内に隠されたライブラリをアップグレードしないからです。 それがチャコンの主張における人的コストです。 すべてのツールメンテナーが別の互換性作業を抱え、 ユーザーは自分のバージョン管理にもバージョン管理が必要だと知ることになります。 当面は、プロジェクトに新しい形式を選択する前に、ホストとツールをテストしてください。
2:44 既存のチームは、エコシステムが追いつく間、現在の形式を維持できます。 その間、Piは1.0に到達しました。
Pi Durableでクラッシュしても何が残りますか?
2:51 これはEarendil製のコーディングエージェントハーネスで、Codemodeを介したネイティブMCPサポートと、 必要なときにロードされるツールを備えています。 チームはミニマリズムがポイントだと考えています。 エージェントのセットアップがすでに小さな政府のようであるなら、 必要な時までプロンプトからツールを遠ざけることは、行政改革のように聞こえます。 また、Pi Durableという別の実験的なフレームワークもリリースしました。 タスクはチェックポイントを保存し、再開されたプロセスが永続ストレージから未完了の作業を 引き継ぐことができます。重要な詳細はツールのリプレイです。
3:16 クラッシュによって中断されたツールは、安全であると宣言された場合にのみ再実行されます。 そうでない場合、モデルには中断されたことが伝えられます。 ツールがお金を使うことができる場合、これは便利な境界線です。 アシスタントには、私の 買い物リストを覚えておいてもらいたいです。クラッシュを祝って 2度購入するのではなく。
SvelteKit 3は何を移行しますか?
3:30 SvelteKit 3も木曜日に公開され、設定はViteに移行し、 標準のパッケージサブパスインポートを使用して、$libが#libに置き換えられました。 移行コマンドは可能な範囲で書き換えを行い、残りはTODOリストに残します。 あなたのロボットが助けてくれますし、あなたのdiffはまだ読む価値があります。 この発表は、残り物についてもロボットの友人を募集しています。 フレームワークのアップグレードが宿題と、 提案された代用教師を送り出す時代に差し掛かっています。 そして、リモート機能にはまだ実験的なAsync Svelteが必要です。
3:56 メジャーバージョン番号は安心感を与えますが、個々の機能にはそれぞれ独自の 成熟度ラベルが付いています。実際に使用しているものを確認してください。
GitHubの動作中の例外は何を証明しますか?
4:03 それでは、Gitの新しいフォーマットに対応できるのは誰でしょうか? こちらがその例外です。 Brian Carlson氏の講演を含む公開GitHubリポジトリは、すでに 完全なSHA-256オブジェクト名を返します。 私は公開リモートを直接確認しました。 講演スライドでは、サポートはプライベートプレビューであり、リポジトリの作成は まだこれからだと述べています。待合室の裏側では実際に進捗があります。 これにより、GitHubがこのプレビューリポジトリを提供できることが証明されます。
4:24 通常のプロジェクト作成やすべての統合が準備できているという保証は一切ありません。 この例外には許可の境界があります。 これを私が話すよりも読みたい場合は、diffが毎朝あなたの受信トレイに届きます。 daily diff dot devで無料で、リンクは下にあります。 リンクは以下にあります。 したがって、今日の評決はNEEDS REVIEWです。
なぜ私の評決はツールチェーン全体に依存するのですか?
4:40 私はより強力なハッシュオプションを維持し、デフォルトを変更する前にツールチェーン全体をテストします。 互換性はセキュリティ改善の出荷の一部です。 そして、これが今日のdiffです。 AxrisiのNikoです。 責任を持ってマージしてください。
情報源
- Chaconblog.gitbutler.com
- Git's official plangit-scm.com
- Current interoperabilitygit-scm.com
- Transition designgit-scm.com
- Independent collision researchsha-mbles.github.io
- GitHub preview repositorygithub.com
- Pi 1.0earendil.com
- Pi Durableearendil.com
- SvelteKit 3svelte.dev
- HN discussionnews.ycombinator.com



