[SVN] 'cleanup' 에러

2015. 8. 25. 15:00Tool/Eclipse

    목차

< 현상 >

업데이트 또는 싱크 시 다음 에러 발생

org.tigris.subversion.javahl.ClientException: svn: Working copy 'C:\Dev\workspace\pjt\webapps\WEB-INF\io' locked; try performing 'cleanup'

org.tigris.subversion.javahl.ClientException: svn: Working copy 'C:\Dev\workspace\pjt\webapps\WEB-INF\io' locked; try performing 'cleanup'

 

< 원인 >

형상관리 이력정보가 꼬이는 경우가 있음.

 

< 해결 >

1-1. 해당 프로젝트를 선택하고 우클릭 > team > cleanup 실행

1-2. cleanup 성공 후 다시 업데이트

 

클린업 도중 에러가 발생하거나 위 방법으로 해결이 안되면 다음과 같이 처리

2-1. 탐색기에서 콘솔로그에 출력된 폴더 내에 있는 .svn 폴더로 이동

 

2-2. 폴더 내에 locked 파일이 있으면 삭제

2-3. 이클립스에서 다시 업데이트


[출처] [SVN] Working copy ... locked; try performing 'cleanup' 에러|작성자 한주


위에 방법으로 해결이 되지 않아서 다시 검색을 통해서 찾은 방법은 


SQLite를 이용하여 svn에서 사용하는 DB 내에 정보를 직접 지워는 방법으로 해결 했습니다.



"Previous operation has not finished; run 'cleanup' if it was interrupted. svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted."


에러를 한문장으로 정리 하자면


정리 하라고 해서, 정리 하려고 하면, 정리 하라고 하는, 황당한 버그이다.


업데이트, 머징 작업중 작업 큐에 엉뚱한 값이 들어있는 문제라고 한다.


해결책을 찾아보니 sqlite를 .SVN폴더에 놓고 다음과 같이 실행하면 된다.


sqlite3 .svn/wc.db "select * from work_queue"

sqlite3 .svn/wc.db "delete from work_queue"


그런데 나같은  경우 db 파일이 안열렸다. 처음엔 경로 문제 였고 (.svn 폴더가 있는 폴더여야 한다. ) 두번째는 잘 모르겠다.


어쨋든 문제 해결을 위해 sqlite viewer를 받아서 work_queue를 삭제 해서 해결.


http://sqlitebrowser.org/


라이센스는 GNU lv2 이다


[출처] http://foranie0.tistory.com/142



<해결법>


1. http://sqlitebrowser.org/ 접속하여 파일을 다운 받아서 설치 


2. DB Btowser for SQLite를 실행하여 Open Database를 눌러 오류가 발생했던 파일이 속해 있는 폴더 내에 

.svn 폴더에 wc.db 파일을 open


3. Execute SQL 탭을 눌러서 쿼리 실행



- select * from work_queue


- delete from work_queue


삭제 후 탭 위에 있는 Write Changes 클릭 하여 저장한 이후 다시 이클립스에서 Cleanup 실행