개발을 하다 보면, 정말 예기치 않은 순간에 에러 메시지가 하나 툭 하고 튀어나올 때가 있죠. 평소처럼 커밋하려고 하다가, 혹은 업데이트 중인데 갑자기 아래와 같은 문구가 뜨면 마음이 철렁 내려앉을 수도 있어요.
'Previous operation has not finished; run 'cleanup' if it was interrupted'
저도 처음에는 '어? 뭔가 이상한데?' 싶어서 손을 멈췄던 기억이 나네요. 그런데 알고 보니 생각보다 간단한 이유에서 생기는 문제였고, 해결 방법도 어렵지 않더라고요. 혹시 같은 상황을 겪고 계신다면, 아래 내용이 도움이 되실 거예요.
왜 이런 오류가 생기는 걸까요?
이 메시지는 쉽게 말하면 SVN이 '이전 작업이 아직 끝나지 않았어요' 하고 알려주는 거예요. 보통은 아래와 같은 경우에 자주 나타납니다.
- 커밋이나 업데이트를 하다가 중간에 취소했을 때! 이러한 경우를 2번 정도 겪었답니다.
- 충돌(conflict)이 생긴 파일을 정리하지 않은 채 다른 작업을 시도했을 때
- 네트워크가 불안정해서 SVN 작업이 갑자기 끊겼을 때
이런 일이 생기면 SVN 내부적으로 프로젝트 폴더 안의 .svn 디렉토리에 '잠금 정보'가 남게 돼요. SVN은 이 상태를 보고 '아직 끝나지 않은 작업이 있어요'라고 판단하고, 다음 작업을 잠시 막아두는 거죠.
해결 방법 : Clean up
다행히 이 문제는 아주 간단하게 해결할 수 있어요. SVN의 'Clean up' 기능을 사용하시면 됩니다.
방법은 아래처럼 따라 해보세요
- 프로젝트 폴더에서 마우스 오른쪽 클릭
- '소스 제어'(또는 'Source Control') 선택
- 'Subversion' 메뉴 클릭
- Clean up을 선택해 주세요
조금만 기다리면, SVN이 내부 상태를 정리해주고 잠금 상태도 해제해줘요. 그러고 나면 다시 예전처럼 커밋이든 업데이트든 정상적으로 작업하실 수 있어요.
비쥬얼 스튜디오 솔루션 메뉴의 'clean up'이 아니라, subversion 메뉴의 'clean up'이에요!
혹시 또 이런 일이 생길까 봐 걱정되신다면
이 오류를 미리 방지하려면, SVN 작업을 하실 때 중간에 끊기지 않도록 조금만 더 신경 써주시면 좋아요. 예를 들면
- 커밋이나 업데이트가 끝날 때까지 기다려주시고
- 충돌이 생기면 바로 정리한 후에 다음 작업을 하시고
- 가능한 한 네트워크가 안정된 환경에서 작업해보세요
물론 모든 걸 다 통제하긴 어렵겠지만, 이런 습관들이 반복되는 오류를 줄이는 데 정말 도움이 된답니다.
