본문 바로가기

Programming/Tool

SVN(Subversion) 명령어 정리

'x의 최신 버전이 없다면 응용 프로그램을 빌드, 테스트, 인도할 수 있는가?'라고 스스로에게 물어봤을 때, 만일 그 답이 '할 수 없다'이면 x는 저장소에 들어가야 한다.

중요한 전자우편 메시지의 본문이나 회의록, 웹에서 찾은 정보 등 프로젝트에 도움이 되는 것이라면 어떤 것이라도 저장소에 저장할 수 있다.

 

서브버전이 설치되어 있는지 확인
$ svn --version
$ svnadmin --version
* RA : Repository Access

 

서브버전 설치
http://subversion.tigris.org
http://www.pyrasis.com/main/Subversion-HOWTO

저장소 만들기
[svr ...]# mkdir /home/svn-repos
[svr ...]# svnadmin create /home/svn-repos

 

지역 작업본에서의 변경 만을 확인
$ svn status

지역 작업본의 파일들 보다 더 최신의 파일들이 저장소에 있는지 확인
$ svn status --show-updates (-u)

그냥 svn status만 실행하는 경우, 서브버전은 현재 작업본의 수정된 파일들에 대한 정보만을 보여준다.

충돌이 일어난 file에 추가되는 정보 (충돌이 일어난 줄을 표시)
<<<<<<< .mine
... (지역 작업본의 내용)
=======
... (저장소의 내용)
>>>>>>> .rN

저장소의 버전으로 되돌아 가는 경우 (충돌이 해소되었음을 알려준다)
$ svn revert file
$ svn update file

저장소의 버전을 폐기하는 경우 (충돌이 해소되었음을 알려준다)
$ cp file.mine file
$ svn resolved file

 

파일이나 디렉토리 추가
$ add
$ add --non-recursive (하위 디렉토리들은 자동으로 추가하지 않음)

서브버전 속성 다루기
서브버전은 두 칸의 정보를 출력한다.
첫 번째 칸은 파일 자체에 대한 변화를 보여주고 두 번째 칸은 파일의 속성에 대한 변화를 나타낸다.
속성 설정:
$ svn propset checked-by "Mike Mason" file
속성 편집:
$ svn propedit checked-by file
속성 나열:
$ svn proplist file
속성 확인:
$ svn propget checked-by file
속성 삭제:
$ svn propdel file

svn:ignore 속성을 이용해서 서브버전이 무시할 파일들을 지정
$ svn propedit svn:ignore directory

서브버전 리비전 식별자
HEAD : 자장소의 가장 최신 리비전
BASE : 해당 항목의 작업본의 기반 리비전. 그 항목을 가장 최근 체크아웃 또는 갱신했을 때의 리비전
COMMITTED : BASE 리비전 또는 그 이전 리비전들 중에서 해당 항목이 마지막으로 변경된 리비전
PREV : COMMITTED 직전의 리비전

줄별 내력
변경된 해당 파일 줄의 최신 리비전 번호, 변경한 저자 그리고 변경된 내용으로 구성된다.
$ svn blame file

변경 제거

$ svn merge -r 현버전:되돌릴버전 파일이름
$ svn merge -r 27:26 file
서브버전에게 file의 리비전 27과 26 사이의 변화를 계산하고 그것을 지역 작업본에 적용하라고 명려한 것이다.
리비전 범위를 27:26으로 한 것은(26:27이 아니라), 이 경우 변경을 되돌려야 하기 때문이다.

좀 더 큰 변경 되돌리기
$ svn merge -r 27:26 .
만일 r27이 현재 디렉토리의 여러 파일들에서 생긴 변경들에 의해 만들어진 것이라고 한다면, 그 모든 변경을 되돌려야 한다.
병합 대상이 특정 파일 이름이 아니고 현재 디렉토리를 뜻하는 마침표(.)임을 주목해야 한다.

<출처 : http://cafe.naver.com/devctrl.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=5189>

'Programming > Tool' 카테고리의 다른 글

Head First Design Patterns  (0) 2008.07.15
SVN 콘솔 명령어  (0) 2008.06.27
Doxygen 한글 깨짐  (0) 2008.06.09