설치 과정과 용어는 아래 링크를 참조하세요.
http://www.gooday.kr/bbs/board.php?bo_table=note&wr_id=180
[ Subversion 정리 ]
1. Subversion 을 사용하는 3가지 방식
1) 탐색기 방식
Subversion을 윈도우즈 탐색기처럼 사용하도록 해주는 TortoiseSVN이 있다. 아래 링크를 통해 TortoiseSVN을 설치하여 사용한다.
http://tortoisesvn.tigris.org
2) 웹 방식
Apache 서버를 구축하고 Subversion과 ViewVC를 설치하면 익스플로러를 통해 웹처럼 접근할수 있다.
http://httpd.apache.org : Apache (apache_2.0.59-win32-x86.msi)
http://subversion.tigris.org : Subversion (svn-1.4.3-setup.exe)
http://www.viewvc.org : ViewVC (viewvc-1.0.3.zip)
ViewVC를 사용하지 않을 경우에는 "지정 도메인"/"해당 저장소" 로 접근
예) sample.com/repository
ViewVC를 사용할 경우에는 "지정 도메인"/viewvc 로 접근
예) sample.com/viewvc
3) svn+ssh 방식
ssh클라이언트 툴인 putty를 이용하여 ssh로 암호화 된 상태로 Subversion을 사용한다.
개인마다 키를 생성하여 이용하는데........
2. Subversion 주요 명령어
1) svnadmin create : 지정한 위치에 새로운 저장소(repository)를 생성한다.
형식 - svnadmin create "dest"
# svnadmin create /home/heyduk/repos
2) svn import : 생성된 저장소에 프로젝트 파일을 넣는다.
형식 - svn import "option" "source" "dest"
# svn import -m "import first project" . file:///home/heyduk/repos/project1/trunk
-m 옵션을 통해 import 할때의 메세지를 남기고 현재 디렉토리의 내용을 project1라는 별도의 디렉토리에 넣는다.
3) svn checkout(co) : 저장소에 보관된 프로젝트 소스를 로컬 시스템의 작업 디렉토리로 복사하여 가져온다.
형식 - svn co "source" "dest"
# svn co file:///home/heyduk/repos/project1/trunk my_work
4) svn commit : 지역 작업본의 변경한 내용들을 저장소에 저장하며 프로젝트를 새로 리비젼시킨다.
형식 - svn commit(ci) "option"
# svn commit -m "main() modified"
5) svn status : 작업 복사본에서 변경된 이후 아직 저장소로 commit 되지 않은 내용을 확인한다.
형식 - svn st "path"
# svn status(st) main.c
출력 내용 중 첫번째 문자를 통해 상태를 확인할 수 있는데 그중 몇가지 주요 내용은 다음과 같다.
A : 추가됨
C : 충돌됨
D : 삭제됨
M : 수정됨
G : 병합됨
6) svn diff : 저장소의 내용과 현재 작업 내용을 비교하여 변경한 부분(차이점)을 자세히 확인한다.
저장소와의 네트워킹은 일어나지 않으므로 실시간 변경 내용은 반영되지 않는다.
형식 - svn diff "path" , svn diff "option"
# svn diff main.c
저장소의 내용과 현재 작업내용 중 main.c 파일의 차이를 확인
# svn diff -r 1:2
리비전 1과 2의 차이를 확인
# svn diff -r 1 main.c
리비전 1과 현재 작업중인 main.c의 차이를 확인
# svn diff -r 2
리비전 2와 현재 작업중인 디렉토리의 파일내용 차이를 확인
7) svn log : 특정 파일의 commit된 로그 메세지를 확인한다.
형식 - svn log "path" , svn log "option"
# svn log main.c
main.c 파일이 commit 된 로그메세지를 출력
# svn log -r 1:2
리비젼1부터 2까지의 로그메세지를 출력
8) svn update : 현재 작업디렉토리의 내용을 저장소의 최신 리비전으로, 또는 지정한 리비전으로 갱신한다.
형식 - svn update(up) "option"
# svn up
현재 작업 내용을 최신내용으로 갱신
# svn up -r 1
현재 작업 내용을 리비전 1로 갱신(최신 리비전보다 이전으로 되돌리는 것도 가능하다.)
9) svn add : 프로젝트에 파일이나 디렉토리를 추가한다.
형식 - svn add "path"
# svn add Makefile
add로 추가한 경우 저장소에는 바로 반영되지 않기 때문에 commit 을 수행하여 새로운 리비전으로 갱신할 필요가 있다.
10) svn revert : 지역 작업 복사본에서 수행한 변경들을 이전 상태로 복원(실행 취소)한다.
형식 - svn revert "path"
# svn revert main.c
지역 복사본의 main.c 파일에 가했던 변경들을 모두 복원(취소)함
11) svn merge : 저장소끼리, 또는 저장소와 지역 작업본간의 변경 내역을 작업본에 병합한다.
형식 - svn merge "source1" "source2" "dest" : 다른 저장소끼리의 변경 사항을 지정한 작업 복사본으로 병합함
svn merge -r rev_num1:rev_num2 "dest" : 기본 저장소에 있는 두 리비전의 변경사항을 지정한 작업 복사본으로 병합함
# svn merge file:///home/heyduk/repos/project1/trunk file:///home/heyduk/repos/project2/trunk my_work
저장소의 project1과 project2간의 차이를 지역 작업본인 my_work에 병합함
# svn merge -r 6:7 file;///home/heyduk/repos/trunk my_work
저장소의 리비전 6~7의 변경내용을 지역 작업본인 my_work 에 병합함
출처 : http://blog.naver.com/heyduk?Redirect=Log&logNo=41990064