무엇이 TortoiseSVN을 훌륭한 Subversion 클라이언트로 만드는 걸까요? 여기 기능에 대한 짧은 목록이 있습니다.
TortoiseSVN은 Windows 셸(즉, 탐색기)에 완벽하게 통합됩니다. 이는 이미 익숙한 도구를 계속 사용할 수 있음을 의미합니다. 또한 버전 관리 기능이 필요할 때마다 다른 응용 프로그램으로 전환할 필요가 없습니다.
또한 Windows 탐색기 사용에만 국한되지 않습니다; TortoiseSVN의 상황에 맞는 메뉴는 다른 여러 파일 관리자에서도 작동하며, 대부분의 표준 Windows 응용 프로그램에 공통적인 파일/열기 대화 상자에서도 작동합니다. 그러나 TortoiseSVN은 Windows 탐색기의 확장으로 의도적으로 개발되었음을 명심해야 합니다. 따라서 다른 응용 프로그램에서는 통합이 완벽하지 않을 수 있으며, 예를 들어 아이콘 오버레이가 표시되지 않을 수도 있습니다.
모든 버전 관리 파일 및 폴더의 상태는 작은 오버레이 아이콘으로 표시됩니다. 이를 통해 작업 사본의 상태를 즉시 확인할 수 있습니다.
파일 또는 폴더의 변경 사항을 나열할 때, 리비전을 클릭하여 해당 커밋에 대한 설명을 볼 수 있습니다. 또한 변경된 파일 목록을 볼 수 있습니다. 파일을 두 번 클릭하면 정확히 무엇이 변경되었는지 확인할 수 있습니다.
커밋 대화 상자에는 커밋에 포함될 모든 항목이 나열되며, 각 항목에는 원하는 항목을 선택할 수 있는 체크박스가 있습니다. 새 파일을 추가하는 것을 잊었을 경우 버전 관리되지 않은 파일도 나열될 수 있습니다.
모든 Subversion 명령은 탐색기 상황에 맞는 메뉴에서 사용할 수 있습니다. TortoiseSVN은 그곳에 자체 서브메뉴를 추가합니다.
TortoiseSVN은 Subversion 클라이언트이므로, Subversion 자체의 일부 기능도 보여드리고자 합니다.
CVS는 개별 파일의 이력만 추적하지만, Subversion은 시간이 지남에 따라 전체 디렉터리 트리의 변경 사항을 추적하는 “가상” 버전 관리 파일 시스템을 구현합니다. 파일 및 디렉터리는 모두 버전 관리됩니다. 그 결과 파일과 디렉터리에서 작동하는 실제 클라이언트 측 이동 및 복사 명령이 존재합니다.
커밋은 저장소에 완전히 반영되거나 전혀 반영되지 않습니다. 이를 통해 개발자는 변경 사항을 논리적 덩어리로 구성하고 커밋할 수 있습니다.
각 파일과 디렉터리에는 보이지 않는 “속성” 집합이 첨부되어 있습니다. 원하는 임의의 키/값 쌍을 만들고 저장할 수 있습니다. 속성은 파일 내용과 마찬가지로 시간이 지남에 따라 버전 관리됩니다.
Subversion은 저장소 접근에 대한 추상화된 개념을 가지고 있어 새로운 네트워크 메커니즘을 쉽게 구현할 수 있습니다. Subversion의 “고급” 네트워크 서버는 Apache 웹 서버용 모듈로, WebDAV/DeltaV라고 불리는 HTTP 변형을 사용합니다. 이는 Subversion에게 안정성과 상호 운용성에서 큰 이점을 제공하며, 인증, 권한 부여, 유선 압축, 저장소 탐색 등 다양한 핵심 기능을 무료로 제공합니다. 더 작고 독립 실행형 Subversion 서버 프로세스도 사용할 수 있습니다. 이 서버는 ssh를 통해 쉽게 터널링될 수 있는 사용자 지정 프로토콜을 사용합니다.
Subversion은 바이너리 차이 알고리즘을 사용하여 파일 차이를 표현하며, 이는 텍스트(사람이 읽을 수 있는) 파일과 바이너리(사람이 읽을 수 없는) 파일 모두에서 동일하게 작동합니다. 두 가지 유형의 파일 모두 저장소에 동일하게 압축되어 저장되며, 차이점은 네트워크를 통해 양방향으로 전송됩니다.
브랜치 및 태그 지정 비용은 프로젝트 규모에 비례할 필요가 없습니다. Subversion은 하드 링크와 유사한 메커니즘을 사용하여 프로젝트를 단순히 복사하는 방식으로 브랜치와 태그를 생성합니다. 따라서 이러한 작업은 매우 적고 일정한 시간만 소요되며, 저장소 공간도 거의 차지하지 않습니다.