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 “수정할 메세지”

      # 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 비교

 

변경된 파일만 출력

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

 

두 리비전 비교

# svn diff -r 100:101

 

두 리비전의 파일비교

#svn diff -r 100:101 file_path

 

 

'SVN · Git' 카테고리의 다른 글

Github 명령어 정리  (0) 2020.11.09
SVN 환경 설정 및 사용법  (0) 2020.06.19