워킹 카피에 파일이나 디렉터리를 추가하는 데 사용되는 Subversion 명령입니다. 새 항목은 커밋할 때 저장소에 추가됩니다.
워킹 카피에 있는 파일 또는 폴더의 현재 기준 리비전입니다. 이는 마지막 체크아웃, 업데이트 또는 커밋이 실행되었을 때 파일 또는 폴더가 있던 리비전입니다. BASE 리비전은 일반적으로 HEAD 리비전과 같지 않습니다.
이 명령은 텍스트 파일에만 해당되며, 각 줄이 마지막으로 변경된 저장소 리비전과 해당 변경을 수행한 작성자를 표시하도록 주석을 답니다. 저희 GUI 구현은 TortoiseBlame이라고 불리며, 리비전 번호 위에 마우스를 올리면 커밋 날짜/시간 및 로그 메시지도 표시합니다.
리비전 관리 시스템에서 개발이 특정 지점에서 분기되어 두 개의 별도 경로를 따를 때 발생하는 상황을 설명하는 데 자주 사용되는 용어입니다. 주 개발 라인을 불안정하게 만들지 않고 새 기능을 개발하기 위해 주 개발 라인에서 브랜치를 생성할 수 있습니다. 또는 새로운 개발은 불안정한 트렁크에서 이루어지는 동안, 버그 수정만 하는 안정적인 릴리스를 브랜치할 수 있습니다. Subversion에서 브랜치는 “저렴한 복사본(cheap copy)”으로 구현됩니다.
저장소에서 버전 관리되는 파일을 다운로드하여 빈 디렉터리에 로컬 워킹 카피를 생성하는 Subversion 명령입니다.
Subversion 책에서 인용하자면: “ 워킹 카피를 재귀적으로 정리하여 잠금을 제거하고 미완료 작업을 재개합니다. 워킹 카피 잠금 오류가 발생하면 이 명령을 실행하여 오래된 잠금을 제거하고 워킹 카피를 다시 사용할 수 있는 상태로 만드십시오. ” 이 컨텍스트에서 잠금은 로컬 파일 시스템 잠금을 의미하며 저장소 잠금을 의미하지 않습니다.
이 Subversion 명령은 로컬 워킹 카피의 변경 사항을 저장소로 다시 전달하여 새 저장소 리비전을 생성하는 데 사용됩니다.
저장소의 변경 사항이 로컬 변경 사항과 병합될 때, 때로는 동일한 줄에서 변경이 발생합니다. 이 경우 Subversion은 어떤 버전을 사용할지 자동으로 결정할 수 없으며 해당 파일은 충돌 상태라고 합니다. 추가 변경 사항을 커밋하기 전에 파일을 수동으로 편집하고 충돌을 해결해야 합니다.
Subversion 저장소에서는 단일 파일 또는 전체 트리의 복사본을 생성할 수 있습니다. 이것들은 “저렴한 복사본(cheap copies)”으로 구현되며, 이는 원본에 대한 링크와 비슷하게 거의 공간을 차지하지 않습니다. 복사본을 만들면 항목의 히스토리가 복사본에 보존되므로 복사본이 만들어지기 전에 수행된 변경 사항을 추적할 수 있습니다.
버전 관리되는 항목을 삭제하고 변경 사항을 커밋하면, 해당 항목은 커밋된 리비전 이후에는 저장소에 더 이상 존재하지 않습니다. 하지만 물론 이전 저장소 리비전에는 여전히 존재하므로 계속 접근할 수 있습니다. 필요한 경우, 삭제된 항목을 복사하여 히스토리와 함께 “복구(resurrect)”할 수 있습니다.
“차이점 표시(Show Differences)”의 줄임말입니다. 어떤 변경 사항이 있었는지 정확히 확인하고 싶을 때 매우 유용합니다.
이 명령은 워킹 카피와 유사하게 버전 관리되는 폴더의 복사본을 생성하지만, 로컬 .svn 폴더는 포함하지 않습니다.
저장소를 위한 Subversion 전용 파일 시스템 백엔드입니다. 네트워크 공유에서 사용할 수 있습니다. 1.2 버전 이상 저장소의 기본값입니다.
그룹 정책 개체.
저장소에 있는 파일 또는 폴더의 최신 리비전입니다.
전체 폴더 계층 구조를 단일 리비전으로 저장소에 가져오는 Subversion 명령입니다.
버전 관리되는 항목에 잠금을 설정하면, 해당 잠금이 설정된 워킹 카피를 제외하고는 저장소에서 커밋할 수 없다고 표시됩니다.
파일 또는 폴더의 리비전 히스토리를 보여줍니다. “히스토리(History)”라고도 알려져 있습니다.
파일 또는 폴더의 리비전 히스토리를 보여줍니다. “로그(Log)”라고도 알려져 있습니다.
저장소의 변경 사항이 로컬에서 이미 수행한 변경 사항을 방해하지 않고 워킹 카피에 추가되는 프로세스입니다. 때로는 이러한 변경 사항을 자동으로 조정할 수 없으며, 워킹 카피는 충돌 상태에 있다고 합니다.
워킹 카피를 업데이트할 때 병합이 자동으로 발생합니다. TortoiseSVN의 병합 명령을 사용하여 다른 브랜치에서 특정 변경 사항을 병합할 수도 있습니다.
워킹 카피에 텍스트 파일에 대한 변경 사항만 있는 경우, Subversion의 Diff 명령을 사용하여 통합 Diff 형식으로 해당 변경 사항의 단일 파일 요약을 생성할 수 있습니다. 이 유형의 파일은 종종 “패치(Patch)”라고 불리며, 다른 사람(또는 메일링 리스트)에게 이메일로 보내어 다른 워킹 카피에 적용할 수 있습니다. 커밋 권한이 없는 사람은 변경 사항을 만들고, 권한 있는 커미터가 적용할 수 있도록 패치 파일을 제출할 수 있습니다. 또는 변경 사항에 대해 확신이 서지 않는 경우, 다른 사람이 검토하도록 패치를 제출할 수 있습니다.
디렉터리와 파일을 버전 관리하는 것 외에도, Subversion은 각 버전 관리되는 디렉터리와 파일에 “속성(properties)”이라고 불리는 버전 관리되는 메타데이터를 추가할 수 있도록 허용합니다. 각 속성은 레지스트리 키와 유사하게 이름과 값을 가집니다. Subversion은 svn:eol-style과 같이 내부적으로 사용하는 몇 가지 특수 속성을 가지고 있습니다. TortoiseSVN에도 tsvn:logminsize와 같은 속성이 있습니다. 원하는 이름과 값으로 자신만의 속성을 추가할 수 있습니다.
저장소가 이동한 경우, 예를 들어 서버의 다른 디렉터리로 옮겼거나 서버 도메인 이름이 변경된 경우, 워킹 카피의 저장소 URL이 새 위치를 가리키도록 “재배치(relocate)”해야 합니다.
참고: 이 명령은 워킹 카피가 동일한 저장소의 동일한 위치를 참조하지만, 저장소 자체가 이동한 경우에만 사용해야 합니다. 다른 경우에는 “스위치(Switch)” 명령이 필요할 수 있습니다.
저장소는 데이터가 저장되고 유지 관리되는 중앙 장소입니다. 저장소는 네트워크를 통해 배포하기 위해 여러 데이터베이스나 파일이 위치한 장소일 수도 있고, 네트워크를 통해 이동할 필요 없이 사용자에게 직접 접근 가능한 위치일 수도 있습니다.
병합 후 워킹 카피의 파일이 충돌 상태로 남아있을 때, 해당 충돌은 편집기(또는 TortoiseMerge)를 사용하여 사람이 해결해야 합니다. 이 프로세스를 “충돌 해결(Resolving Conflicts)”이라고 합니다. 이 작업이 완료되면 충돌된 파일을 해결된 것으로 표시할 수 있으며, 이는 해당 파일의 커밋을 허용합니다.
Subversion은 마지막으로 워킹 카피를 업데이트했을 때의 각 파일의 로컬 “원시(pristine)” 사본을 보관합니다. 변경 사항을 만들었지만 이를 취소하고 싶다면, “되돌리기(revert)” 명령을 사용하여 원시 사본으로 돌아갈 수 있습니다.
변경 사항 세트를 커밋할 때마다 저장소에 하나의 새로운 “리비전(revision)”이 생성됩니다. 각 리비전은 히스토리의 특정 시점에서의 저장소 트리의 상태를 나타냅니다. 시간을 거슬러 올라가고 싶다면, N 리비전 시점의 저장소를 검토할 수 있습니다.
다른 의미에서, 리비전은 해당 리비전이 생성되었을 때 수행된 변경 사항 세트를 지칭할 수 있습니다.
파일이 속성을 가질 수 있듯이, 저장소의 각 리비전도 속성을 가질 수 있습니다. 몇 가지 특별한 revprop은 리비전이 생성될 때 자동으로 추가됩니다: svn:date svn:author svn:log는 각각 커밋 날짜/시간, 커미터 및 로그 메시지를 나타냅니다. 이러한 속성은 편집할 수 있지만 버전 관리되지 않으므로, 어떤 변경이든 영구적이며 취소할 수 없습니다.
Subversion의 자주 사용되는 약어입니다.
“svnserve” 저장소 서버에서 사용되는 Subversion 사용자 정의 프로토콜의 이름입니다.
“리비전으로 업데이트(Update-to-revision)”가 워킹 카피의 시간 창을 변경하여 히스토리의 다른 지점을 보게 하는 것처럼, “스위치(Switch)”는 워킹 카피의 공간 창을 변경하여 저장소의 다른 부분을 가리키도록 합니다. 이는 몇 개의 파일만 다른 트렁크와 브랜치에서 작업할 때 특히 유용합니다. 워킹 카피를 둘 사이에서 전환할 수 있으며, 변경된 파일만 전송됩니다.
이 Subversion 명령은 저장소에서 최신 변경 사항을 워킹 카피로 가져오고, 다른 사람이 수행한 변경 사항을 워킹 카피의 로컬 변경 사항과 병합합니다.
이것은 사용자의 로컬 “샌드박스(sandbox)”이며, 버전 관리되는 파일로 작업하는 영역으로, 일반적으로 로컬 하드 디스크에 있습니다. 저장소에서 “체크아웃(Checkout)”하여 워킹 카피를 생성하고, “커밋(Commit)”을 사용하여 변경 사항을 저장소에 다시 반영합니다.