7

会社のリポジトリから内部リポジトリのクローンを作成しようとしていますが、次のエラーが発生し続けます。

error: RPC failed; result=18, HTTP code = 200

これは常に、リポジトリが完全にダウンロードされた後にのみ発生します(しばらく時間がかかります)。

torotiseGitを使ってみました。レポートは次のとおりです。

git.exe clone   --progress -v  "http://path/repository.git" "C:\Users\user\Documents\code\repository"

Cloning into 'C:\Users\user\Documents\code\repository'...
POST git-upload-pack (424 bytes)
remote: Compressing objects: 100% (4895/4895)   
Receiving objects: 100% (6970/6970), 61.89 MiB | 4.82 MiB/s
Resolving deltas: 100% (2610/2610)
Resolving deltas: 100% (2610/2610), done.
remote: Total 6970 (delta 2610), reused 5702 (delta 1672)
error: RPC failed; result=18, HTTP code = 200

git did not exit cleanly (exit code 128)

LinuxマシンとWindowsマシンから何度か試しました。同じエラー

エラーをさらに調査するにはどうすればよいですか?Googleで役立つ情報が見つかりませんでした

編集:GitサーバーのApacheログを確認しました-各クローンに対応するGETとPOST(結果200)があります。POSTが少し大きい(60MB)-postBufferを500MBに増やしてみましたが、それでもエラーが発生します

これは本当にgitのバグでしょうか?

もっと有益なエラーが出たらいいのに...

4

2 に答える 2

14

エラー: RPC に失敗しました。結果=18、HTTP コード=200は libcurl エラーです。

http://curl.haxx.se/libcurl/c/libcurl-errors.htmlから、次のことがわかります。

CURLE_PARTIAL_FILE (18)

ファイル転送が予想よりも短かった、または大きかった。これは、サーバーが最初に予想される転送サイズを報告し、次に以前に指定されたサイズと一致しないデータを配信した場合に発生します。

clone などのコマンドを実行する前に GIT_CURL_VERBOSE=1 を設定すると、libcurl がどのように失敗するかを理解できます。これは、bash で次のように行うことができます。

GIT_CURL_VERBOSE=1 git clone   --progress -v  ...

ただし、上記のエラーを考えると、http.postBufferを調整してみてください。試す:

git config --global http.postBuffer 524288000

ここからhttps://www.kernel.org/pub/software/scm/git/docs/git-config.html

于 2013-07-31T22:12:55.950 に答える
3

http(httpsではなく)を介してgitリモートサーバーで作業しているときに、Windowsマシンで同じ問題が発生しました(リモートリポジトリをプルまたはクローンできません)-この問題の解決策を見つけました:デスクトップマシン(エラーが発生した場所)で、これの理由はウイルス対策ソフトウェアでした(私の場合は Kaspersky Internet Security 2013)、次の git コンポーネントを例外に入れました。

例外規則:

  • C:\Program Files (x86)\Git\bin\git.exe | 全て
  • C:\Program Files (x86)\Git\bin\curl.exe |all
  • C:\Program Files (x86)\Git* |all
  • C:\Program Files (x86)\Git\git-cheetah* |all

信頼できるソフトウェア:

  • C:\Program Files (x86)\Git\bin\git.exe
  • C:\Program Files (x86)\Git\bin\curl.exe
  • C:\Program Files (x86)\Git\bin\sh.exe
  • c:\program files (x86)\git\libexec\git-core\git-remote-http.exe
  • c:\program files (x86)\git\libexec\git-core\git-upload-pack.exe

すべてのオプションをオンにして、それらをまったく中断しないようにします(ワークフローとネットワークアクティビティのトレースはありません)-その後、問題はなくなりました

于 2013-04-05T06:41:27.547 に答える