TortoiseSVN의 모든 명령은 명령줄 매개변수를 통해 제어되므로, 배치 스크립트로 자동화하거나 다른 프로그램(예: 즐겨찾는 텍스트 편집기)에서 특정 명령 및 대화 상자를 시작할 수 있습니다.
TortoiseSVN은 GUI 클라이언트이며, 이 자동화 가이드는 사용자 입력을 수집하기 위해 TortoiseSVN 대화 상자를 표시하는 방법을 보여준다는 것을 기억하십시오. 입력이 필요 없는 스크립트를 작성하려면 공식 Subversion 명령줄 클라이언트를 대신 사용해야 합니다.
TortoiseSVN GUI 프로그램은 TortoiseProc.exe라고 불립니다. 모든 명령은 /command:abcd 매개변수로 지정되며, 여기서 abcd는 필수 명령 이름입니다. 이 명령들 대부분은 최소한 하나의 경로 인수를 필요로 하며, 이는 /path:"some\path"로 주어집니다. 다음 표에서 '명령'은 /command:abcd 매개변수를, '경로'는 /path:"some\path" 매개변수를 나타냅니다.
/command:abcd 매개변수를 필요로 하지 않지만, 명령줄에 아무것도 지정되지 않으면 대신 프로젝트 모니터를 시작하는 특수 명령이 있습니다. /tray가 지정되면 프로젝트 모니터는 숨겨진 상태로 시작하여 시스템 트레이에 아이콘만 추가합니다.
일부 명령은 대상 경로 목록(예: 여러 특정 파일 커밋)을 취할 수 있으므로, /path 매개변수는 * 문자로 구분된 여러 경로를 취할 수 있습니다.
줄 바꿈으로 구분된 경로 목록을 포함하는 파일을 지정할 수도 있습니다. 이 파일은 BOM 없이 UTF-16 형식이어야 합니다. 이러한 파일을 전달하는 경우 /path 대신 /pathfile을 사용하십시오. 명령이 완료된 후 TortoiseProc이 해당 파일을 삭제하도록 하려면 /deletepathfile 매개변수를 전달할 수 있습니다. /deletepathfile을 전달하지 않으면 파일을 직접 삭제해야 하거나 파일이 남게 됩니다.
커밋, 업데이트 및 기타 여러 명령에 사용되는 진행 대화 상자는 일반적으로 명령이 완료된 후 사용자가 버튼을 누를 때까지 열려 있습니다. 이는 설정 대화 상자에서 해당 옵션을 확인하여 변경할 수 있습니다. 그러나 이 설정을 사용하면 배치 파일에서 명령을 시작하든 TortoiseSVN 컨텍스트 메뉴에서 시작하든 관계없이 진행 대화 상자가 닫힙니다.
구성 파일의 다른 위치를 지정하려면 /configdir:"path\to\config\directory" 매개변수를 사용하십시오. 이는 모든 레지스트리 설정을 포함하여 기본 경로를 재정의합니다.
영구 설정을 사용하지 않고 명령 완료 시 진행 대화 상자를 자동으로 닫으려면 /closeonend 매개변수를 전달할 수 있습니다.
/closeonend:0 대화 상자를 자동으로 닫지 않음
/closeonend:1 오류가 없으면 자동 닫기
/closeonend:2 오류 및 충돌이 없으면 자동 닫기
/closeonend:3 오류, 충돌 및 병합이 없으면 자동 닫기
로컬 작업에서 오류나 충돌이 없었을 경우 진행 대화 상자를 닫으려면 /closeforlocal 매개변수를 전달하십시오.
아래 표에는 TortoiseProc.exe 명령줄을 사용하여 액세스할 수 있는 모든 명령이 나열되어 있습니다. 위에서 설명한 대로 이 명령들은 /command:abcd 형식으로 사용되어야 합니다. 표에서는 공간 절약을 위해 /command 접두사가 생략되었습니다.
표 D.1. 사용 가능한 명령 및 옵션 목록
| 명령 | 설명 |
|---|---|
| :about | 정보 대화 상자를 보여줍니다. 명령이 주어지지 않은 경우에도 표시됩니다. |
| :log |
로그 대화 상자를 엽니다.
svn 날짜 리비전은 다음 형식 중 하나일 수 있습니다.
|
| :checkout |
체크아웃 대화 상자를 엽니다.
|
| :import | 가져오기 대화 상자를 엽니다. /path는 가져올 데이터가 있는 디렉터리를 지정합니다. 또한 /logmsg 스위치를 사용하여 미리 정의된 로그 메시지를 가져오기 대화 상자에 전달할 수 있습니다. 또는 명령줄에서 로그 메시지를 전달하고 싶지 않다면, path가 로그 메시지를 포함하는 파일을 가리키는 /logmsgfile:path를 사용하십시오. |
| :update | /path에 있는 작업 사본을 HEAD로 업데이트합니다. /rev 옵션이 주어지면 업데이트할 리비전을 사용자에게 묻는 대화 상자가 표시됩니다. 이 대화 상자를 피하려면 /rev:1234와 같이 리비전 번호를 지정하십시오. 다른 옵션으로는 /nonrecursive, /ignoreexternals 및 /includeexternals가 있습니다. /stickydepth는 지정된 깊이가 고정되어 스파스 체크아웃을 생성해야 함을 나타냅니다. /skipprechecks는 업데이트 전에 수행되는 모든 검사를 건너뛰도록 설정할 수 있습니다. 이 옵션이 지정되면 로그 표시 버튼이 비활성화되고, 업데이트 후 차이점 표시를 위한 컨텍스트 메뉴도 비활성화됩니다. |
| :commit | 커밋 대화 상자를 엽니다. /path는 대상 디렉터리 또는 커밋할 파일 목록을 지정합니다. 또한 /logmsg 스위치를 사용하여 미리 정의된 로그 메시지를 커밋 대화 상자에 전달할 수 있습니다. 또는 명령줄에서 로그 메시지를 전달하고 싶지 않다면, path가 로그 메시지를 포함하는 파일을 가리키는 /logmsgfile:path를 사용하십시오. 버그 ID 상자를 미리 채우려면(버그 추적기와 제대로 통합 설정된 경우), /bugid:"여기에 버그 ID"를 사용할 수 있습니다. |
| :add | /path에 있는 파일을 버전 제어에 추가합니다. |
| :revert | 작업 사본의 로컬 수정을 되돌립니다. /path는 되돌릴 항목을 지정합니다. |
| :cleanup | 중단되거나 취소된 작업을 정리하고 /path에 있는 작업 사본의 잠금을 해제합니다. 실제로 정리 작업을 수행하려면 /cleanup을 전달해야 합니다. /noui를 사용하여 결과 대화 상자(정리 완료 또는 오류 메시지)가 나타나는 것을 방지하십시오. /noprogressui는 진행 대화 상자도 비활성화합니다. /nodlg는 사용자가 정리에서 정확히 무엇을 해야 할지 선택할 수 있는 정리 대화 상자 표시를 비활성화합니다. 사용 가능한 작업은 상태 정리를 위한 /cleanup, 모든 잠금을 해제하는 /breaklocks, 커밋되지 않은 변경 사항을 되돌리는 /revert, /delunversioned, /delignored, /refreshshell, /externals, /fixtimestamps 및 /vacuum 옵션으로 지정할 수 있습니다. |
| :resolve | /path에 지정된 충돌 파일을 해결된 것으로 표시합니다. /noquestion이 주어지면, 사용자에게 먼저 정말로 수행해야 하는지 묻지 않고 해결이 이루어집니다. |
| :repocreate | /path에 리포지토리를 생성합니다. |
| :switch | 전환 대화 상자를 엽니다. /path는 대상 디렉터리를 지정하고 /url은 전환할 URL을 지정합니다. |
| :export | /path에 있는 작업 사본을 다른 디렉터리로 내보냅니다. /path가 버전 관리되지 않은 디렉터리를 가리키면, 대화 상자가 /path의 디렉터리로 내보낼 URL을 요청합니다. /blockpathadjustments 키를 지정하면 자동 내보내기 경로 조정이 차단됩니다. |
| :dropexport | /path에 있는 작업 사본을 /droptarget에 지정된 디렉터리로 내보냅니다. 이 내보내기는 내보내기 대화 상자를 사용하지 않고 직접 실행됩니다. /overwrite 옵션은 기존 파일을 사용자 확인 없이 덮어쓰도록 지정하고, /autorename 옵션은 파일이 이미 존재하는 경우 내보내진 파일이 덮어쓰기를 피하기 위해 자동으로 이름이 변경되도록 지정합니다. /extended 옵션은 로컬에서 변경된 파일만 내보내려면 localchanges를, 모든 버전 관리되지 않은 항목도 내보내려면 unversioned를 지정할 수 있습니다. |
| :dropvendor | /path에 있는 폴더를 /droptarget에 지정된 디렉터리로 재귀적으로 복사합니다. 새 파일은 자동으로 추가되고, 대상 작업 사본에서 누락된 파일은 제거되어 원본과 대상이 정확히 동일하게 유지됩니다. 확인 대화 상자를 건너뛰려면 /noui를 지정하고, 진행 대화 상자 표시도 비활성화하려면 /noprogressui를 지정하십시오. |
| :merge | 병합 대화 상자를 엽니다. /path는 대상 디렉터리를 지정합니다. 리비전 범위 병합의 경우 /fromurl:URL, /revrange:string 옵션을 사용할 수 있습니다. 두 리포지토리 트리 병합의 경우 /fromurl:URL, /tourl:URL, /fromrev:xxx 및 /torev:xxx 옵션을 사용할 수 있습니다. |
| :mergeall | 전체 병합 대화 상자를 엽니다. /path는 대상 디렉터리를 지정합니다. |
| :copy | 브랜치/태그 대화 상자를 띄웁니다. /path는 브랜치/태그를 생성할 작업 사본이며, /url은 대상 URL입니다. URL이 ^로 시작하면 리포지토리 루트에 대한 상대 경로로 간주됩니다. 작업 사본을 새 브랜치/태그로 전환 옵션을 미리 선택하려면 /switchaftercopy 스위치를 전달할 수 있습니다. 중간 폴더 생성 옵션을 선택하려면 /makeparents 스위치를 전달하십시오. 또한 /logmsg 스위치를 사용하여 미리 정의된 로그 메시지를 브랜치/태그 대화 상자에 전달할 수 있습니다. 또는 명령줄에서 로그 메시지를 전달하고 싶지 않다면, path가 로그 메시지를 포함하는 파일을 가리키는 /logmsgfile:path를 사용하십시오. |
| :settings | 설정 대화 상자를 엽니다. |
| :remove | /path에 있는 파일(들)을 버전 제어에서 제거합니다. |
| :rename | /path에 있는 파일의 이름을 변경합니다. 파일의 새 이름은 대화 상자로 물어봅니다. 유사한 파일들을 한 단계에서 이름 변경하는 것에 대한 질문을 피하려면 /noquestion을 전달하십시오. |
| :diff | TortoiseSVN 설정에 지정된 외부 차이점(diff) 프로그램을 시작합니다. /path는 첫 번째 파일을 지정합니다. /path2 옵션이 설정되면 해당 두 파일로 차이점 프로그램이 시작됩니다. /path2가 생략되면 /path의 파일과 해당 BASE 간의 차이점이 수행됩니다. 지정된 파일에 속성 수정 사항도 있는 경우, 수정된 각 속성에 대해서도 외부 차이점 도구가 시작됩니다. 이를 방지하려면 /ignoreprops 옵션을 전달하십시오. 리비전 번호를 명시적으로 설정하려면 /startrev:xxx 및 /endrev:xxx를 사용하고, 선택적 peg 리비전의 경우 /pegrev:xxx를 사용하십시오. /blame이 설정되고 /path2가 설정되지 않은 경우, 주어진 리비전으로 파일을 먼저 블레임(blame)하여 차이점을 수행합니다. /line:xxx 매개변수는 차이점이 표시될 때 이동할 줄을 지정합니다. |
| :shelve | 지정된 경로를 새 셸프에 보관합니다. /shelfname:name 옵션은 셸프의 이름을 지정합니다. 선택적으로 /logmsg:message로 로그 메시지를 지정할 수 있습니다. /checkpoint 옵션이 전달되면 파일의 수정 사항이 유지됩니다. |
| :unshelve | /shelfname:name 이름의 셸프를 작업 사본 경로에 적용합니다. 기본적으로 셸프의 마지막 버전이 적용되지만, /version:X로 버전을 지정할 수 있습니다. |
| :showcompare |
비교할 URL과 리비전에 따라, 이 명령은 통합 차이점(unified diff)( 옵션 지정된 URL에 속성 수정 사항도 있는 경우, 수정된 각 속성에 대해서도 외부 차이점 도구가 시작됩니다. 이를 방지하려면 통합 차이점(unified diff)이 요청되면, 선택적으로 |
| :conflicteditor | TortoiseSVN 설정에 지정된 충돌 편집기를 /path에 있는 충돌 파일에 대한 올바른 파일로 시작합니다. |
| :relocate | 재배치 대화 상자를 엽니다. /path는 재배치할 작업 사본 경로를 지정합니다. |
| :help | 도움말 파일을 엽니다. |
| :repostatus | 수정 사항 확인 대화 상자를 엽니다. /path는 작업 사본 디렉터리를 지정합니다. /remote가 지정되면, 대화 상자는 사용자가 리포지토리 확인 버튼을 클릭한 것처럼 시작 시 즉시 리포지토리에 연결합니다. |
| :repobrowser |
리포지토리 브라우저 대화 상자를 시작하며,
추가 옵션
|
| :ignore | /path에 있는 모든 대상을 무시 목록에 추가합니다. 즉, 해당 파일에 svn:ignore 속성을 추가합니다. |
| :blame |
옵션 |
| :cat | /path에 주어진 URL 또는 작업 사본 경로에서 파일을 /savepath:path에 주어진 위치에 저장합니다. 리비전은 /revision:xxx에 주어집니다. 이는 특정 리비전의 파일을 가져오는 데 사용될 수 있습니다. |
| :createpatch | /path에 주어진 경로에 대한 패치 파일을 생성합니다. 파일 저장 대화 상자를 건너뛰려면 /savepath:path를 전달하여 패치 파일을 직접 저장할 경로를 지정할 수 있습니다. 패치 파일을 보여주는 통합 차이점 뷰어가 시작되는 것을 방지하려면 /noview를 전달하십시오. 통합 차이점(unified diff)이 요청되면, 선택적으로 prettyprint 옵션을 지정할 수 있으며, 이는 병합 정보 속성을 더 사용자가 읽기 쉬운 형식으로 보여줍니다. |
| :revisiongraph |
특정 경로에 대한 리비전 그래프의 이미지 파일을 생성하되 그래프 창을 표시하지 않으려면, 출력 파일 경로와 함께 리비전 그래프는 표시 방식에 영향을 미치는 많은 옵션을 가지고 있으므로, 출력 이미지 파일을 생성할 때 사용할 옵션을 설정할 수도 있습니다. 이 옵션들은 |
| :lock | /path에 지정된 디렉터리 내의 파일 또는 모든 파일을 잠급니다. 사용자가 잠금에 대한 주석을 입력할 수 있도록 '잠금' 대화 상자가 표시됩니다. |
| :unlock | /path에 지정된 디렉터리 내의 파일 또는 모든 파일의 잠금을 해제합니다. |
| :rebuildiconcache | Windows 아이콘 캐시를 다시 빌드합니다. Windows 아이콘이 손상된 경우에만 사용하십시오. 이 작업의 부작용(피할 수 없는)은 바탕 화면의 아이콘이 재배열된다는 것입니다. 메시지 상자를 표시하지 않으려면 /noquestion을 전달하십시오. |
| :properties |
버전 관리된 속성을 다루기 위해 이 명령은 작업 사본을 필요로 합니다.
특정 속성에 대한 속성 대화 상자를 직접 열려면, 속성 이름을 |
| :sync |
현재 설정 또는 내보낸 설정 중 어떤 것이 더 최신인지에 따라 또는 지정된 대로 설정을 내보내거나 가져옵니다.
|
예시 (한 줄로 입력해야 합니다)
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"test log message" /closeonend:0
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend:0