SVN 실무 가이드 · Part 3

충돌, 되돌리기, 잠금 처리

SVN에서 작업이 꼬였을 때 손실 없이 멈추고 확인하고 복구하는 실무 대응

작성 기준2026년 7월

이 파트에서 다루는 내용

상태 코드 읽기작업 되돌리기충돌 해결잠금과 cleanup
01

status 코드는 먼저 읽어야 하는 신호입니다

SVN은 status 첫 글자로 작업 사본 상태를 보여줍니다. M, A, D는 비교적 단순하지만 C, !, ?는 처리 방향을 잘못 잡으면 작업을 잃기 쉽습니다.

M
Modified

버전 관리 중인 파일이 수정됐습니다.

A
Added

추가 예정입니다. commit 전까지 서버에는 없습니다.

D
Deleted

삭제 예정입니다. commit 전까지 서버에는 반영되지 않습니다.

?
Unversioned

SVN이 모르는 파일입니다. 필요하면 add, 아니면 ignore 또는 삭제합니다.

!
Missing

SVN이 관리하던 파일이 로컬에서 사라졌습니다. 의도인지 확인해야 합니다.

C
Conflict

업데이트나 병합 중 충돌이 생겼습니다. resolve 전에는 커밋할 수 없습니다.

02

revert는 로컬 변경을 버립니다

svn revert는 working copy의 변경 예약을 취소하고 파일을 기준 revision 상태로 되돌립니다. Git의 reset처럼 넓게 쓰면 로컬 작업을 잃을 수 있습니다.

실무에서는 먼저 svn diff로 버릴 변경을 확인하고, 되돌릴 파일을 좁혀 지정합니다.

svn diff src/order.js되돌리기 전에 변경 내용 확인
svn revert src/order.js특정 파일의 로컬 변경 취소
svn revert -R .현재 폴더 아래 변경을 재귀적으로 취소. 작업 손실 위험이 큼
03

충돌은 파일 정리 후 resolve로 마무리합니다

update나 merge 중 충돌이 나면 파일 안의 충돌 표시를 직접 정리한 뒤 SVN에 해결 완료를 알려야 합니다.

수정만 하고 resolve를 하지 않으면 SVN은 여전히 충돌 상태로 보고 commit을 막을 수 있습니다.

svn update서버 변경 반영 중 충돌 여부 확인
svn diff <conflicted-file>충돌 파일의 현재 차이 확인
svn resolve --accept working <conflicted-file>수동 정리한 현재 파일을 해결본으로 표시
svn resolve --accept mine-full <conflicted-file>내 로컬 변경 전체를 선택
svn resolve --accept theirs-full <conflicted-file>서버 변경 전체를 선택. 내 변경 손실 가능
04

working copy locked는 cleanup부터 봅니다

SVN 작업이 중간에 끊기면 working copy locked 오류가 날 수 있습니다. 이때 임의로 .svn 폴더를 건드리지 말고 cleanup을 먼저 실행합니다.

svn cleanup중단된 작업 상태와 working copy lock 정리
svn lock docs/spec.docx -m "editing release spec"바이너리 문서처럼 병합 어려운 파일 잠금
svn unlock docs/spec.docx작업 완료 후 잠금 해제
svn status -u다른 사람이 잠근 파일이나 out-of-date 상태 확인
금지

.svn 폴더를 직접 삭제하거나 수정하지 마세요. 작업 사본 메타데이터가 깨지면 checkout부터 다시 해야 할 수 있습니다.

체크

이 파트 완료 기준