Git 2.18 (2018 年第 2 四半期) では、Git で使用されるものをより細かく制御できるようになりましcurlた。
Git が反対側からの gzip エンコーディングを受け入れることをアドバタイズするために使用される HTTP クライアント コード。代わりに、cURL ライブラリに最適なものをアドバタイズしてネゴシエートさせてください。
コミット eaf6a1b、コミット 1a53e69 (2018 年 5 月 22 日) によるBrandon Williams ( mbrandonw)を参照してください。
( 2018 年 5 月 30 日、コミット 13e8be9でJunio C Hamanoによってマージされました)gitster
remote-curl: curl でサポートされているすべてのエンコーディングを受け入れます
curlgzip 応答のみを受け入れるのではなく、curl がサポートするすべてのエンコーディングを受け入れるように構成します。
これにより、" " 機能なしでビルドされた curl のインストールを使用する際の問題が修正されzlibます。aa90b96 (Enable info/refs gzip decompression in HTTP client, 2012-09-19, Git 1.7.12.3) 以降、デコードできないにもかかわらず、「」エンコードを要求することになりますgzip。
さらに悪いことに、そのことを示す明確なエラー メッセージが表示される代わりに、「ダム」http にフォールバックしてしまい、結果が混乱し、デバッグが困難になります。libcurl
curlは、要求されたエンコーディングをサポートしているかどうかを確認するためのチェックを行わないため、代わりに、curl オプションに空の文字列を設定して、curlがCURLOPT_ENCODINGサポートAccept-Encodingするエンコーディングのみを含む " " ヘッダーを送信する必要があることを示します。
GIT_CURL_VERBOSE=1 で実行すると、残念ながらここに投稿するには長すぎます
GIT_CURL_VERBOSEGit 2.28 より前では、 orGIT_TRACE_CURLのためにここに投稿するのは安全ではありません。
Git 2.28 (2020 年第 3 四半期) では、 のサポートGIT_CURL_VERBOSEをGIT_TRACE_CURL.
コミット 7167a62、コミット 373e9bd (2020 年 5 月 11 日) by Jonathan Tan ( jhowtan)を参照してください。
( 2020 年 6 月 9 日、コミット 0b925a4でJunio C Hamanoによってマージされました)gitster
署名者: ジョナサン・タン
が設定されているときはいつでも、 を設定するのではなく、が設定さGIT_CURL_VERBOSEれているかのように動作するように Git に教えます。GIT_TRACE_CURL=1GIT_TRACE_CURL_NO_DATA=1CURLOPT_VERBOSE
これは、機密データが不注意で公開されるのを防ぐためです。
特に、GIT_CURL_VERBOSEは " Authorization" ヘッダーも、 で指定された Cookie も編集しませんGIT_REDACT_COOKIES。
GIT_CURL_VERBOSEトレース メカニズムを統一することには、トレース メカニズムの改善がとの両方のユーザーに利益をもたらすという将来の利点もあり、GIT_TRACE_CURL,改善を 2 回実装することを覚えておく必要はありません。
Git 2.28 (2020 年第 3 四半期) でも、トレース出力の機密情報を編集するためのインターフェイスが簡素化されています。
Jonathan Tan ( )によるcommit 827e7d4 (2020 年 6 月 5 日)を参照してください。( 2020 年 6 月 22 日、コミット b8a5299でJunio C Hamanoによってマージされました)jhowtan
gitster
http: すべての Cookie を編集し、教えるGIT_TRACE_REDACT=0
署名者: ジョナサン・タン
トレース出力 (GIT_TRACE_CURLが true の場合) で、デフォルトですべての HTTP Cookie の値を編集します。
これで、auth ヘッダー ( 74c682d3c6 (" http.c ://github.com/git/git/blob/827e7d4da470e8b9b222b2cf3b4a3b7f8c3c671f/http.c) の実装GIT_TRACE_CURL以降:環境変数を実装"、2016-05-24、Git v2 .10.0-rc0 --バッチ #3にリストされているマージ)) および Cookie 値 (このコミット以降) は、これらのトレースでデフォルトで編集されます。ユーザーは、環境変数を使用してこれらの編集を禁止することもできます。[](httpsGIT_TRACE_CURL
すべての Cookie の値がデフォルトで編集されるようになったためGIT_REDACT_COOKIES(以前はユーザーが編集する個々の Cookie を選択できました)、現在は効果がありません。