참고: 사이트가 SSL(보안 소켓 계층)을 사용하지 않는 경우 https 대신 http를 사용하여 서브버전 작업을 수행합니다. 예를 들어 프로젝트 리포지토리의 최신 소스 코드를 체크 아웃하려면 이 명령을 사용합니다. 우리의 안녕하세요 세계 예는 작동. 그러나, 우리는 현재 사용자 정의 Makefile를 사용 하 고 우리는 대신 트롤 테크의 Qt와 함께 제공 되는 qmake 도구를 사용 하 고 싶습니다. 그러나 우리는 Qt무료 버전을 유지하고 싶습니다. 이를 위해 태그를 만듭니다. 우리는 미래에 우리의 프로젝트의 다른 태그 (= 릴리스)를 만들 가능성이 있기 때문에, 우리는 태그 버전을 “보류”하는 하위 디렉토리를 만드는 것으로 시작 : 몇 remarks. -m 플래그는 작업에 대한 로그 메시지를 제공하는 데 사용됩니다. 로그 메시지는 svn에 의해 적용됩니다.

명령줄에서 -m 플래그를 사용하지 않으려면 SVN_EDITOR 환경 변수(예: vi)를 설정하고 svn은 로그 메시지가 필요할 때마다 해당 편집기로 메시지를 표시합니다. 로그 메시지 외에도 가져오기 명령의 구조는 매우 간단합니다. 당신은 회귀되지 않은 파일에 대한 경로를 제공하고 svn로 알려진 경로. 첫 번째 경로는 로컬 파일 시스템을 참조하며 절대 경로일 수 있습니다. 즉, 해당 명령을 실행하기 위해 가져오려는 디렉토리에 있을 필요가 없습니다(cvs의 경우). 두 번째 경로는 프로젝트가 리포지토리에 보관될 위치(또는 원하는 경우 “이름 아래”)를 나타내는 것입니다. 트렁크 / 트렁크를 추가했습니다. 우리는 잠시 이유를 설명 할 것입니다. 먼저 우리가 지금 우리의 프로젝트와 함께 작업 하는 방법을 살펴보겠습니다.

실제로, 가져 오기 후 디렉토리 우리는 “복사”여전히 버전 제어되지 않습니다. 그대는 대단한가요? 하지만 더 있다. foo 하위 디렉토리를 rm-ed 한 후 리포지토리가 비어 있어도 이 디렉터리는 “손실”되지 않습니다. 실제로 svn은 수명 주기에서 프로젝트에 대한 또 다른 가능한 상태가 있음을 알 수 있듯이 지능형 방식으로 모든 변경 사항을 추적합니다(예: 델타만 저장하여 저렴한 복사본을 수행). 다른 팀이 현재 릴리스에서 계속 작업하는 동안 팀이 프로젝트의 다른 진화 작업을 시작할 때 발생합니다. 예를 들어 팀에서 프로젝트의 일부 재작성을 조사하기 시작하고 다른 팀에서는 버그 수정 릴리스를 제공하기 위해 작업합니다. 버전 제어 용어에서는 분기라고 합니다. 분기는 트렁크가 분할되고 다른 버전이 자신의 삶을 떠나기 시작할 때 발생합니다. 물론, svn 은 한링 브랜치에 대한 모든 도구를 제공하지만 부드러운 튜토리얼의 범위를 훨씬 벗어났기 때문에 논의하지 않을 것입니다. 프로젝트를 가져올 때 트렁크 하위 디렉터리를 만들었다는 것을 기억하십시오.

그 이유는 이제 분명해질 것입니다. 버전 제어 하에 있는 프로젝트에는 일반적인 수명 주기가 있습니다. 변경 내용이 검증될 때 정기적으로 변경 내용을 준수하여 개발합니다. 그런 다음 첫 번째 “결과물” 버전에 도달합니다. 그것은 당신이 이름 (XP, 긴 뿔, 비스타?)와 함께 올 수있는 첫 번째 릴리스를위한 시간이다. 그런 다음 두 번째 릴리스에 도착할 때까지 다시 작업을 시작합니다. svn의 경우 프로젝트(최신 버전)의 현재 개발을 트렁크 또는 HEAD라고 합니다. 릴리스를 태그라고 합니다. 지정된 상태에서 프로젝트의 이름을 (영리한) 태그로 태그하는 것으로 생각할 수 있습니다. svn의 좋은 점은 매우 쉽고 자연스럽게 이것을 처리 할 수 있다는 것입니다.

예제를 살펴보겠습니다. 다음 예제에서는 작업 복사본을 다운로드하지 않고 리포지토리의 지정된 URL에서 사용할 수 있는 모든 파일을 나열합니다. svn 목록 명령을 실행 하면 -자세한 옵션으로 다음 정보를 표시 합니다. 기존 비버전 데이터를 SVN 리포지토리로 가져오려면 svn 가져오기 명령을 실행해야 합니다. 다음은 /path/to/project/에 많은 파일이 있는 기존 프로젝트가 있다고 가정해 보겠습니다. 예를 들어: 로컬로 수정된 파일 “index.html”을 프로젝트 리포지토리의 파일과 비교하려면 다음을 입력합니다.