본문 바로가기
Dev ::

[SVN] SVN Lock 해제하기 ::

by 히로:: 2019. 4. 25.

 

형상관리 툴로 SVN을 사용하고 있습니다.  GIT으로 빨리 갈아타야 하는데 맘처럼 쉽지 않네요.

 

SVN을 사용하다보면 commit이나 update 시에 lock 걸려 해당 기능이 동작하지 않는 경우가 있는데요,

 

SVN 은 건드리지도 않고 단순히 작업한 내용을 commit 하려고만 했을 뿐인데.. Lock 이라니.. 

 

SVN Lock 걸리는 이유를 조금 찾아봤는데 마땅히 이해가는 설명은.. 찾기 힘드네요.. (영알못 개발자 ㅠㅠ)

 

이번에 작업할때는 여러 개의 파일을 한 번에 commit 했는데 그중에 서버와 충돌 난 파일이 몇 개 있었는데 

 

그 파일들과 같이 commit 하려고 해서 Lock 이 걸린것은 아닐까 조심스럽게 예상해봅니다.. 

 

* 공통 프로젝트 진행 시 작업전에 SVN UPDATE는 필수 !! 

 

그럼, 본론으로 돌아와 예기치 못한 SVN Lock 발생 시 해결하는 방법을 알려드리겠습니다.

 

해당 폴더나 프로젝트를 CleanUp 하면 된다고 하지만 이미 Lock 이 결러 CleanUp 자체가 동작하지 않습니다. 

 

SVN 사용시에는  숨김 폴더로. svn 폴더가 생성됩니다. 

 

해당 폴더에 들어가 보면 wc.db 존재합니다. 이 파일은 열어 SVN Lock 걸린 부분을 확인하고 해제할 수 있습니다. 

 

 

.svn 폴더안에 wc.db 파일

해당 파일을 열기 위해 DB Browser for SQLite라는 프로그램이 필요합니다. 아래 링크에서 다운로드하여 설치해줍니다!

 

 

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

 

 

설치 후에 wc.db 파일을 열어줍니다.  주의할 사항은 SVN Lock 걸린 폴더의 .svn 파일 내의 wc.db 파일을 열어야 합니다. 

 

해당 폴더에 .svn 폴더가 존재하지 않을 경우 부모 폴더로 계속 올라가 보세요. 요즘 버전의 SVN 은 부모 폴더에 존재합니다. 

 

 

 

wc.db 파일을 열면 WC_LOCK , WORK_QUEUE 테이블을 확인할 수 있습니다.  SVN Lock 이 걸렸을 경우 이 두 개의 테이블 안에 SVN Lock 정보가 기록되어 있습니다. 

 

 

SVN Lock 정보가 보이시나요??   

 

이제 다 왔습니다. 이 정보를 삭제해주면 됩니다.  아래 쿼리를 실행해주세요!! 

DELETE FROM WC_LOCK
DELETE FROM WORK_QUEUE

 

 

Lock 걸린 정보가 삭제된것이 보이시나요? 이제 다시 프로젝트로 돌아가 해당 폴더 또는 프로젝트를 CleanUp 해주시고 

 

commit / update 의 작업을 진행해주시면 됩니다. 

 

 

 

반응형

댓글