버전 관리 중인 파일이 수정됐습니다.
이 파트에서 다루는 내용
status 코드는 먼저 읽어야 하는 신호입니다
SVN은 status 첫 글자로 작업 사본 상태를 보여줍니다. M, A, D는 비교적 단순하지만 C, !, ?는 처리 방향을 잘못 잡으면 작업을 잃기 쉽습니다.
추가 예정입니다. commit 전까지 서버에는 없습니다.
삭제 예정입니다. commit 전까지 서버에는 반영되지 않습니다.
SVN이 모르는 파일입니다. 필요하면 add, 아니면 ignore 또는 삭제합니다.
SVN이 관리하던 파일이 로컬에서 사라졌습니다. 의도인지 확인해야 합니다.
업데이트나 병합 중 충돌이 생겼습니다. resolve 전에는 커밋할 수 없습니다.
revert는 로컬 변경을 버립니다
svn revert는 working copy의 변경 예약을 취소하고 파일을 기준 revision 상태로 되돌립니다. Git의 reset처럼 넓게 쓰면 로컬 작업을 잃을 수 있습니다.
실무에서는 먼저 svn diff로 버릴 변경을 확인하고, 되돌릴 파일을 좁혀 지정합니다.
svn diff src/order.js되돌리기 전에 변경 내용 확인svn revert src/order.js특정 파일의 로컬 변경 취소svn revert -R .현재 폴더 아래 변경을 재귀적으로 취소. 작업 손실 위험이 큼충돌은 파일 정리 후 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>서버 변경 전체를 선택. 내 변경 손실 가능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부터 다시 해야 할 수 있습니다.