「Git 2.26」リリース、git rebaseのデフォルトバックエンドが変更される

 分散型バージョン管理システムGit開発チームは3月22日、最新版となる「Git 2.26.0」のリリースを発表した。rebaseメカニズムの変更など、多数の機能が強化されている。

 Git 2.26は1月に公開されたGit 2.25に続く最新版。大きな変更点としては、rebaseメカニズムの再実装がある。git rebaseのデフォルトでは従来は「apply」バックエンドがデフォルトとなっていたが、本バージョンではデフォルトで「merge」バックエンドが使われるようになった。これらのバックエンドは挙動が異なるため、もしワークフローが影響を受けた場合は、「rebase.backend」設定変数を「apply」に変更して以前のデフォルトに戻すことを推奨している。

 リポジトリ間でのデータのやりとりを行う「Transport Protocol」では、「Transport Protocol v2」がデフォルトとなった。Transport Protocol v2はコマンド指向の設計になっており、コマンドの実行後にコネクションを再利用するといったことも可能になった。

 「git name-rev」のメモリフットプリントとパフォーマンスを改善し、部分クローンのフェッチ時に行われる不要な接続チェックが無効になった。「git pack-objects」では、オブジェクトを再利用して結果を生成する方法を改善した。また、「git submodule add」のエラーメッセージが改善され、オブジェクト内を検索時にスレッド化されたgrepを使用しないというこれまでの制限が解除された。「git-add–interactive」をCに移行する取り組みも継続して行っていると報告している。

 コマンドライン補完で、サブコマンドの補完や「git worktree」の引数補完が使えるようになった。また、「git rm」および「git stash」では、新しいオプションとして「–pathspec-from-file」が使えるようになった。このほかにも、「git config」や「git sparse-checkout」、「git clone –recurse-submodules –single-branch」など、多数のコマンドが強化されている。

 Git 2.26はプロジェクトのWebサイトより入手できる。

Git
https://git-scm.com/