반응형

svn을 사용하다보면 github에서 zip download와 유사하게 코드의 수정 이력과 같은 정보 없이 데이터만을 export (download) 가져올 경우가 종종 존재한다.

 

이러한 동작을 위해 svn에서는 export 라는 기능을 제공하고 있으며, 필요시 특정 revision에 대한 코드만을 가져올 수도 있다.

 

 

svn export에 대한 help 정보는 아래와 같다.

 

export: 버전관리 정보 없는 깨끗한 사본을 받아옵니다.
사용법: 1. export [-r REV] URL[@PEGREV] [PATH]
       2. export [-r REV] PATH1[@PEGREV] [PATH2]

  1. 리비전 REV에 해당하는 URL 의 내용을 PATH에 받아 옵니다.
     만약 REV가 지정되지 않으면 HEAD(최신 리비전)를 받아 옵니다.
     PATH가 생략되면 URL의 마지막 요소를 받아올 디렉토리 이름으로
     사용합니다.

  2. 리비전 REV에 해당하는 PATH1으로 지정된 작업 사본의 내용을 
     PATH2에 받아옵니다. REV 가 생략되면 현재 작업중인 내용을 그대로
     받아 옵니다. PATH2가 생략되면 PATH1의 마지막 요소를 디렉토리
     이름으로 사용합니다. REV가 생략될 경우 작업 중에 변경된 내용은 그대로
     유지되며, 버전 관리 대상이 아닌 파일들은 복사되지 않습니다.
     
  PEGREV가 지정될 경우엔, 어떤 리비젼에서 대상을 먼저 찾을지 결정합니다.
  

옵션:
  -r [--revision] ARG      : ARG (어떤 명령은 ARG1:ARG2 와 같은 범위를 사용)
                             리비전은 다음 중 하나가 될 수 있습니다:
                                NUMBER       리비전 번호
                                '{' DATE '}' 리비전이 시작하는 시각
                                'HEAD'       저장소의 마지막 리비전
                                'BASE'       작업 사본을 꺼내온 리비전
                                'COMMITTED'  BASE 이전에 마지막 커밋된 리비전
                                'PREV'       COMMITTED 의 직전 리비전
  -q [--quiet]             : 아무것도 출력하지 않거나, 요약 정보만 출력합니다
  -N [--non-recursive]     : 사용금지; 대신 --depth=files, --depth=immediates를 이용합니다
  --depth ARG              : 명령 적용 대상의 깊이를 제한 합니다 ('empty', 'files'
                             'emmediates', 'infinity')
  --force                  : 강제로 실행합니다
  --native-eol ARG         : 행종료문자를 표준 시스템 문자가 아닌
                            파일의 svn:eol-style 속성을
                            'native'로 두어 다른 것을 사용합니다.
                            ARG는 'LF', 'CR', 'CRLF' 중의 하나가 될 수 있습니다
  --ignore-externals       : 외부 모듈(svn:externals로 지정된)은 무시합니다
  --ignore-keywords        : 내용중의 키워드를 치환하지 않습니다

글로벌 옵션:
  --username ARG           : ARG를 접속에 필요한 사용자 ID로 사용합니다
  --password ARG           : specify a password ARG (caution: on many operating
                             systems, other users will be able to see this)
  --no-auth-cache          : 인증 정보를 캐시에 저장하지 않습니다
  --non-interactive        : do no interactive prompting (default is to prompt
                             only if standard input is a terminal device)
  --force-interactive      : do interactive prompting even if standard input
                             is not a terminal device
  --trust-server-cert      : deprecated; same as
                             --trust-server-cert-failures=unknown-ca
  --trust-server-cert-failures ARG : with --non-interactive, accept SSL server
                             certificates with failures; ARG is comma-separated
                             list of 'unknown-ca' (Unknown Authority),
                             'cn-mismatch' (Hostname mismatch), 'expired'
                             (Expired certificate), 'not-yet-valid' (Not yet
                             valid certificate) and 'other' (all other not
                             separately classified certificate errors).
  --config-dir ARG         : ARG로 지정된 디렉토리에서 사용자 구성화일을 읽습니다
  --config-option ARG      : 사용자 옵션의 포맷을 다음과 같이 지정합니다:
                                 FILE:SECTION:OPTION=[VALUE]
                             예:
                                 servers:global:http-library=serf

 

기본적인 export에 대한 명령 인자에 대한 설명은 export [-r REV] URL[@PEGREV] [PATH] 다.

 

REV:  가져오고 싶은 revision 정보이며, 값을 지정하지 않으면 HEAD에 해당되는 파일을 자동으로 가져온다.

URL : 저장소의 url을 의미한다.

PATH : export한 파일의 저장 위치, 별다른 값을 지정하지 않으면 기본 값으로 URL에서 지정된 경로 중 마지막 값 (Directory명 또는 file명)으로 처리된다.

 

 

예제

 

svn export를 수행하는 예시는 아래와 같다.

# repository url : http://svn.server/A
# revision : 10

svn export -r 10 http://svn.server/A

 

위의 command를 실행하면 command를 실행한 위치에 A 디렉터리를 생성하며, 생성된 디렉터리 안에 http://svn.server/A 의 하위 항목들을 다운로드 한다. 이 때, rev. 10 코드를 가져온다.

 

 

 

 

반응형

댓글을 달아 주세요