무작정 checkout하지 말고 저장소 구조와 기준 작업선을 먼저 확인합니다.
svn list <repo-url>trunk, branches, tags 구조 확인svn list <repo-url>/trunk실제 프로젝트 루트 확인svn checkout <repo-url>/trunk project정해진 작업선 checkoutsvn info projectURL과 revision 확인SVN 실무 가이드 · 치트시트
요즘 개발자가 익숙하지 않을 수 있는 SVN 명령을 작업 순서, 문제 대응, 브랜치·태그 운영 기준으로 정리했습니다.
작성 기준2026년 7월
SVN 클라이언트와 저장소 URL, working copy 기준을 확인하고 처음 코드를 받는 명령입니다.
svn --version설치된 SVN 클라이언트 버전 확인svn help <command>특정 명령의 사용법 확인svn list <repo-url>checkout 없이 저장소 폴더 구조 확인svn checkout <repo-url>/trunk projecttrunk를 project 폴더로 checkoutsvn info현재 working copy URL, revision, repository root 확인작업 전 최신화하고, 로컬 변경을 검토한 뒤 중앙 저장소에 반영합니다.
svn update서버 최신 변경을 working copy에 반영svn status로컬 변경 목록 확인. 서버 접속 없이 동작svn status -u서버에 더 최신 revision이 있는 파일까지 확인svn diff커밋 전 변경 내용 확인svn add <path>새 파일 또는 폴더 추가 예약svn delete <path>삭제 예약svn move <old> <new>이름 변경 또는 이동 예약svn commit -m "message"working copy 변경을 중앙 저장소에 커밋로컬 변경 취소, 충돌 해결 표시, working copy lock 정리에 사용합니다.
svn revert <path>특정 파일의 로컬 변경 취소svn revert -R .현재 폴더 아래 변경을 재귀 취소. 작업 손실 위험svn resolve --accept working <path>수동 정리한 파일을 충돌 해결 완료로 표시svn resolve --accept mine-full <path>내 변경 전체를 선택해 충돌 해결svn resolve --accept theirs-full <path>서버 변경 전체를 선택. 내 변경 손실 가능svn cleanup중단된 작업과 working copy lock 정리SVN에서는 branch와 tag가 repository copy로 만들어지고, merge 결과는 검토 후 commit합니다.
svn copy <repo-url>/trunk <repo-url>/branches/feature-x -m "create feature-x"trunk 기준 브랜치 생성svn copy -r 1234 <repo-url>/trunk <repo-url>/tags/release-1.0.0 -m "tag release 1.0.0"특정 revision 기준 태그 생성svn switch <repo-url>/branches/release-1.0현재 working copy를 다른 브랜치 URL로 전환svn merge <repo-url>/branches/feature-x브랜치 변경을 현재 working copy에 적용svn mergeinfo <repo-url>/branches/feature-xmerge 이력 정보 확인svn export <repo-url>/tags/release-1.0.0 dist-releaseSVN 메타데이터 없이 릴리스 소스 추출바이너리 파일 잠금, 변경 작성자 추적, 과거 revision 확인에 사용합니다.
svn lock <path> -m "editing"병합이 어려운 파일을 수정 전 잠금svn unlock <path>파일 잠금 해제svn log -l 10최근 10개 커밋 이력 확인svn log -r 1200:1230특정 revision 범위 이력 확인svn blame <path>파일의 줄별 마지막 수정 revision과 작성자 확인svn cat -r 1234 <path>특정 revision의 파일 내용을 출력SVN 서버 담당자가 신규 저장소를 만들고 표준 구조와 백업 기준을 확인할 때 쓰는 명령입니다.
svnadmin create /srv/svn/project서버 파일시스템에 새 repository 생성svn mkdir <repo-url>/trunk <repo-url>/branches <repo-url>/tags -m "init standard layout"표준 폴더 구조 생성svn list <repo-url>저장소 최상위 구조 확인svnadmin hotcopy /srv/svn/project /backup/svn/project운영 저장소 백업 사본 생성svnadmin verify /srv/svn/project저장소 revision 무결성 확인무작정 checkout하지 말고 저장소 구조와 기준 작업선을 먼저 확인합니다.
svn list <repo-url>trunk, branches, tags 구조 확인svn list <repo-url>/trunk실제 프로젝트 루트 확인svn checkout <repo-url>/trunk project정해진 작업선 checkoutsvn info projectURL과 revision 확인SVN commit은 서버 반영입니다. 대상과 내용을 모두 확인한 뒤 커밋합니다.
svn update서버 최신 변경 반영svn status커밋 대상 파일 확인svn status -uout-of-date 파일 확인svn diff실제 변경 내용 검토svn commit -m "fix: update order validation"명확한 메시지로 커밋충돌이 나면 파일을 먼저 정리하고, SVN에 해결 완료를 알려야 합니다.
svn statusC 상태 파일 확인svn diff <path>충돌 전후 차이 확인svn resolve --accept working <path>수동 해결한 파일을 해결 완료 처리svn status충돌 상태가 사라졌는지 확인svn commit -m "resolve update conflict"필요한 경우 해결 결과 커밋되돌리기 전 diff로 버릴 내용을 확인하고, 파일 단위로 좁게 실행합니다.
svn diff src/order.js되돌릴 변경 확인svn revert src/order.js해당 파일만 원래 상태로 되돌림svn status상태가 깨끗해졌는지 확인svn revert -R .작업 전체 취소. 필요한 변경까지 사라질 수 있음배포 기준은 태그 이름과 revision 번호를 함께 남깁니다.
svn info <repo-url>/trunk태그를 만들 기준 URL 확인svn log <repo-url>/trunk -l 1태그 기준 최신 revision 확인svn copy -r 1234 <repo-url>/trunk <repo-url>/tags/release-1.0.0 -m "tag release 1.0.0 from r1234"특정 revision 기준 릴리스 태그 생성svn log <repo-url>/tags/release-1.0.0 -l 1태그 생성 커밋 확인작업 중단이나 실패 후에는 .svn을 만지지 말고 cleanup부터 실행합니다.
svn cleanupworking copy lock 정리svn status정리 후 남은 변경 확인svn update다시 최신화 시도팀원이 checkout하기 전에 표준 폴더, 권한, 백업 가능 여부를 먼저 확인합니다.
svnadmin create /srv/svn/project신규 repository 생성svn mkdir <repo-url>/trunk <repo-url>/branches <repo-url>/tags -m "init standard layout"trunk, branches, tags 기본 구조 생성svn list <repo-url>팀에 공유할 저장소 구조 확인svnadmin hotcopy /srv/svn/project /backup/svn/project백업 사본 생성 가능 여부 확인svn revert -R .현재 폴더 아래 로컬 변경과 추가 예약을 재귀적으로 취소합니다. 커밋하지 않은 작업이 한 번에 사라질 수 있습니다.
svn resolve --accept theirs-full <path>충돌 파일에서 서버 변경 전체를 선택합니다. 내 로컬 수정이 사라질 수 있으므로 diff와 백업을 먼저 확인하세요.
svn delete <repo-url> -m "message"URL을 대상으로 실행하면 저장소에서 바로 삭제 revision이 만들어질 수 있습니다. working copy 삭제와 다르게 즉시 서버에 반영됩니다.
svn copy <repo-url> <repo-url> -m "message"URL 간 copy는 브랜치나 태그를 즉시 생성하는 서버 커밋입니다. 태그 이름, 기준 revision, 대상 경로를 반드시 확인하세요.
svn switch <repo-url>working copy의 기준 URL을 바꿉니다. 로컬 변경이 있는 상태에서 실행하면 충돌과 혼동이 커질 수 있습니다.
SVN은 중앙 저장소가 기준입니다. URL을 대상으로 실행하는 copy, delete, commit 계열 명령은 서버 revision을 바로 만들 수 있으므로 대상 URL과 revision을 먼저 확인하세요.
수정됨. diff로 내용 확인 후 commit 또는 revert합니다.
추가 예정. commit 전까지 서버에는 반영되지 않습니다.
삭제 예정. 의도한 삭제인지 commit 전 확인합니다.
버전 관리 대상이 아닌 파일. add 또는 ignore 여부를 판단합니다.
관리 중인 파일이 로컬에서 사라짐. 삭제 의도인지 실수인지 확인합니다.
충돌. 파일 정리 후 resolve 명령으로 해결 완료 처리합니다.