Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

subversion client

설치 및 설정 - 리눅스를 기반으로 설명함

subversion client 설치

linux 에서는 subversion 을 rpm으로 설치함. (server, client 모두 포함)
윈도우에서는 다음과 같음

  1. http://tortoisesvn.net/downloads 에서 os에서 맞는 버전 다운로드
  2. 설치후 reboot 필요
  3. Subversion으로 사용할 디렉토리 이동 후 마우스 오른쪽 클릭 "SVN Checkout.." 선택
  • 주소창에 subversion 의 서버주소 입력

subversion client 설정

svn:keywords 속성을 이용 소스코드에서 $Id$ 키워드를 이용하면 소스코드에 자동으로 파일명, Revision, Date, Author 를 기록한다.

이 기능은 리눅스의 경우 사전에 사용자디렉토리의 ~/.subversion/config 에 설정을 하면 된다. miscellany 의 enable-auto-props 를 자동으로 설정해 놓고 auto-props 에서 필요한 확장자별로 설정을 함. 

윈도우 TortoiseSVN 의 경우 폴더에서 오른쪽 마우스 클릭 - TortoiseSVN - Setting - Edit 를 눌러 설정을 하면 된다.

사용자인증

subversion 서버에서 인증을 설정한 경우 linux 에서 첫번째로 접속을 하면 첫번째로 사용자의 로그인 아이디를 사용자명으로 사용한다.
여기서 실패하면 다시 사용자명과 패스워드를 요청한다.

subversion 의 인증절차를 통과하면 사용자의 ~/.subversion/auth/svn.simple 디렉토리에 svn 레파지토리, 사용자명과 패스워드 조합을 저장한다.
그러므로 다음번에 레포지토리를 사용할 경우에는 사용자명, 패스워드를 다시 입력할 필요가 없다.

사용자 인증을 다른 유저로 하려면 다음과 같이 username 인자를 이용하면 된다.

svn 에서 --no-auth-cache 옵션을 이용하면 사용자명과 패스워드를 저장하지 않는다.
설정을 조정하여 기본 패스워드를 저장하지 않도록 구성을 하려면 .subversion/config 에서 auth 항목에 store-passwords = no 을 설정하면 된다.

subversion 클라이언트 사용법

윈도우에서는 subversion으로 사용할 디렉토리 이동 후 마우스 오른쪽 클릭 "SVN Checkout.." 선택, 주소창에 subversion 주소 입력

사용 절차

신규 레파지토리 생성(admin) -> import 하여 소스 레파지토리에 올리기 -> checkout 하여 소스 가져오기 -> 소스 변경한 것 commit 으로 반영하기

예제

  • import 하기 : mytest 디렉토리안에 있는 파일을 http://opssvn.kr.example.com/projects/test 로 import 함. url에서 subversion에 없는 디렉토리를 지정하면 새로 만들어짐.

  • checkout 하기. 아래는 subversion 에서 LDAP에 해당하는 내용을 가져옴. LDAP 디렉토리를 만들고 그 밑으로 파일을 복사함.

많이 사용하는 명령어로는 위의 명령어 외에 파일추가, 파일삭제, 디렉토리 추가, 파일명 또는 디렉토리명 변경 또는 옮기기 등이 있음

파일추가, 삭제, 편집 등 작업을 하고나서 commit 을 할때 -m 옵션을 이용하여 작업한 내용의 로그를 정확히 남겨야 함

명령어

주요 명령어는 svn help 를 치면 나옴
svn co http://opssvn.kr.example.com/projects/<your repository>/

레파지토리 관련 작업

import : subversion 레파지토리로 파일 올리기
checkout (co) : subversion 에서 파일 가져오기
export : checkout 과 비슷하나 관리용 디렉토리를 제외하고 가져오기 때문에 소프트웨어 버전를 릴리즈 할 때 유용
update (up) : 레파지토리에서 최신 버전 가져오기

파일, 디렉토리 작업

commit (ci) : 변경한 내용 레파지토리에 반영하기
add : 파일, 디렉토리 추가 예약
cat : 파일내용보기
copy (cp) : 파일복사
delete (del, remove, rm) : 파일삭제
diff (di) : 소스 차이점 보기
list (ls) : 목록보기
mkdir : 디렉토리 생성
move (mv, rename, ren) : 디렉토리 옮기기

정보보기

info
log : 로그보기
status (stat, st) : 상태 보기

속성

propdel (pdel, pd) : 속성 삭제
propedit (pedit, pe) : 속성 편집
propget (pget, pg) : 속성 값 보기
proplist (plist, pl) : 속성 목록 보기
propset (pset, ps) : 속성 설정

기타 명령

blame (praise, annotate, ann)
cleanup
help (?, h) : 도움말
lock : 여러 명이 동시에 commit 하는 것을 방지하려고 할 때 유용한 옵션임. 다른 사람이 lock 을 걸었어도 force 옵션을 이용 강제로 lock을 바꿀 수 있음
merge
resolved
revert
switch (sw)
unlock

Labels
  • No labels