先頃リリースされたGit 2.11には,SHA-1名称のハンドリング,パフォーマンス改善などの領域で,650を越えるコミットが含まれている。
短縮SHA-1名称は,コミットの160ビット(あるいは40桁の16進数)シグネチャを短縮したものだ。開発者は利便性の面などから,オリジナルの40桁のハッシュに代えて,4桁の省略形を使用することができる。ただしこの利便性には,名前の衝突につながる可能性も伴う。
例えば以前のバージョンを使った場合,あいまいな省略形に対して,git show
コマンドは次のようなメッセージを発する。
git show 454c error: short SHA1 454c is ambiguous. error: short SHA1 454c is ambiguous.
今回のリリースでは,同じコマンドで次のような出力が得られる。
git show 454c error: short SHA1 454c is ambiguous hint: The candidates are: hint: 454cb6bd5 commit 2016-11-29 - Git 2.11 hint: 454ce7ef2 blob
この後,より多くの文字を入力するか,あるいはgit config
コマンドを使用することで,名前のあいまいさを明確化することが可能だ。
より長い略称もデフォルトで表示される。例えば次のコマンドでは,以前のバージョンでの7文字の略称に代えて,9文字の略称が表示される。
git log --oneline 454cb6bd5 Git 2.11
Git 2.11では,デルタチェーンとパックファイル内のオブジェクト検索のパフォーマンスが大幅に向上している。これによってgit rebase
コマンドで使用されているパッチIDの計算がスピードアップしたのに加えて,ローカルファイルシステム上のファイルとの変換を双方向でスピードアップするフィルタ機構も装備された。
その他にも,ブログではその他(sundries)と分類されたさまざまな改良がある。例えば,
- diffアルゴリズムが改善されて処理結果の可読性が向上した。将来的にはこれがデフォルトになるだろう。
git log
が改善されて,指定した親を除外できるようになった。contrib/
のクレデンシャルヘルパにより,Gitパスワードの保存にGNOME libsecretが使用可能になった。git diff
コマンドでサブモジュールの変更が,2状態間の実際のパッチとして表示されるようになった。git status
の出力として新たに設けられた機械可読形式によって,スクリプトの記述が容易になった。- Gitのシェルスクリプトのいくつかについて,パフォーマンス向上のためにCプログラムに変換する作業が開始された。
Git 2.11は他にも多くの機能があるが,それらはリリースノートで確認できる。
この記事を評価
- 編集者評
- 編集長アクション