매뉴얼

6장. SubWCRev 프로그램

목차

SubWCRev 명령줄
키워드 대체
키워드 예시
COM 인터페이스

SubWCRev는 Subversion 작업 사본의 상태를 읽고 필요에 따라 템플릿 파일에서 키워드 대체를 수행하는 데 사용할 수 있는 Windows 콘솔 프로그램입니다. 이는 빌드 중인 개체에 작업 사본 정보를 통합하는 수단으로 빌드 프로세스의 일부로 자주 사용됩니다. 일반적으로 정보 상자에 리비전 번호를 포함하는 데 사용될 수 있습니다.

SubWCRev 명령줄

SubWCRev는 기본적으로 외부 파일을 제외하고 작업 사본에 있는 모든 파일의 Subversion 상태를 읽습니다. 가장 높은 커밋 리비전 번호와 해당 리비전의 커밋 타임스탬프를 기록하며, 작업 사본에 로컬 수정 사항이 있는지 또는 혼합된 업데이트 리비전이 있는지도 기록합니다. 리비전 번호, 업데이트 리비전 범위 및 수정 상태는 표준 출력(stdout)에 표시됩니다.

SubWCRev.exe는 명령줄 또는 스크립트에서 호출되며, 명령줄 매개변수를 사용하여 제어됩니다.

SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
      

WorkingCopyPath는 검사할 작업 사본의 경로입니다. SubWCRev는 저장소에서 직접 사용할 수 없고 작업 사본에서만 사용할 수 있습니다. 경로는 절대 경로일 수도 있고 현재 작업 디렉터리에 대한 상대 경로일 수도 있습니다.

SubWCRev가 키워드 대체를 수행하여 저장소 리비전 및 URL과 같은 필드를 텍스트 파일에 저장하려면, 템플릿 파일 SrcVersionFile과 템플릿의 대체된 버전을 포함하는 출력 파일 DstVersionFile을 제공해야 합니다.

SubWCRev가 특정 파일 및 경로를 고려하지 않도록 무시 패턴을 지정할 수 있습니다. 패턴은 .subwcrevignore이라는 파일에서 읽어옵니다. 파일은 지정된 경로에서 읽히고, 작업 사본 루트에서도 읽힙니다. 파일이 존재하지 않으면, 어떤 파일이나 경로도 무시되지 않습니다. .subwcrevignore 파일은 새 줄로 구분된 여러 패턴을 포함할 수 있습니다. 패턴은 저장소 루트에 대한 상대 경로 및 .subwcrevignore 파일 경로에 대한 상대 경로와 일치됩니다. 예를 들어, TortoiseSVN 작업 사본의 doc 폴더에 있는 모든 파일을 무시하려면, .subwcrevignore에는 다음 줄이 포함됩니다:

/trunk/doc
/trunk/doc/*

또는, .subwcrevignore 파일이 트렁크에서 체크아웃된 작업 사본 루트에 있다고 가정하고, 다음 패턴을 사용하면

doc
doc/*

위의 예시와 동일합니다.

모든 이미지를 무시하려면, 무시 패턴을 다음과 같이 설정할 수 있습니다:

*.png
*.jpg
*.ico
*.bmp

중요

무시 패턴은 Subversion과 마찬가지로 대소문자를 구분합니다.

Windows 탐색기에서 점으로 시작하는 파일을 만들려면, .subwcrevignore.를 입력하십시오. 끝에 있는 점에 유의하십시오.

SubWCRev의 작동 방식에 영향을 미치는 여러 선택적 스위치가 있습니다. 두 개 이상을 사용하는 경우, 예를 들어 -n -m이 아닌 -nm과 같이 단일 그룹으로 지정해야 합니다.

표 6.1. 사용 가능한 명령줄 스위치 목록

스위치설명
-n이 스위치가 주어지면, 작업 사본에 로컬 수정 사항이 포함된 경우 SubWCRev는 ERRORLEVEL 7로 종료됩니다. 이는 커밋되지 않은 변경 사항이 있는 빌드를 방지하는 데 사용될 수 있습니다.
-N이 스위치가 주어지면, 작업 사본에 무시되지 않은 버전 관리되지 않은 항목이 포함된 경우 SubWCRev는 ERRORLEVEL 11로 종료됩니다.
-m이 스위치가 주어지면, 작업 사본에 혼합된 리비전이 포함된 경우 SubWCRev는 ERRORLEVEL 8로 종료됩니다. 이는 부분적으로 업데이트된 작업 사본으로 빌드하는 것을 방지하는 데 사용될 수 있습니다.
-d이 스위치가 주어지면, 대상 파일이 이미 존재하는 경우 SubWCRev는 ERRORLEVEL 9로 종료됩니다.
-f이 스위치가 주어지면, SubWCRev는 폴더의 최종 변경 리비전을 포함합니다. 기본 동작은 리비전 번호를 가져올 때 파일만 사용하는 것입니다.
-e이 스위치가 주어지면, SubWCRev는 svn:externals로 포함된 디렉터리를 검사하지만, 동일한 저장소에서 온 경우에만 검사합니다. 기본 동작은 외부 요소를 무시하는 것입니다.
-E이 스위치가 주어지면, -e와 동일하지만, 속성에 명시된 리비전 범위가 주어진 명시적 리비전만 포함하는 경우, 명시적 리비전을 가진 외부 요소를 무시합니다. 따라서 혼합된 리비전으로 이어지지 않습니다.
-x이 스위치가 주어지면, SubWCRev는 리비전 번호를 16진수로 출력합니다.
-X이 스위치가 주어지면, SubWCRev는 리비전 번호를 16진수로 출력하며, '0X'가 앞에 붙습니다.
-F이 스위치가 주어지면, SubWCRev는 모든 .subwcrevignore 파일을 무시하고 모든 파일을 포함합니다.
-q이 스위치가 주어지면, SubWCRev는 표준 출력(stdout)에 작업 사본 상태를 표시하지 않고 키워드 대체를 수행합니다.


오류가 없으면 SubWCRev는 0을 반환합니다. 그러나 오류가 발생하면 오류 메시지는 표준 에러(stderr)에 기록되고 콘솔에 표시됩니다. 반환되는 오류 코드는 다음과 같습니다.

표 6.2. SubWCRev 오류 코드 목록

오류 코드설명
1구문 오류. 하나 이상의 명령줄 매개변수가 잘못되었습니다.
2명령줄에 지정된 파일 또는 폴더를 찾을 수 없습니다.
3입력 파일을 열 수 없거나 대상 파일을 생성할 수 없습니다.
4메모리를 할당할 수 없습니다. 예를 들어, 원본 파일이 너무 큰 경우 발생할 수 있습니다.
5원본 파일을 제대로 스캔할 수 없습니다.
6SVN 오류: SubWCRev가 작업 사본에서 정보를 찾으려 할 때 Subversion에서 오류를 반환했습니다.
7작업 사본에 로컬 수정 사항이 있습니다. 이는 -n 스위치가 필요합니다.
8작업 사본에 혼합된 리비전이 있습니다. 이는 -m 스위치가 필요합니다.
9출력 파일이 이미 존재합니다. 이는 -d 스위치가 필요합니다.
10지정된 경로가 작업 사본이 아니거나 그 일부가 아닙니다.
11작업 사본에 버전 관리되지 않은 파일이나 폴더가 있습니다. 이는 -N 스위치가 필요합니다.


TortoiseSVN 홈페이지

한국어 中文