2010-06-08 3 views
0

친구가 내 프로젝트의 자식을 사용하려고했습니다. 그것은 그의 서버에서 호스팅되며, 나는 다음과 같이 복제한다 :큰 커밋을 할 때 힘내 저장소가 손상됩니다 : "원격 저장소에서 가능한 저장소 손상"

git clone [email protected]:/path/to/git/repos.git 

꽤 좋은 것들이며, 잠시 동안 잘 작동한다. 그러나 우리 중 하나가 큰 커밋을 추가 할 때마다 (아주 잘 처리 할 것으로 추정 됨) 100MB 정도의 순서로 git 저장소가 손상됩니다. 기본적으로이 시점에서 새로운 변경 사항을 적용하고 다른 변경 사항을 적용 할 수 있지만 위의 명령을 사용하여 새로운 위치에서 저장소를 복제하려고하면 다음과 같은 오류 메시지가 표시됩니다.

$git clone [email protected]:/path/to/git/repos.git 
Initialized empty Git repository in /local/path/to/repos/.git/ 
remote: Counting objects: 1455, done. 
remote: Compressing objects: 100% (1235/1235), done. 
error: git upload-pack: git-pack-objects died with error.s 
fatal: git upload-pack: aborting due to possible repository corruption on the remote side. 
remote: aborting due to possible repository corruption on the remote side. 
fatal: early EOF 
fatal: index-pack failed 

이것은 지금 3 ~ 4 번 발생했으며 커밋을 많이 추가 할 때 항상 발생합니다. 왜 이런 일이 일어나는 지 아십니까? 어떻게 해결할 수 있을까요? 우리는 모두 Mac OSX Snow Leopard를 사용하고 있습니다.

감사합니다. -M

+0

가 서버에 충분한 디스크 공간이 있습니까 : 당신은 아마 다시 서버에 얻고 디렉토리의 런에 거기에서 저장소의 위치를해야합니다? –

+0

예, 서버에 많은 공간이있는 것 같습니다. 디스크 공간 문제가 아닌 것으로 보입니다 ... – mindthief

+0

컴퓨터가 실행되는 서버보다 서버의 실행과 관련성이 더 클 수 있습니다. 어느쪽에도 오래된 버전의 git이 없습니다. – Cascabel

답변

0

원격 서버에 대한 푸시가 실패 했습니까? 연결에 패킷 손실이있을 수 있으며 델타가 불완전한 것일 수 있습니다. 로컬 시스템에서 베어 리포 지 토리를 설정하여 푸시하고 복제 한 후 여전히 손상 여부를 확인하십시오.

+0

안녕하세요 Marco, 네, 로컬 디렉토리에있는 git 저장소의 로컬 버전 (최신 버전)을 복제하면 문제가 없습니다. git clone/path/to/local/git/repos/ – mindthief

+0

재전송이 TCP 계층에서 처리되므로 패킷 손실이 문제가 아니어야합니다. 패킷 손실은 인터넷에서 흔히 발생하며 TCP는이를 처리하도록 설계되었습니다. –

+0

로컬 "베어"repos가 커밋 가능하지만 원격 장치가 아닌 경우 전송 메커니즘에 문제가있을 수 있습니다 (Git Daemon, SSH, WebDav를 사용하고 있습니까?) 또는 원격 서버 구성 - INODES (가상 시스템) , 또는 Remote Git Repo 자체와 함께. –

0

매우 늦은 응답이 여기에 있습니다.

git gc 

또는

git gc --aggressive