Git 2.53、メンテナンスチェックの強化と差分パスの高速化でリリース
Git 2.53では、メンテナンス用の「is-needed」が導入され、リポジトリツールが拡張され、差分、パック、オブジェクトデータベースの内部処理における性能向上が提供されます。
前回の2.52リリースから2か月以上経った今、分散型バージョン管理システムであり、ソフトウェア開発の基盤であるGitは、開発者がプロジェクト全体でコードの変更を効率的に管理できるよう支援しつつ、最新バージョン2.53をリリースしました。
より目立つ追加機能のひとつとして、新しい git maintenance is-needed サブコマンドがあります。これにより、ユーザーやツールはリポジトリの再パックや参照の最適化などのメンテナンス作業が実際に必要かどうかを判断でき、すでに健全なリポジトリで不要なバックグラウンド作業を避けるのに役立ちます。
さらに、実験的なgit replayコマンドは、別のコマンドが適用するためのref更新を出力するのではなく、デフォルトで単一のトランザクションを使用して自身のリファレンスを更新するようになりました。バージョン2.53では、特にリビジョンの取り扱いや無効な引数に関して、エラーメッセージ、ドキュメント、およびテストカバレッジも改善されています。
いくつかの日常的なコマンドも段階的に強化されています。git blame は現在、差分アルゴリズムを選択できるようになり、ユーザーはリビジョン間で変更がどのように割り当てられるかをより細かく制御できるようになりました。
どちらの git apply と git diff も、不完全な行に対する新しい空白エラーのクラスを導入しており、これによりそのような問題がより見えやすくなり、ツール全体で一貫して扱えるようになります。リポジトリ検査コマンドも拡張され、git repo info の新しいオプションや、オブジェクトデータベースの詳細を含む git repo structure のより豊富な出力が追加されています。
内部的には、かなりの作業がパフォーマンスと内部構造の向上に向けられています。Diff操作は、変更の有無だけが重要な場合にgit diff --quietを実行すると、リネームやコピーの検出を無効化するなどの最適化の恩恵を受けます。
さらに、高コストなコピー検出パスでのメモリ使用量が削減され、オブジェクトデータベース、パックファイルの処理、ストリーミングAPI周りのリファクタリング作業も継続しています。
最後に、Git 2.53 は Windows 上でのアップストリームシンボリックリンクのサポートを進展させ、テストスイートの準備と MinGW 互換レイヤーの多くの修正が伴っています。macOS では、Git はシステム提供の iconv 実装を全面的に置き換えるのではなく、長年の問題を回避する形で動作するようになりました。
例によって、このリリースは、クラッシュへの対処、非ASCIIパスに関する出力のずれ、マージの例外的ケース、設定の誤り、ドキュメントの誤記など、さまざまな修正が盛り込まれた長いリストで締めくくられています。Git 2.53のすべての変更の詳細については、リリース発表を参照してください。
