본문 바로가기
형상관리/SVN

[오류] E155037: Previous operation has not finished; run 'cleanup' if it was interrupted

by StarDev 2023. 7. 17.
반응형
SMALL

현상

[에러1]

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

 

[에러2]

svn: e155004: there are unfinished work items in ~; run 'svn cleanup' first.

 

 

지난 주 부터 업무를 진행하다가 SVN 에서 Update/Commit을 하려고 하면 위와 같은 오류가 떴다. Intellij / Eclipse 모든 IDE를 통해서 SVN update를 진행해도 해결되지 않고 어려움이 있었는데 그나마 보전하면서 해결하게 되어서 글을 쓴다.

 

원인

원인은 svn 관련 프로세스를 진행중에 강제로 중단시키거나 활동이 꼬이게 되면 해당 오류가 발생하는 것으로 알려져 있는데, 필자의 경우에는 인텔리제이에서 여러가지 프로젝트를 모듈로 넣으면서 뭔가 꼬인 것 같다. (그 과정에서 svn update, synchronized... 등 뭔가 작업을 하고 있었던 걸 (■ 중단) 표시를 눌러 종료하게 되면서 꼬인 것 같다.... )

 

해결방법

현재 해결 방법이라고 나와있는 여러가지 것 들 중 시도해 본 것 과 해결 된 방법을 소개하려고 한다. 크게 보면 네 가지 방법을 시도 할 수 있다고 본다.

 

1. 안내 문구에 따라 team/Shbversion > Cleanup 진행하기

좌 : 인텔리제이에서 프로젝트 오른쪽 클릭 시 나오는 화면 / 우 : 이클립스에서 프로젝트 오른쪽 클릭시 나오는 화면

사실 여러분들은 이 방법을 통해서 해결이 되지않아 해결 방법을 찾아다닐 것이라고 생각한다. 필자로 해당 방법으로는 해결이 되지 않았고, 단순히 Cleanup 한다고 해결되는 문제라면 찾아오지 않았겠지... 그렇다면 아래의 방법을 사용해보라!

2. SQLite 를 통하여 CLI 에서 관련 파일 Delete 하기

https://www.sqlite.org/download.html  SQLite 공식 홈페이지 다운로드

 

SQLite Download Page

Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for precompiled bi

www.sqlite.org

자신의 운영체제에 맞는 SQLite를 다운로드 받으면 된다. 현재 날짜 기준으로 아래의 두개 파일 중 하나를 다운로드 해도 상관없으니 편의상 해당 파일을 업로드해놓겠다.

sqlite-dll-win32-x86-3420000.zip
0.56MB
sqlite-dll-win64-x64-3420000.zip
1.16MB

 

해당 파일의 압축을 풀면 sqlite3.exe 파일이 있는데 해당 파일을 문제가 발생한 프로젝트의 .svn 폴더에 복사한다. (프로젝트 하위 폴더에 숨김파일로 존재) 그리고 윈도우 커맨드창(CMD)를 통해 아래의 2개 명령어를 실행해보자.

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

sqlite3 .svn/wc.db "select * from wc_lock"
sqlite3 .svn/wc.db "delete from wc_lock"

// 해당 명령어는 경로를 명시하여 제대로 실행이 되지 않을 수 있다.
// 따라서 사용자는 해당 명령어가 안된다면 경로를 확인하지.
sqlite3 wc.db "select * from work_queue"
sqlite3 wc.db "delete from work_queue"

sqlite3 wc.db "select * from wc_lock"
sqlite3 wc.db "delete from wc_lock"

svn의 순차적 명령을 .svn 폴더 내부의 wc.db 파일에 저장을 하는 것 같은데 해당 오류의 원인이 보통 wc.db 파일의 queue와 lock을 없애 해결할 수 있는 것으로 소개하고 있는데 필자는 해당 테이블에 내용이 아무것도 없고 위 명령어를 실행하여 진행해보아도 되지 않았다.

 

3. wc.db 파일에 접근하여 SVN Lock 내용 삭제하기 / 해제하기

위 방법을 모두 사용했으나 해결되지 않아서 wc.db 파일에 접근하여 안에 내용이 있는지 다시한번 확인하고 삭제하는 과정을 거쳤다. 이 방법은 DB Browser for SQLite 프로그램을 사용하여 wc.db 에 접근하여 직접 SQL 명령어를 실행하는 방법이다.

 

https://sqlitebrowser.org/

 

DB Browser for SQLite

DB Browser for SQLite The Official home of the DB Browser for SQLite Screenshot What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S is for users and dev

sqlitebrowser.org

해당 파일을 설치하고 나면 DB Browser for SQLite.exe 파일이 보이는데 해당 파일을 실행시켜서 wc.db에 접근한다.

wc.db 파일을 열면 WC_LOCK, WORK_QUEUE 테이블을 확인 할 수 있다. 안에 데이터가 있는지 확인하고 만약 데이터가 존재한다면, 해당 부분이 문제가 되었을 확률이 높다. 이런 경우에는 상단의 SQL 실행을 눌러 해당 명령어를 실행하여 테이블의 내용을 정리하자.

DELETE FROM WC_LOCK
DELETE FROM WORK_QUEUE

 

정상적으로 실행되었다면 프로젝트에서 Cleanup을 한번 진행하고 정상적으로 작동되는지 확인하면 될 것 이다. 하지만, 필자는 이 방법으로도 해결할 수 없었다. 

 

4. 프로젝트 재 연결을 통한 SVN 생성

결국에는 .svn 파일을 초기화 해주면서 문제를 해결했는데 해당 방법이 시간이 오래걸리거나 문제가 생기는게 아니었기 때문에 필자는 이 방법을 가장 추천한다. 이클립스로 진행하여 해결하였는데 본인의 IDE가 이클립스가 아니더라도 해당 방법은 모두 존재할 것 이라고 생각한다.

 

방법은 간단하다. 프로젝트를 Disconnection 후 다시 Share 하는 방법이다.

1. Project > Team > Disconnect

2. Project > Team > Share Project

 

재연결을 시도했을 때 Local 에 있는 파일 내용과 접속하는 형상관리 자원들과 내용이 달라서 오류 메세지를 뿜고 동기화를 진행할 것이냐고 물어본다.

 

해당 과정에서 Yes 를 눌러서 동기화를 진행하면 되는데, 그 이후로 commit 리스트가 나오는데 OK 누르지 말고 Cancel 눌러서 창을 끄면 된다. (만약 반영할 것이 있다면 리스트를 확인 후 반영할 것만 commit 해주자.)

 

필자는 해당 방법을 통해서 해결할 수 있었다. 개인적으로 SVN 보다 git이 편하기도 하고 로컬 branch 를 따로 만들어서 사용할 수 있으니 형상관리툴을 바꾸고 싶지만.. 회사에서는 모종의 이유들로... 안된다는 답만.....  빨리 익숙해져야지.....

 

최후의 수단은 다시 Check out을 해야하는데 이 방법은 기존의 수정 파일들을 정리하는데 오래걸리기 때문에.... 그런 상황만 생기지 않으면 좋겠다.

 

 

- 끝 - 

반응형
LIST

댓글