SVN 커밋 중 read-write 액세스가 거부되었습니다, Subversion reported an error : cleanup 해결방법
SVN 소스 커밋 시 오류 메시지에 Cleanup을 하라는 오류 메시지가 떳다.
Cleanup을 진행하면 아래와 같이 액세스가 거부되었다는 실패 메시지가 발생되면서 클린업이 되지 않았는데,
이 오류의 해결방법을 찾아보았다.
SVN Cleanup Error 해결 방법
프로젝트 폴더 안에 .svn 폴더가 숨겨져 있는데, 이 폴더를 찾아 들어간다.
폴더를 찾아 들어가면 wc.db로 되어있는 파일이 있는데, SVN에서 사용하는 SQLite 데이터베이스 파일이다.
데이터베이스 파일 안에 SVN에 저장되는 히스토리 내역이 데이터화 되어 있다.
데이터베이스 중 work_queue 라는 테이블에서 작업 시 오류가 발생되어 SVN에 commit이 되지 않았던 것이다.
wc.db 파일을 오픈하려면 Sqlite 프로그램을 설치해서 테이블정보를 열어야 하는데, 아래 링크에서 다운로드 할 수 있다.
SQLite-preprocessed-3390200 파일을 다운로드 해서 wc.db 파일을 실행해보려고 한다.
다운로드가 완료 되었다면, 압축을 해제한다.
wc.db 파일 폴더 안에서 sqlite3.exe 파일을 실행하기 위해 sqlite3.exe 파일 경로를 기억해두자.
정상적으로 실행이 되었다면, sqlite> 입력창이 실행된다.
1. .tables 명령어로 테이블을 확인하고
2. .header on, .mode column을 차례대로 실행해본다.
3. select * from REPOSITORY; 명령어로 select 진행
4. delete from work_queue; 명령어를 실행해서 work_queue 히스토리를 지운다.
5. work_queue 오류가 발생된 데이터를 삭제 후 SVN 에서 cleanup을 진행한다.
Cleanup이 정상적으로 진행된 것을 확인할 수 있다.
Cleanup이 되었으니, 소스 파일을 SVN 으로 commit 하면 정상적으로 실행이 될 것이다.