先日発表されたGit 2.8には,多数の新機能や改善,バグフィックスが含まれている。中でも注目すべきなのが,サブモジュールのパラレルフェッチ,ユーザアイデンティティ処理の改善,そしてWindowsサポートの改良だ。
サブモジュールのパラレルフェッチは,一度に複数のリポジトリからのフェッチを可能にすることによる,リポジトリと関連するサブモジュールのフェッチに要する時間削減を目的としたもので,新設の--jobs
オプションを使用して次のように行なう。
git fetch --recurse-submodules --jobs=4
Gitチームによれば,これによって多数のサブモジュールを持つリポジトリの更新がかなりスピードアップ可能になる,ということだ。--jobs
オプションを指定せずに--recurse-submodules
を使用した場合,Gitは各サブモジュールをひとつずつフェッチする。
仕事のプロジェクトとオープンソースプロジェクトというように,プロジェクト毎に異なるユーザIDを使い分けているすべての開発者に歓迎されそうな新機能が,user.name
とuser.email
設定オプションを使った明示的なID指定が行なわれていない場合にコミッタのIDを推測する,というGitのデフォルト動作を無効にするグローバルコンフィギュレーションオプションだ。この場合,GitはデフォルトでコミッタのIDを推測するため,新たに作成したリポジトリで誤ったIDが使われる可能性がある。その一方で,次のようなuser.useconfigonly
オプションの設定を行なうと,
git config --global user.useconfigonly true
開発者が新しいリポジトリにコミットする時にIDが指定されていない場合には,明示的な設定を行なうようにGitが警告するようになる。
それと関連して,ある設定がsystem-, user-, あるいはリポジトリレベルで定義されているかどうか確認するための,簡易な手段を提供ための変更も実施されている。実際,開発者が次のように指定すると,
git config --show-origin <setting name>
その設定がどこで行われたものかを確認することができる。
Git 2.8では,次のようなWindowsとの統合改善も図られている。
- C言語への書き換えによる,多くのGitコマンドの高速化。
- Git-for-Windowsから,多数のWindows固有の変更を統合。
- LFに加えて,CRLF改行コードの認識を可能にする。
さらにGit 2.8.0では,悪質なリポジトリのクローン時に任意のコードを実行される可能性のあった,整数オーバーフローに関するセキュリティ脆弱性も修正された。以前のGitバージョンである2.4.11+, 2.5.5+, 2.6.6+, 2.7.4+用のパッチも提供されている。
その他,Git 2.8の便利な機能としては,
git ls-files --eol <filename>
による行末に関連する問題の調査。git pull --rebase
で,rebase -i
を使用したヒストリの書き換えが可能になった。
Git 2.8での全変更点のリストは,こちらで確認することができる。
この記事を評価
- 編集者評
- 編集長対応