分散ソース管理システム Git 2.26 をリリース

利用可能 分散ソース管理システムのリリース Git 2.26.0。 Git は最も人気があり、信頼性が高く、高性能のバージョン管理システムの XNUMX つであり、分岐とマージに基づいた柔軟な非線形開発ツールを提供します。 履歴の整合性と遡及的変更への耐性を確保するために、各コミットで以前の履歴全体の暗黙的なハッシュが使用されます。また、開発者のデジタル署名を使用して個々のタグとコミットを認証することもできます。

以前のリリースと比較して、新しいバージョンには 504 件の変更が含まれており、64 人の開発者の参加によって準備され、そのうち 12 人が初めて開発に参加しました。 メイン イノベーション:

  • デフォルトはに切り替わりました XNUMX番目のバージョン Git 通信プロトコル。クライアントが Git サーバーにリモート接続するときに使用されます。 このプロトコルの XNUMX 番目のバージョンは、サーバー側でブランチとタグをフィルタリングし、リンクの短縮リストをクライアントに返す機能を提供することで注目に値します。 以前は、クライアントが XNUMX つのブランチのみを更新している場合や、リポジトリのコピーが最新であることを確認している場合でも、プル コマンドは常にリポジトリ全体の参照の完全なリストをクライアントに送信していました。 もう XNUMX つの注目すべき革新は、ツールキットで新しい機能が利用可能になると、プロトコルに新しい機能を追加できることです。 クライアント コードは古いプロトコルとの互換性を維持し、新しいサーバーと古いサーバーの両方で引き続き動作し、サーバーが XNUMX 番目のバージョンをサポートしていない場合は、自動的に最初のバージョンに戻ります。
  • 「git config」コマンドに「-show-scope」オプションが追加され、特定の設定が定義されている場所を特定しやすくなりました。 Git を使用すると、リポジトリ (.git/info/config)、ユーザー ディレクトリ (~/.gitconfig)、システム全体の構成ファイル (/etc/gitconfig)、およびコマンドを通じて、さまざまな場所で設定を定義できます。行オプションと環境変数。 「git config」を実行するとき、目的の設定がどこに定義されているかを正確に理解するのは非常に困難です。 この問題を解決するために、「--show-origin」オプションが利用可能でしたが、このオプションは設定が定義されているファイルへのパスのみを表示します。これは、ファイルを編集する場合には役立ちますが、次の場合には役に立ちません。 「--system」、「--global」、または「-local」オプションを使用して「git config」を通じて値を変更する必要があります。 新しいオプション「--show-scope」は変数定義コンテキストを表示し、-show-origin と組み合わせて使用​​できます。

    $ git --list --show-scope --show-origin
    グローバルファイル:/home/user/.gitconfig diff.interhunkcontext=1
    グローバルファイル:/home/user/.gitconfig Push.default=current
    […] ローカル ファイル:.git/config Branch.master.remote=origin
    ローカルファイル:.git/config Branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    グローバル diff.statgraphwidth 35
    ローカル diff.colormoved プレーン

    $ git config --global --unset diff.statgraphwidth

  • バインディング設定で 資格 URL でのマスクの使用は許可されています。 Git の HTTP 設定と認証情報は、すべての接続 (http.extraHeader、credential.helper) と URL ベースの接続 (credential.https://example.com.helper、credential.https://example.html) の両方に設定できます。 com.ヘルパー)。 これまで、*.example.com などのワイルドカードは HTTP 設定でのみ許可され、資格情報のバインドではサポートされていませんでした。 Git 2.26 では、これらの違いがなくなり、たとえば、ユーザー名をすべてのサブドメインにバインドするために、次のように指定できるようになりました。

    [資格情報「https://*.example.com」]

    ユーザー名 = テイラー

  • 部分クローン作成 (部分クローン) の実験的サポートの拡張は継続しており、データの一部のみを転送し、リポジトリの不完全なコピーを操作できるようになります。 新しいリリースでは、新しいコマンド「git sparse-checkout add」が追加されました。これにより、コマンド「git」を使用してすべてのディレクトリを一度にリストするのではなく、個別のディレクトリを追加して作業ツリーの一部にのみ「チェックアウト」操作を適用できるようになります。 sparse-checkout set」 (リスト全体を毎回再指定することなく、ディレクトリを XNUMX つずつ追加できます)。
    たとえば、BLOB をコミットせずに git/git リポジトリのクローンを作成し、チェックアウトを作業コピーのルート ディレクトリのみに制限し、「t」ディレクトリと「Documentation」ディレクトリのチェックアウトを個別にマークするには、次のように指定できます。

    $ git clone --filter=blob:none --sparse [メール保護]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git sparse-checkout add t
    ....
    $ git sparse-checkout add ドキュメント
    ....
    $ git sparse-checkout list
    ドキュメンテーション
    t

  • リポジトリの現在の内容と履歴リビジョンの両方を検索するために使用される「git grep」コマンドのパフォーマンスが大幅に向上しました。 検索を高速化するために、複数のスレッド (「git grep –threads」) を使用して作業ツリーの内容をスキャンすることができましたが、履歴リビジョンの検索はシングルスレッドでした。 この制限は、オブジェクト ストレージからの読み取り操作を並列化する機能を実装することによって取り除かれました。 デフォルトでは、スレッド数は CPU コアの数と等しく設定されており、ほとんどの場合、「-threads」オプションを明示的に設定する必要はありません。
  • 「git worktree」コマンドのサブコマンド、パス、リンク、その他の引数の入力のオートコンプリートのサポートが追加されました。これにより、リポジトリの複数の作業コピーを操作できるようになります。
  • ANSI エスケープ シーケンスを持つ明るい色のサポートが追加されました。 たとえば、ハイライトカラーの設定「git config –color」または「git diff –color-moved」では、明るい青色の「--format」オプションを介して「%C(brightblue)」を指定できます。
  • 新しいバージョンのスクリプトを追加しました fsmonitor-watchman、メカニズムとの統合を提供します フェイスブックウォッチマン ファイルの変更と新しいファイルの出現の追跡を高速化します。 更新後はgitが必要です 置き換える リポジトリにフックします。
  • ビットマップ使用時の部分クローンを高速化するための最適化が追加されました。
    (ビットマップ機構) 出力をフィルタリングするときにすべてのオブジェクトの完全な検索を回避します。 部分的なクローン作成中に BLOB のチェック (—filter=blob:none および —filter=blob:limit=n) が実行されるようになりました。
    大幅に速くなります。 GitHub は、これらの最適化と部分的なクローン作成の実験的サポートを備えたパッチを発表しました。

  • 「git rebase」コマンドは、「patch+apply」の代わりにデフォルトの「merge」メカニズム (以前は「rebase -i」に使用されていた) を使用して、別のバックエンドに移動されました。 これらのバックエンドはいくつかの小さな点で異なります。たとえば、競合を解決して操作を続行した後 (git rebase -- continue)、新しいバックエンドはコミット メッセージの編集を提案しますが、古いバックエンドは古いメッセージを単に使用するだけです。 以前の動作に戻すには、「--apply」オプションを使用するか、「rebase.backend」構成変数を「apply」に設定します。
  • .netrc 経由で指定された認証パラメーターのハンドラーの例は、そのまま使用できる形式に縮小されました。
  • デジタル署名検証を実行するさまざまな要素の最小信頼レベルを設定する gpg.minTrustLevel 設定が追加されました。
  • 「git rm」と「git stash」に「--pathspec-from-file」オプションを追加しました。
  • SHA-2 ではなく SHA-1 ハッシュ アルゴリズムへの移行に備えて、テスト スイートの改良が続けられました。

出所: オープンネット.ru

コメントを追加します