매뉴얼

부록 F. 구현 세부 정보

목차

아이콘 오버레이

이 부록은 TortoiseSVN의 일부 기능 구현에 대한 더 자세한 내용을 담고 있습니다.

아이콘 오버레이

모든 파일과 폴더는 Subversion 라이브러리에서 보고하는 Subversion 상태 값을 가집니다. 명령줄 클라이언트에서는 단일 문자 코드로 표시되지만, TortoiseSVN에서는 아이콘 오버레이를 사용하여 그래픽으로 표시됩니다. 오버레이의 수가 매우 제한적이기 때문에, 각 오버레이는 여러 상태 값 중 하나를 나타낼 수 있습니다.

충돌 오버레이는 로컬 변경 사항과 저장소에서 다운로드된 변경 사항 간에 충돌이 발생하여 업데이트 또는 전환이 이루어질 때의 충돌(conflicted) 상태를 나타내는 데 사용됩니다. 또한 작업이 완료될 수 없을 때 발생할 수 있는 방해(obstructed) 상태를 나타내는 데도 사용됩니다.

수정됨 오버레이는 로컬 수정을 수행한 수정됨(modified) 상태, 저장소의 변경 사항이 로컬 변경 사항과 병합된 병합됨(merged) 상태, 그리고 파일이 삭제되고 동일한 이름의 다른 파일로 대체된 교체됨(replaced) 상태를 나타냅니다.

삭제됨 오버레이는 항목이 삭제 예정이거나, 항목이 존재하지 않는 삭제됨(deleted) 상태 또는 누락됨(missing) 상태를 나타냅니다. 당연히 누락된 항목 자체는 오버레이를 가질 수 없지만, 자식 항목 중 하나가 누락된 경우 부모 폴더에 표시될 수 있습니다.

추가됨 오버레이는 항목이 버전 제어에 추가되었을 때 단순히 추가됨(added) 상태를 나타내는 데 사용됩니다.

Subversion에 있음 오버레이는 일반(normal) 상태에 있는 항목, 또는 아직 상태가 알려지지 않은 버전 관리되는 항목을 나타내는 데 사용됩니다. TortoiseSVN은 상태를 수집하기 위해 백그라운드 캐싱 프로세스를 사용하므로, 오버레이가 업데이트되는 데 몇 초가 걸릴 수 있습니다.

잠금 필요 오버레이는 파일에 svn:needs-lock 속성이 설정되어 있을 때를 나타내는 데 사용됩니다.

잠김 오버레이는 로컬 작업 복사본이 해당 파일에 대한 잠금을 가지고 있을 때 사용됩니다.

무시됨 오버레이는 전역 무시 패턴 또는 부모 폴더의 svn:ignore 속성으로 인해 무시됨(ignored) 상태인 항목을 나타내는 데 사용됩니다. 이 오버레이는 선택 사항입니다.

버전 관리되지 않음 오버레이는 버전 관리되지 않음(unversioned) 상태인 항목을 나타내는 데 사용됩니다. 이것은 버전 관리되는 폴더에 있지만, 그 자체로는 버전 관리에 있지 않은 항목입니다. 이 오버레이는 선택 사항입니다.

항목이 Subversion 상태 없음(none) (항목이 작업 복사본 내에 있지 않음)을 가지는 경우 오버레이가 표시되지 않습니다. 무시됨버전 관리되지 않음 오버레이를 비활성화하도록 선택한 경우 해당 파일에 대해서도 오버레이가 표시되지 않습니다.

항목은 하나의 Subversion 상태 값만 가질 수 있습니다. 예를 들어, 파일이 로컬에서 수정되면서 동시에 삭제 예정으로 표시될 수 있습니다. Subversion은 단일 상태 값을 반환하며, 이 경우 삭제됨(deleted)입니다. 이러한 우선순위는 Subversion 자체 내에서 정의됩니다.

TortoiseSVN이 재귀적으로 상태를 표시할 때 (기본 설정), 각 폴더는 자체 상태와 모든 자식의 상태를 반영하는 오버레이를 표시합니다. 단일 요약 오버레이를 표시하기 위해, 충돌 오버레이가 가장 높은 우선순위를 가지도록 위에서 보여준 우선순위 순서를 사용하여 어떤 오버레이를 사용할지 결정합니다.

사실, 시스템에서 이 모든 아이콘이 사용되지 않는다는 것을 알 수 있습니다. 이는 Windows에서 허용하는 오버레이 수가 15개로 제한되어 있기 때문입니다. Windows는 그 중 4개를 사용하며, 나머지 11개는 다른 애플리케이션에서 사용할 수 있습니다. 사용 가능한 오버레이 슬롯이 충분하지 않으면, TortoiseSVN은 선량한 시민(TM)이 되기 위해 오버레이 사용을 제한하여 다른 앱에 기회를 주려고 노력합니다.

다른 버전 제어 시스템을 위한 Tortoise 클라이언트가 있으므로, 우리는 오버레이 아이콘을 표시하는 역할을 하는 공유 구성 요소를 만들었습니다. 여기서 기술적인 세부 사항은 중요하지 않으며, 이 공유 구성 요소는 모든 Tortoise 클라이언트가 동일한 오버레이를 사용하도록 허용하므로, 둘 이상의 Tortoise 클라이언트를 설치하더라도 사용 가능한 11개의 슬롯 제한이 소진되지 않는다는 점만 알면 됩니다. 물론 작은 단점이 하나 있는데, 모든 Tortoise 클라이언트가 동일한 오버레이 아이콘을 사용하므로, 오버레이 아이콘만으로는 작업 복사본이 어떤 버전 제어 시스템을 사용하는지 알 수 없습니다.

  • 일반, 수정됨충돌은 항상 로드되고 표시됩니다.

  • 삭제됨은 가능하면 로드되지만, 슬롯이 충분하지 않으면 수정됨으로 대체됩니다.

  • 읽기 전용은 가능하면 로드되지만, 슬롯이 충분하지 않으면 일반으로 대체됩니다.

  • 잠김은 가능하면 로드되지만, 슬롯이 충분하지 않으면 일반으로 대체됩니다.

  • 추가됨은 가능하면 로드되지만, 슬롯이 충분하지 않으면 수정됨으로 대체됩니다.

TortoiseSVN 홈페이지

한국어 中文