SVN-업데이트 중 체크섬 불일치


122

Subversion에서 일부 파일을 업데이트하려고하면 오류가 발생합니다.

org.tigris.subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

왜 이것을 얻습니까? 어떻게 고칠 수 있습니까?

답변:


70

수정하는 가장 쉬운 방법 (변경 사항이 많지 않은 경우)은 변경 사항을 다른 디렉토리에 복사하고 프로젝트가 체크 아웃 된 디렉토리를 삭제 한 다음 프로젝트를 다시 체크 아웃하는 것입니다.

그런 다음 변경 사항을 다시 복사하고 (.svn 폴더를 복사하지 않음) 커밋하고 계속합니다.


9
문제 파일이있는 폴더를 삭제하고 전체 프로젝트를 업데이트했습니다. 이제 괜찮은 것 같습니다.
Koralek M.

+1 다른 대안 나는 svn의 데이터베이스를 해킹 나에게 남아 발견, 훨씬 더 쉽게
SeanDowney

@SeanDowney 어떻게합니까?
arvindwill

@arvindwill 죄송합니다. 내 의견이 명확하지 않았습니다.이 방법이 훨씬 쉽습니다. 여기에 무서운 대안은 다음과 같습니다 maymay.net/blog/2008/06/17/...
SeanDowney

2
이것은 특정 수정 사항이 아닙니다. 항상 모든 로컬 데이터를 삭제하고 저장소에서 새로운 사본으로 시작할 수 있습니다.
tim

197

SVN 1.7+를 사용하는 경우 여기에 설명 된 해결 방법이 있습니다 .

요약하자면 :

  1. 문제를 일으키는 파일이있는 폴더로 이동합니다.
  2. 명령 실행 svn update --set-depth empty(참고 : 이렇게하면 파일이 삭제되므로 먼저 복사본을 만드십시오!)
  3. 명령 실행 svn update --set-depth infinity

17
이것이 나를 위해 일하는 동안 "svn update --set-depth empty"는 해당 경로에서 모든 것을 삭제하므로 먼저 사본을 만드십시오
tristanbailey dec

3
이것은 원격 위치에서 거대한 저장소를 수정하는 데 매우 효과적이었습니다. 새로운 체크 아웃은 효과가 있었지만 한 시간 이상 걸렸을 것입니다. 몇 분이 걸렸습니다.
Brian Gillespie 2014 년

안녕하세요 저는 svn 클라이언트로 창과 tortoisesvn을 사용하고 있습니다 .. 나는 귀하의 솔루션을 시도했지만 여전히 isse를 보여줍니다
Amit Bera

그냥 이전에 새 저장소에서을 .svn 디렉토리를 대체, 그것은 :) 일
harishkumar329

이것은 나를 위해 잘 작동했습니다, 감사합니다! 포인트 # 1은 문제를 일으키는 실제 폴더 (또는 파일)로 드릴 다운하는 것입니다. 그러면 많이 업데이트 할 필요가 없습니다. 폴더에 Tortoise "업데이트 대상->이 항목 만"을 사용한 다음 "업데이트 대상-> 완전 재귀"를 사용하여 파일을 모두 다시 가져 오는 수십 개의 파일이있는 폴더가 있습니다. 여전히 모든 사람들이이 폴더의 파일을 삭제한다는 점을주의하십시오! 수 기가 바이트의 리포지토리와 전체적으로 미세 조정 된 깊이 설정이있는 느린 VPN 링크에서 "표준"솔루션은 단순히 쓸모가 없었습니다.
dash-tom-bang

6

나는 비슷한 문제가 있었다. 주요 공급자는 안티 바이러스 "FortiClient"(안티 바이러스 + VPN CLient)였습니다. 비활성화했을 때-모든 업데이트 / 체크 아웃이 올바르게 이루어졌습니다.


1
이것이 내 문제를 해결 한 유일한 대답입니다. 나는 이것을 생각할 수 없었다. 감사!
timeon

5

이 문제를 해결하는 더 쉬운 방법을 찾았습니다. 이클립스에서 직접 할 수는 없습니다. 단계 :

  1. Windows에서 작업 공간 폴더 구조로 이동
  2. 폴더 이름 바꾸기
  3. 일식에서 새로 고침
  4. 이제 폴더와 파일이 Eclipse의 프로젝트에서 제거되고 새 이름이 바뀐 폴더 아래에 나타납니다.
  5. 이제 "저장소와 동기화"옵션을 시도하십시오.

그러면 .svnfolder의 텍스트 기본 폴더가 복원됩니다. 오류를 업데이트하는 동안 체크섬 불일치가 더 이상 나타나지 않습니다.


