본문 바로가기

따라해보자/Subversion

[svn] a clash of views - part1

반응형
충돌이 일어났다면

- 참고
서브버전을 이용한 실용적인 버전관리 - 정보문화사
http://occam.n4gate.com/ - 번역하신 류광님 블로그
http://www.pyrasis.com/main/Subversion-HOWTO - 한글 설치 가이드

1. 서브버전에서도 파일에 대한 잠금기능을 제공하지만
파일을 잠그지 않고 유연한 관리를 권장하고 있다.
아래에서는 n 명의 개발자가 작업을 하는 경우 시뮬레이션(^^) 을 테스트 해본다.

aladdin 이라는 새로운 디렉토리에 체크아웃을 한다. 다른 사용자라고 가정한다.
헉..근데 실행이...안된다.
file:// 이 아니라 file:/// 이다.

사용자 삽입 이미지

2. 체크인을 하는 경우에는 -m  옵션을 통하여 해당 로그를 작성해야만 한다.
해당 옵션을 실행하지 않고 체크인 하려고 하면 아래와 같이 경고문이 나온다.
-m 을 사용하지 않으려면 아래 메시지처럼 외부 프로그램을 사용하는 부분을 설정하라고 한다.
set SVN_EDITOR=notepad 라고 설정하면 svn commit 명령시 노트패드가 떠서 해당 로그를 작성하게 해준다.
이런 설정은 커멘드 창이 떠있는 동안만 유효하며 영구 설정을 위해서는 환경변수를 설정해주어야 한다고 한다.
귀찮아서 일단 넘어감..
뭐 하여간 2개의 파일을 적절히 수정하고 리비전 3으로 체크인 하였음..

사용자 삽입 이미지

3. 이제 막 파일을 내려받은 aladdin 에게 가보자
조금전 sesame 가 새로 체크인하였기때문에
이전에 받은 파일은 구 버전이 되어버렸다.
해당 상태를 아래와 같이 확인한다.
--show-updates 는 -u 와 같은 옵션이다.

사용자 삽입 이미지

4. 어떤 내용이 바뀌었는지 diff 를 사용해서 확인할 수 있다.
여기서 -rHEAD 라는 옵션을 사용하는데 저장소에 있는 가장 최근의 파일과 비교한다는 뜻이라고 한다.
해당 옵션을 설정하지 않으면 리비전2의 상태와 현재 폴더의 상태를 비교하여 준다.

사용자 삽입 이미지


5. 이제 내용을 확인하였으니 저장소에 있는 최신 리비전으로 해당 폴더의 내용을 갱신한다.
갱신후 파일을 비교해보면 당연히 비교할 내용이 없다.
리비전의 상태도 최신상태..

사용자 삽입 이미지
728x90