Tool/Subversion2011.02.01 11:58
[출처 : http://jujubong.tistory.com/113]


[ 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 에 병합함 

저작자 표시
신고
Posted by nlogn

티스토리 툴바