나능야 신입! 아기직장인🐣🏢 아기개발자🐣💻
SVN을 처음 접하지
근데 어쩌겠어 개발할 때 형상관리를 SVN으로 한다는데
까라면 까는 게 인지상정

SVN이란?
이전의 버전 관리 도구인 CVS의 한계를 보완하기 위해 태어난 친구
git과 같은 역할을 하며 협업에 도움을 준다.
url은 http://svn.bserver.co.kr/svn/{프로젝트명} 구성되어 있다.
용어
어떻게든 사용을 해야 하니 기본적인 용어 및 명령어는 알아야 하지 않겠나
- Repository
- 파일들이 저장되는 원격 저장소(git에서 의미와 동일)
- Revision
- 수정된 버전, commit할 때 마다 revision 번호가 증가
- 만약 내가 A파일을 가장 최근에 수정을 하고 revision번호를 917을 받았다. 그리고 B파일을 수정해 commit을 하면? B파일은 918번의 revision번호를 받게 됨
- HEAD
- Repository 에 저장된 가장 최신 revision을 의미(git과 동일)
- BASE
- 클라이언트가 checkout 또는 update 명령을 통해 받은 repository의 revision
- 만약 HEAD와 BASE가 다르다면 내가 당겨 받은 후 다른 사용자에 의해 revision이 발생하여 repository에 반영이 되었다는 의미
- checkout
- Repository에서 로컬로 파일을 내려 받는 것(git에서는 브랜치를 바꿀 때 사용했었다.)
- update
- local 파일을 repository와 비교해 최신 버전으로 바꿈
- 만약 같은 파일을 내가 변경을 하고 있는 도중 다른 사용자가 변경하여 반영하면 서브 버전에서는 자동으로 MERGE를 해주는데 못하는 경우 Conflict 발생
- 이때 머지는 사용자가 직접
- commit
- 로컬 내 변경을 repository에 반영하는 것
- 정상적으로 commit이 되면 revision이 증가
- trunk
- branches
- 개발할 때 branch파서 하잖아 그것이다
- 작업 완료되면 trunk로 MR 날림
- merge
- branch로 분리된 소스들에 대해서 변경 내용을 repository에 병합할 때 사용한다.
- override and commit
- commit할 때 repository에 뭐가 있든 내 로컬로 뒤집어 쓰는 거 (conflict 오질 듯)
- override and update
- 내 로컬을 repository 파일로 뒤집어 쓰는 거 (잘못하면 개발한 거 그대로 날라갈 수도)
- show history
매일 잊지 않을 것
git 에서 하던 대로
1. 수정하기 전에 pull(여기선 update)
2. 기능 개발하거나 수정할 때 단위마다 설명하는 commit message와 함께 commit
3. 모든 파일 commit 금지(git에서 git add * 이나 git add .과 같은 무지성 스테이지 올림)
마지막으로 git 사랑해💕