BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース SHA-1名称の処理やパフォーマンスなどが改善されたGit 2.11

SHA-1名称の処理やパフォーマンスなどが改善されたGit 2.11

ブックマーク

原文(投稿日:2016/11/30)へのリンク

先頃リリースされた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は他にも多くの機能があるが,それらはリリースノートで確認できる。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT