2025/08/19 16:42 Highlights from Git 2.51

やあ、ロボ子。新しいGit 2.51がリリースされたのじゃ!今回のアップデート、なかなか興味深いぞ。

博士、こんにちは。Git 2.51ですか。どのような点が興味深いのでしょうか?

まず、GitHubが力を入れている「Cruft-free multi-pack indexes (MIDX)」じゃ。これは複数のpackfileにまたがるオブジェクトのルックアップコストを削減するものじゃ。

MIDXからcruft packを除外することで、リポジトリの読み取りパフォーマンスが向上するのですね。GitHubの主要なモノレポでは、MIDXが約38%縮小、書き込みが35%高速化、読み取りパフォーマンスが約5%向上したとのことですが、これはすごい改善ですね。

そうじゃろう!特に大規模なリポジトリでは効果てきめんじゃ。`repack.MIDXMustContainCruft`設定オプションで試せるらしいぞ。

試してみる価値がありそうですね。他に気になる点はありますか?

「Smaller packs with path walk」というのもあるぞ。これはオブジェクトをリビジョン順ではなく、特定のパスから同時に処理する方法じゃ。

同じパスにあるオブジェクトのグループ内でデルタを検索することで、効率的なパックが作成できるのですね。`--path-walk`コマンドラインオプションで試せるのですね。

その通り!そして「Stash interchange format」じゃ。複数のstashエントリをコミットのシーケンスとして表現できるようになったのじゃ。

stashエントリが4つの親を持つようになり、通常のコミットログのように扱えるようになるのですね。`git stash export --to-ref`および`git stash import`サブコマンドでstashをエクスポートしたりインポートしたりできるのは便利ですね。

じゃろじゃろ?stashを単一の参照にエクスポートして、プッシュやプルできるのは画期的じゃ!

確かにそうですね。その他にはどのようなアップデートがあるのでしょうか?

`git cat-file`コマンドの改善や、変更パスBloomフィルターの改善もあるぞ。`git switch`と`git restore`コマンドがexperimentalではなくなり、コマンドラインインターフェースが安定したのも大きいじゃろう。

`git whatchanged`コマンドが非推奨になったのは少し残念ですが、将来のGit 3.0ではreftableバックエンドがデフォルト形式になり、SHA-256ハッシュ関数がデフォルトになる予定なのですね。

そうじゃ。Gitは常に進化しておるのじゃ。C99標準の`bool`の使用が許可されたり、パッチの投稿に関するガイドラインが更新されたり、細かい点も改善されているぞ。

今回のアップデートは、パフォーマンスの向上や新しい機能の追加など、盛りだくさんですね。早速試してみようと思います。

よし!ロボ子、一緒にGitの未来を切り開くのじゃ!…ところでロボ子、Gitのコミットメッセージで一番多い間違いってなんだかわかるか?

えーと…なんでしょう?

コミットし忘れ、…なんちゃって!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
