이 파트에서 다루는 내용
Working Copy 만들기수정 전 update변경 확인커밋 전 검수
01
처음에는 checkout으로 작업 사본을 만듭니다
SVN에서 처음 코드를 받을 때는 checkout을 사용합니다. Git의 clone처럼 보이지만 전체 이력을 로컬에 복제하는 것은 아니고, 지정한 경로의 working copy를 만드는 작업입니다.
URL이 trunk인지 branch인지 확인하지 않고 checkout하면 엉뚱한 라인에서 작업할 수 있습니다.
svn checkout <repo-url>/trunk projecttrunk를 project 폴더로 checkoutsvn co <repo-url>/branches/release-1.0 project-release축약형 co로 특정 브랜치 checkoutsvn info projectcheckout한 작업 사본의 URL과 revision 확인02
작업 전에는 update, 커밋 전에는 status와 diff를 봅니다
SVN은 commit이 서버에 바로 반영되므로 커밋 전에 로컬 변경과 서버 최신 상태를 분리해서 확인해야 합니다.
작업 중에는 status와 diff로 내 변경만 보고, 서버에 새 변경이 있는지는 status -u 또는 update로 확인합니다.
svn update서버 최신 revision을 working copy에 반영svn status내 로컬 변경 목록 확인. 서버 접속 없이 동작svn status -u서버 기준으로 out-of-date 파일까지 확인svn diff커밋 전 실제 변경 내용 확인svn log -l 5최근 커밋 이력 확인03
파일 추가, 삭제, 이동은 SVN 명령으로 알립니다
SVN은 파일 시스템에서 삭제하거나 이름을 바꿨다고 자동으로 의도를 완전히 이해하지 않습니다. 버전 관리 대상의 추가, 삭제, 이동은 SVN 명령으로 알려주는 습관이 안전합니다.
svn add src/new-file.js새 파일을 버전 관리 대상으로 추가 예약svn delete src/old-file.js파일 삭제를 repository에 반영하도록 예약svn move src/a.js src/b.js파일 이름 변경 또는 이동을 이력과 함께 예약svn statusA, D, M, !, ? 상태 코드 확인04
커밋은 작은 단위와 명확한 메시지가 기준입니다
SVN commit은 곧 중앙 저장소에 반영됩니다. Git처럼 로컬에 여러 커밋을 쌓아두고 나중에 push하는 흐름이 아니므로 커밋 대상과 메시지를 더 신중히 봐야 합니다.
svn status커밋 대상 파일 목록 확인svn diff커밋 내용 최종 검토svn commit -m "fix: correct order total calculation"메시지와 함께 현재 working copy 변경 커밋svn commit src/order.js -m "fix: correct order total calculation"특정 파일만 커밋실무 기준
커밋 전에는 status로 대상, diff로 내용, info로 작업 URL을 확인하세요. 특히 trunk와 branch를 착각한 커밋은 되돌리기 비용이 큽니다.
체크