회사에서도, 집에서도, 개인작업도
버젼관리가 필요한 부분에선 거의 항상
Tortoise SVN 을 사용합니다.
https://tortoisesvn.net/
잘 쓰고 있는데 가끔, 어떤 커맨드를 줘도
'Cleanup' 을 하라는 에러가 발생합니다.
Update나 Commit 등을 하려고 하면
Cleanup을 하라고 하고...
Cleanup을 하려고 하면,
다시 Cleanup을 하라고 하는...
(어쩌라는 건지)
통상적인 방법으론 lock 이 풀리지 않아서
저장소를 통째로 다시 Checkout 받으시는
경우가 꽤 많다고 들었습니다.
원인은 간단합니다.
메시지를 보면
Error:Working copy '블라블라' locked
~ already locked.
어떤 이유에서인지 lock 이 풀리지 않아서
Cleanup 도 동작하지 않는 문제입니다.
풀리지 않는 lock 을 강제로 지워주면 됩니다.
먼저 아래 파일을 다운받아 주세요.
직접 제작해서 압축한 파일이니
안심하고 다운받으셔도 좋습니다.
위 파일을 다운받아서 버젼관리 되고있는
(.svn 폴더가 있는) 폴더에 풀어줍니다.
이렇게
sqlite3.exe 와 svn_delete_lock~.bat
두 개 파일 중에 배치파일을 실행해줍니다.
"svn_delete_lock_by_wonsorang.bat"
마찬가지로, 직접 작성한 배치파일입니다.
동봉된 sqlite3.exe 도 sqlite 공식 홈페이지에서 받은 파일이니 안심하셔도 좋습니다.
이렇게 뜨면 끝
이제 다시 Cleanup 을 돌려서 lock 이
정상적으로 제거되었는지 확인합니다.
해결이 되었다면... 즐거운 작업 되시길!
PS1.
SVN은 데이터 내역을 sqlite 로 관리하는데
Working copy에서 뭔가 작업을 시작할 때
wc_lock 테이블에 lock 정보를 삽입하고
작업이 완료되면 다시 wc_lock 테이블의
lock을 제거하는 방식으로 동작합니다.
wc_lock 테이블에 lock 정보가 남아있다면
다른 작업이 진행되지 않도록 막습니다.
이 때, wc_lock 테이블에 lock 은 걸었는데
작업 도중 문제가 발생해서 lock 이 제거되지
않으면 위와 같은 상황이 발생하게 됩니다.
구체적으로 어떤 문제 때문인지는 모르겠으나,
로컬환경에서는 목격한 적이 없는터라
네트워크 관련 문제가 아닐까 추측됩니다.
PS2.
SQLite browser 로 .svn/wc.db 를 열면
SVN 이 참조하는 DB 스키마를 볼 수 있습니다.
http://sqlitebrowser.org/
내용 추가.
Tortoise SVN 이 계속 버전업 되면서 편의기능이 많이 생겼습니다.
위 이미지에서 Break locks 를 체크하고 Cleanup 을 실행하면, 걸려있던 lock 이 많은 경우에 삭제되는 것 같습니다. 먼저 이 기능을 돌려보시고, 그래도 lock 이 제거되지 않는다면 위 본문의 툴을 사용하시면 될 것 같습니다.
'게임제작 이야기' 카테고리의 다른 글
NDC18 개발 자동화와 그 적들 - 최우성 (0) | 2019.05.28 |
---|---|
넥슨 개발자 컨퍼런스, NDC 2019. 4.24~ (0) | 2019.04.23 |
100% 재택근무 가능한 게임회사? (0) | 2019.04.14 |
비영리 창작게임물 심의 수수료 면제? 심의를 면제해야! (0) | 2019.03.23 |
게임 무지렁이 상태 (0) | 2019.03.20 |
게임 사전심의, 위헌적 규제로 위축된 창작활동 (0) | 2019.03.19 |
경제 부가가치 유발과 게임산업 (0) | 2019.03.16 |