switch (sw): 작업사본을 다른 URL의 내용으로 업데이트합니다.
사용법: 1. switch URL[@PEGREV] [PATH]
2. switch --relocate FROM TO [PATH...]
1. 새 URL의 내용을 가져와서 작업사본에 업데이트 합니다.
'svn update'와 비슷한 일을 합니다.
하지만 이것은 작업사본의 URL을 같은 저장소내의 브랜치나 태그로 전환하는데 사용합니다.
대상을 찾을 처음 리비전을 PEGREV로 지정해줄 수 있습니다.
현 작업 사본에 관리대상으로 추가되지 않은 파일이 존재하고, switch를 할 URL에 같은 이름의 파일이 관리대상으로
이미 존재하는 경우 오류를 내게 됩니다.
이 경우 --force 를 주게되면 오류가 나지 않으며, switch될 URL의 관리대상으로 취급하게 됩니다.
두 대응되는 대상이 같은 형식(파일 또는 디렉토리)이면, 파일의 경우 저장소의 내용과 다른 것이 작업사본에 있는 경우
저장소에서 꺼내온 뒤 수정한 것으로 봅니다.
즉, 현 작업 사본의 내용이 바뀌지 않은 채 새 URL의 메타 정보가 추가되며, 내용은 수정된 것으로 보게 됩니다.
디렉토리의 경우 하위의 모든 파일이 버전 관리 대상으로 추가됩니다.
또한, 저장소에 있는 대상의 속성들이 모두 작업사본에 적용됩니다.
즉, switch 명령으로 내용은 변하지 않으며, 메타 정보와 속성이 변경됩니다.
업데이트 대상의 디렉토리 깊이를 조정하려면, --set-depth를 사용합니다.
이 옵션은 증가하는 방향으로만 사용할 수 있습니다. 즉, 현재 작업하고 있는 디렉토리보다 더 하위의 내용을 가져올
경우에만 사용하며 작업하는 사본의 깊이를 얕게 만들 수는 없습니다.
2. 작업 사본 하위 디렉토리에는 checkout 할 때의 URL 정보가 들어 있는 메타정보가 있습니다.
이 정보만 새 URL로 갱신합니다.
즉, 접근하는 방식이(ssh, http등)나 호스트 이름이 바뀐 경우에만 되며, 작업사본의 구조는 그대로 유지합니다.
옵션:
-r [--revision] ARG : ARG (어떤 명령은 ARG1:ARG2 와 같은 범위를 사용) 리비전은 다음 중 하나가 될 수 있습니다:
NUMBER 리비전 번호
'{' DATE '}' 리비전이 시작하는 시각
'HEAD' 저장소의 마지막 리비전
'BASE' 작업 사본을 꺼내온 리비전
'COMMITTED' BASE 이전에 마지막 커밋된 리비전
'PREV' COMMITTED 의 직전 리비전
-N [--non-recursive] : obsolete; try --depth=files or --depth=immediates
--depth ARG : 적용할 단계를 제한합니다. 가능한 인자 ('empty', 'files', 'immediates', or 'infinity')
--set-depth ARG : 작업사본의 depth를 설정합니다 가능한 인자 ('empty', 'files', 'immediates', or 'infinity')
-q [--quiet] : 아무것도 출력하지 않거나, 요약 정보만 출력합니다
--diff3-cmd ARG : arg를 merge 명령으로 사용합니다
--relocate : URL-rewriting을 통하여 저장소 URL을 변경합니다
--ignore-externals : 외부 모듈(svn:externals로 지정된)은 무시합니다
--force : 강제로 실행합니다
--accept ARG : specify automatic conflict resolution action
('postpone', 'base', 'mine-full', 'theirs-full', 'edit', 'launch')
글로벌 옵션:
--username ARG : arg를 접속에 필요한 사용자 ID로 사용합니다.
--password ARG : arg를 접속에 필요한 패스워드로 사용합니다.
--no-auth-cache : 인증 정보를 캐시에 저장하지 않습니다.
--non-interactive : 대화식 사용자 입력을 기다리지 않습니다
--config-dir ARG : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다
'[ Programing ] > Other' 카테고리의 다른 글
svn info (0) | 2012.01.11 |
---|---|
svn merge (0) | 2012.01.11 |
svn status (0) | 2012.01.11 |
svn commit (0) | 2012.01.11 |
svn diff (0) | 2012.01.11 |