svn command창으로 실행하기

TortoiseSVN 을 사용할 경우.

Tortoise SVN을 사용할 경우 

command로 실행하는 방법은 크게 2가지 이다.

1.svn.exe를 이용하는 방법
2.TortoiseProc.exe를 이용하는 방법


1. SVN Command


svnadmin dump

   - 저장소 백업

   - svnadmin dump [저장소 폴더명] > [덤프 파일명]

   - ex) svnadmin dump project_sample > dump_project_sanmple_20010131


svnadmin load

   - 저장소 복원

   - svnadmin load [저장소 폴더명] < [덤프 파일명]

   - ex) svnadmin create project_sample

           svnadmin load project_sample < dump_project_sanmple_20010131


svn checkout

   - svn 서버에서 소스 내려받기

   - svn checkout svn://192.168.2.2/App App

   - svn checkout -r 100 svn://192.168.2.2/App App   (revision 100번 소스 받기)

   - svn checkout -r HEAD svn://192.168.9.128/sample_repos sample_HEAD     (마지막 리비전 받기)

   - 자세한 것은 svn checkout --help 참고


svn export

    - 버전관리 정보 없는 깨끗한 사본을 받아옴
    - svn export --help
    - svn export -r 1 svn://192.168.0.12/sample_repos sample_pos

svn commit 파일명 or 폴더명 or ./

   - svn commit 했을 때 소스 파일에서 out of date 에러 날 때는 그 사이에 svn에 소스가 업데이트 됬다는 의미이다. 따라서, out of date 에러났을 때는 svn update을 실행해서 동기화를 한 후에 commit을 하면 된다.

   - commit 하기전에는 update를 실행하여 out of date 에러를 막자.

   - 예)

      # svn commit

      # svn commit ./test/test.h

 

svn resolved -R ./
   - 소스 충돌 날 때 이놈으로 풀면 됨.


svn cleanup
   - 소스가 lock 되 있을 경우 이 명령으로 해제 한다. lock 되는 원인은 알아서 찾는다.

 

svn update

   - 서버와 소스 동기화.

      A  Added

      D  Deleted

      U  Updated

      C  Conflict

      G  Merged

      E  Existed

   - commit 하기전에는 소스 충돌을 막기 위해 update를 실행해야 한다.

   - update를 했는데 에러가 났을 경우에는 각각의 revision을 따로 update 해본다. 경험상 한번에 할 경우에 드물게 에러가 나는 경우가 있다.

      #svn update -r 100   --> 100은 revision number

      #svn update -r 101

 

svn log

   - svn user가 commit한 로그 볼 때 사용한다.

      # svn log svn://192.168.9.128/sample_repos     ==> 주의) svn path를 안주면 마지막 로그를 빼먹는다.

        # svn log -l 10   (상위 10개의 로그만 보기)       ==> 주의) svn path를 안주면 마지막 로그를 빼먹는다.

      # svn log -l 10 svn://192.168.9.128/sample_repos

    

   - commit log 수정하기

      # svn propset --revprop -r [리비전번호] svn:log “수정할 메세지”

       참고: http://altistory.net/929

      # TortoiseSVN 사용할 때 show log 선택 후에 로그 패널에서 마우스 오른쪽 버튼 클릭하면 "Edit log message" 나온다.


svn mkdir

   repository에 folder 생성한다.

    - # svn mkdir svn://192.168.163.11/TEST_repo/test_folder


svn import

   - 처음으로 repository에 파일 추가하기. 

    - 주의할점은 *.a 같은 파일은 추가 안될 수 있으니 --no-ignore 옵션 사용하기.

    - # svn import import_path svn://192.168.163.11/TEST_repo/import_path --no-ignore


svn add

   - 새로 만든 파일 추가 하기. import와 똑같이 사용 가능하다.

   - # svn add --no-ignore [path]


svn delete (or del, remove)

   - 파일, 폴더 삭제

   - # svn del [FILE_NAME] or [DIR]

   - # svn del svn://192.168.16.11/TEST_repo/test_dir

      --> commit도 동시에 된다. help 참고.

 

svn switch(or sw)

   - 저장소 이름 변경할 때

    # mv sample_repo1 sample_repo2 (su 로그인 후 저장소 이름을 직접 변경)

    # svn switch --relocate svn:/192.168.9.128/sample_repo1 svn:/192.168.9.128/sample_repo2

       --> repository에서 다운받은 곳에서 명령을 실행한다.


    "svn: E155007: 작업 사본이 아닙니다.(Not a working copy)" 이 에러는 .svn 없는 곳에서 svn 명령을 실행

     했을 때 발생한다.

    

   - 저장소 IP 변경할 때

    # svn switch --relocate svn:/192.168.30.198/sample_repo1 svn:/192.168.30.122/sample_repo1


svn diff

  - 두 revision 비교 또는 file 비교

  - 참고: http://pokute.tistory.com/201

변경된 파일만 출력

svn diff | awk '/^Index/ {print $NF}'


두 리비전 비교

# svn diff -r 100:101


두 리비전의 파일비교

#svn diff -r 100:101 file_path


참고 링크 : http://blog.daum.net/rayolla/251


2.거북이 SVN을 이용해서 실행하기


ex) TortoiseProc.exe /command:update /path:"경로" /closeonend:0


참고링크 : http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html


이 글을 공유하기

댓글

Designed by JB FACTORY