1

이것은 Eclipse 플러그인을 사용하고 동기화하는 나에게 발생했습니다. 문제를 일으키는 파일에는 로컬 변경 사항이 없었습니다 (실제로 마지막 업데이트 이후 원격 변경 사항도 없음). 파일에 대한 다른 수정없이 파일에 대해 "되돌리기"를 선택했고 모든 것이 정상으로 돌아 왔습니다.


1

동일한 오류가 있지만 하나의 파일에 대해 발생했습니다. IntelliJ IDEA에서 파일의 복사본을 만든 다음 프로젝트로 이동하여 해당 파일을 삭제 한 다음 성공적으로 커밋 할 수있었습니다. 그런 다음 동일한 이름으로 새 파일을 만들고 내용을 다시 복사합니다. 개정 내역을 잃을 것 같지만 작동합니다.


1

함께 일하는 동료가있는 경우 :

1) 문제를 일으키는 파일의 이름을 변경하도록 요청하고 commit

2) 당신 update(이제 다른 이름을 가진 유효하지 않은 체크섬이있는 파일이 보입니다)

3) 원래 이름으로 다시 이름을 바꿉니다.

4) commit(동료에게 update파일 이름을 초기 상태로 되돌려 달라고 요청 )

이것은 나를 위해 문제를 해결했습니다.



1

이 페이지의 모든 솔루션을 처리하고 작동하지 않는 Tortoise SVN을 사용하고 있습니다.

마침내 문제 파일을 백업합니다. 사용은 Repo Browser로컬 폴더에있는 파일이 삭제되도록 다음 로컬 폴더를 업데이트, 거기에 문제가있는 파일을 삭제합니다. 그런 다음 백업 파일과을 다시 복사하면 Add > Commit성공적으로 업데이트 할 수 있습니다.

이 방법의 유일한 단점은이 파일의 기록이 제거된다는 것입니다.


0

이 문제를 해결하려면 다음 단계를 따르십시오.

  1. 오류가 발생한 .svn 디렉토리에있는 항목 파일을 엽니 다.
  2. 오류를 제공하는 파일에 대한 항목을 찾고 예상 값을 오류가있는 실제 값으로 바꿉니다.
  3. 이제 동기화하고 업데이트하십시오.

여전히 작동하지 않는 경우. 이것을 시도하십시오. 그래도 해결 방법은 다음과 같습니다.

  1. 시스템에서 파일을 삭제하십시오.
  2. 항목 파일에서 파일 항목을 삭제합니다. (파일 이름부터 특수 문자까지).
  3. 이제 파일을 동기화하고 업데이트하십시오.

이것은 저장소에서 최신 버전의 파일을 가져오고 모든 충돌이 해결됩니다.


0

서버에서 비슷한 문제가 있었지만 SVN 디렉토리가 매우 커서 삭제 및 재 동기화를 원하지 않았으므로 파일을 로컬로 복사 한 다음 삭제했습니다. 업데이트가 성공하고 파일을 다시 추가했을 때.


0

파일을 삭제하고 .svn 디렉토리의 파일 항목에서 파일 참조를 제거하십시오.


0

비슷한 오류가 발생하여 다음과 같이 수정되었습니다.

(내 '수정'은 Subversion이 내부적으로 어떻게 작동하는지 잘 모르기 때문에 정확할 수도 있고 아닐 수도 있다는 가정을 기반으로하지만 확실히 저에게 효과적이었습니다)

.svn \ text-base \ import.php.svn-base가 최신 커밋과 일치 할 것으로 예상됩니다.

에서 오류가 발생한 파일을 확인했을 때 기본 파일이 저장소의 최신 커밋과 일치하지 않았습니다.

최신 커밋에서 텍스트를 복사하여 .svn 폴더에 저장하여 잘못된 파일을 대체했습니다 (내 가정이 잘못된 경우 백업 복사본을 만들었습니다). (파일이 읽기 전용으로 표시되었습니다. 해당 플래그를 지우고 덮어 쓰고 다시 읽기 전용으로 설정했습니다.)

그런 다음 성공적으로 커밋 할 수있었습니다.


0

내 솔루션은 다음과 같습니다.

  1. 파일 시스템에서 svn 정리 실행
  2. 다른 지점으로 전환
  3. 갈등 해결
  4. "문제가있는"분기로 전환
  5. Spring Tool Suite에서 정리 실행
  6. 프로젝트 업데이트 실행

0

1. '복귀로 업데이트'디렉토리 아래의 '이 항목 만'확인 2. '전체 재귀'업데이트 다시 확인

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.