중앙 집중식 .svn 디렉토리가있는 손상된 저장소를 복구하는 방법은 무엇입니까?


19

최근에 TortoiseSVN 설치를 버전 1.7.1로 업그레이드했습니다. 이로 인해 작업 복사본도 업그레이드해야했습니다. 업그레이드는 루트에 하나만 남기고 모든 하위 디렉토리에서 .svn 디렉토리의 전부 (하나만)를 제거했습니다.

이제 파란색으로 표시됩니다 (물론 바이러스 백신 소프트웨어가 의심됩니다). 예를 들어 작업 복사본을 정리하려고하면 오류가 발생합니다. 나는 또한 아무것도 저지를 수 없습니다.

정리할 때 발생하는 오류 메시지는 다음과 같습니다.

정리에서 다음 경로를 처리하지 못했습니다. C : \ svn

'C : \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base'파일을 열 수 없습니다 : 시스템이 지정된 파일을 찾을 수 없습니다.

작업 복사본 내에 하나의 디렉토리가 존재하는 것과 관련된 오류를 추적했습니다. 이름을 바꾸면 모든 것이 작동합니다. 그것이있을 때 오류가 발생합니다. 또한 삭제하고 다시 확인했습니다. 변경 사항이 없으면 오류가 지속됩니다.

이전 버전에서는 .svn의 손상을 쉽게 복구 할 수 있습니다. 문제가되는 폴더를 삭제하고 다시 확인하십시오. .svn 디렉토리가 중앙 집중화되어 있기 때문에 더 이상이 작업을 수행 할 수 없습니다.

작업 사본을 복구하려면 어떻게해야합니까?

답변:


21

'C : \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base 파일을 열 수 없습니다

방금 비슷한 오류가 있었고 실제로 메모장으로 해당 파일을 만든 다음 정리 작업을 수행해야했습니다.


1
그러나 그것이 안전한가요? "svn cleanup"은 해당 파일을 다시 비울 수 없게합니까? (확실히 전에 있었기 때문에, 아니오?)
hans_meine

이 방법이 제대로 작동하는지 확인할 수 있습니다. 빈 파일을 만들면 어떤 결과가 나올지 잘 모르겠지만 파일을 만들지 않으면 "커밋을 진행할 수 없습니다"
nrathaus

4

빈 파일을 만들지 않고 (감히하지 않은) 영향을받는 디렉토리 (동일한 수정 버전 지정)에 대한 임시 신선한 체크 아웃을 수행 하고 누락 된 파일을 새 .svn 하위 폴더에서 손상된 작업 디렉토리의 폴더로 복사했습니다. .

이것을 더 설명하기 위해 필자의 경우 svn에 대해 불평 한 svn 파일 .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base은 새로운 부분 체크 아웃에서 정확히 찾을 수있는 경로입니다.


3

이전 버전에서 Tortoise SVN 1.7.7로 업그레이드 한 후에도 동일한 문제가 발생했습니다.

다른 해결책을 찾지 못했기 때문에 로컬 작업 복사본을 삭제하고 다시 확인했습니다. 지금은 잘 작동합니다.


2

병합을 중단하는 동안 문제가 발생했습니다. SVN 작업을 수행 할 수 없습니다. SVN 정리를 수행하면 지정된 파일을 찾을 수 없다는 오류가 발생하여 정리 실패가 발생했습니다.

지정된 폴더에 정확한 이름의 더미 파일을 만들고 SVN을 정리했습니다.

그런 다음 계속 진행할 수있었습니다.


0

파일을 C:\working_copy\dir\file.xml찾을 수 없다는 비슷한 문제가있었습니다 . dir디렉토리를 삭제했습니다 . 필자의 경우 새 dir폴더 및 file.xml파일 (빈 텍스트 포함)을 추가하면 정리가 계속되고 작업 복사본을 올바르게 다시 업데이트 할 수 있습니다.


0

내 문제는 스크래치 저장소에서 체크 아웃하면 변경 사항을 저장하지 않아도 IDE에서 모든 프로젝트를 다시 구성해야한다는 것입니다.

동일한 디렉토리에서 .svn 디렉토리와 체크 아웃 저장소를 제거했습니다.

문제가 해결되었습니다 : 모든 svn 작업을 수행 할 수 있었고 프로젝트는 여전히 IDE에서 구성되었습니다.

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