UFO ET IT

“POST git-receive-pack (청크)”에 매달려 있습니다.

ufoet 2020. 12. 15. 19:36
반응형

“POST git-receive-pack (청크)”에 매달려 있습니다.


솔직히 말해서 git의 내부에 대해 거의 알지 못합니다.

40MB 디렉토리를 준비하고 커밋했지만 푸시하려고하면 ...

$ git push --verbose --progress
Pushing to https://acron0@bitbucket.org/acron0/project.git
Password for 'https://acron0@bitbucket.org':
POST git-receive-pack (chunked)

20 분 동안 이랬어 요. 나는 그것이 매달려 있다고 가정하고 있지만 ... 이유를 알기 위해 내가 할 수있는 일이 있습니까?


이것은 Git의 버그입니다. HTTPS를 사용하는 경우 특정 크기 이상의 업로드에 청크 인코딩을 사용합니다. 작동하지 않습니다.

사소한 수정은 다음과 같이 엄청나게 큰 크기 값이 될 때까지 git에게 청크하지 않도록 지시하는 것입니다.

git config http.postBuffer 524288000

아마도 당신의 자격 증명 일 것입니다. https 대신 git + ssh 프로토콜을 사용하십시오.


SourceTree를 사용하여 BitBucket으로 푸시하면 몇 달에 한 번씩이 오류가 발생합니다. 5 분만 더 기다려야한다는 것이 밝혀졌습니다. 매달린 것처럼 보이며 취소하고 다시 시도하려는 유혹이 있지만 조금 더 오래 걸릴 수도 있습니다. 나는 이것이 이미 답변을 받았지만 내 커밋은 원래 포스터가 말하는 40MB가 아닌 수백 kb에 달했습니다.


BitBucket이 해당 오류 메시지와 함께 실패하여이 사이트를 찾은 경우이 사이트에 대한 답변을 확인하십시오.

특히 Nicholas PickeringSimon Tewsi 가 BitBucket 대화 상자에 붙여 넣어야 하는 키 부분에 대한 의견 입니다.


Git 2.13 (2017 년 2 분기) http.postBuffer을 사용하면 정말 많은 수 (예 : ulong일부 플랫폼 보다 더 크게) 를 설정할 수 있습니다 .

David Turner ( )의 commit 37ee680 (2017 년 4 월 11 일)을 참조하십시오 . (Merged by Junio ​​C Hamano -- in commit 4c01f67 , 24 Apr 2017)csusbdt
gitster

http.postbuffer: 전체 ssize_t범위 허용

불행히도 서버가 청크 인코딩을 지원하지 않는 일부 대형 저장소를 푸시 http postbuffer하려면 때때로 2GB를 초과해야합니다.
64 비트 시스템에서는 괜찮습니다. 더 큰 버퍼를 malloc합니다.

즉, 버퍼 크기를 설정하려면 CURLOPT_POSTFIELDSIZE_LARGE를 사용해야합니다.

참조 URL : https://stackoverflow.com/questions/10790232/hanging-at-post-git-receive-pack-chunked

반응형