기술 · 실용 가이드
Git “RPC failed; curl 92” 오류인가요? 버퍼 변경 전에 HTTP/2 경계를 입증하세요
curl 92는 HTTP/2 스트림 실패만 뜻하며 Git 버퍼 부족을 증명하지 않습니다. 불완전 전송 단서를 보존하고 프로토콜이나 경로를 한 변수씩 비교한 뒤 우회를 유지하기 전에 객체 데이터베이스를 검증하세요.

curl 92는 HTTP/2 스트림 실패만 뜻하며 Git 버퍼 부족을 증명하지 않습니다. 불완전 전송 단서를 보존하고 프로토콜이나 경로를 한 변수씩 비교한 뒤 우회를 유지하기 전에 객체 데이터베이스를 검증하세요.
libcurl 92는 HTTP/2 프레이밍 계층의 스트림 오류이며 Git, 네트워크, 프록시, 서버 중 원인을 지정하지 않습니다. clone, fetch, pull, push 중 정확한 작업을 기록합니다. 다운로드와 업로드 경로는 같지 않습니다. git -c http.version=HTTP/1.1로 한 번 비교하고 증거 없이 전역 설정을 쓰지 않습니다.
작업·저장소·불완전 전송 증거 고정
스트림 번호, 리셋 이름, 남은 바이트, early EOF, index-pack을 포함한 전체 오류를 보존하고 Git 버전, 명령, 호스트, 시간을 기록합니다. 공유 전 비밀을 제거합니다.
새 임시 디렉터리에서만 재시도하고 불완전한 작업 트리를 사용 가능한 저장소로 보지 않습니다. 정상 clone도 삭제하지 않습니다.
저장소와 작업 범위 분리
같은 원격과 작업을 깨끗한 위치에서 반복하고 같은 호스트의 다른 저장소를 비교합니다. 허가되면 다른 정상 호스트도 비교합니다.
clone/fetch는 pack을 받고 push는 요청을 보냅니다. push용 postBuffer 조언을 clone에 적용하지 말고 depth/filter는 제한 진단으로 취급합니다.
가역적인 HTTP 버전 비교 한 번 실행
저장소, 명령, 자격 증명, 경로를 고정한 뒤 기준 실행과 git -c http.version=HTTP/1.1을 비교합니다.
성공해도 HTTP/2 의존 클라이언트, 중간 계층, 원격으로 후보가 좁혀질 뿐입니다. 둘 다 실패하면 프로토콜 변경을 중지합니다.
네트워크와 중간 경계 한 항목씩 비교
같은 명령에서 승인된 다른 경로 하나만 바꾸고 DNS, 프록시/VPN, 시간과 결과를 기록합니다.
프로토콜, 네트워크, Git 버전, 깊이, 버퍼를 동시에 바꾸지 않습니다. 필요한 추적은 비식별화합니다.
무작정 버퍼 변경을 거부하고 Git 결과 검증
git config --show-origin --get-all http.postBuffer로 현재 값을 확인합니다. 이 설정은 clone 응답의 누락 바이트를 복구하지 않습니다.
오류 없이 완료되고 refs가 있으며 용도에 맞는 검증을 통과해야 종료입니다. 임시 덮어쓰기를 제거하고 결과표를 인계합니다.
