TortoiseSVN 1.5의 새로운 기능
자세한 내용은 아래에 설명되어 있습니다.
TortoiseSVN 1.5는 이전의 모든 TortoiseSVN 릴리스의 상위 집합이며, 현재 안정적이고 "최고의" 릴리스로 간주됩니다. 1.0.x, 1.1.x, 1.2.x, 1.3.x 또는 1.4.x 버전에 있던 모든 내용은 1.5에도 포함되어 있지만, 1.5는 이전 릴리스에는 없던 기능과 버그 수정을 포함하고 있습니다.
호환성 문제
이전 클라이언트 및 서버는 1.5 서버 및 클라이언트와 투명하게 상호 운용됩니다. 물론, 클라이언트와 서버가 모두 최신 버전이 아니면 일부 새로운 1.5 기능은 사용하지 못할 수 있습니다. 어떤 기능에 어떤 버전이 필요한지에 대한 내용은 아래 표를 참조하십시오.
다른 모든 기능은 서버 버전에 독립적이며 제한 없이 사용할 수 있습니다.
더 자세한 호환성 표는 Subversion 릴리스 정보를 참조하십시오.
작업 사본 라이브러리에 대한 특정 개선 사항으로 인해 작업 사본 형식의 버전 번호가 증가했습니다. 이는 1.5 이전의 Subversion 클라이언트가 Subversion 1.5에서 생성된 작업 사본과 함께 작동할 수 없을 것임을 의미합니다. 유사하게, 저장소 형식도 변경되었는데, 이는 일반적으로 저장소에 직접 접근하는 1.5 이전 Subversion 도구(예: svnserve, mod_dav_svn, svnadmin)가 Subversion 1.5에서 원래 생성된 저장소를 읽을 수 없다는 것을 의미합니다.
경고: Subversion 1.5 클라이언트가 1.5 이전 작업 사본을 만나면, 즉시 작업 사본 형식을 자동으로 업그레이드하여 이전 Subversion 클라이언트가 읽을 수 없게 만듭니다. 컴퓨터에서 여러 버전의 Subversion을 사용하는 경우, 작업 사본 형식이 실수로 업그레이드되는 것을 방지하기 위해 어떤 작업 사본에 어떤 버전을 사용하는지 주의해야 합니다. 그러나 이 "자동 업그레이드" 기능은 새 저장소 형식에서는 발생하지 않습니다.
Subversion FAQ에서 작업 사본 형식 변경에 대해 확인하십시오.
병합 추적
Subversion 1.5.0의 병합 추적 기능은 기능적으로 svnmerge.py와 거의 동일하며, 병합 기록을 기록하고 사용하여 반복 병합 문제의 일반적인 경우를 피하고 변경 사항을 선택적으로 적용할 수 있습니다. 이는 속성을 통해 병합 기록을 노출하며, 저장소 덤프/로드(병합 기록 인덱스를 다시 생성하는 기능 포함)를 허용합니다.
참고: 일부 병합 추적 기능은 1.5.x 이전 서버에서 제공하는 저장소에서는 사용할 수 없습니다.
반복 병합
브랜치에서 작업할 때, Subversion은 이제 병합되는 각 리비전을 추적합니다. 이는 예를 들어 트렁크에서 변경 사항을 병합하는 것을 더 쉽게 만듭니다. 동일한 리비전을 두 번 병합할 위험 없이 항상 전체 리비전 범위를 병합할 수 있기 때문입니다. Subversion은 병합 시 이미 병합된 리비전을 자동으로 생략합니다.

병합할 리비전을 찾기 위해 병합 대화 상자에서 로그를 표시할 때, TortoiseSVN은 이미 병합된 리비전을 시각적 힌트로 회색으로 표시합니다. 회색으로 표시된 리비전을 선택하면, Subversion은 이미 병합되었기 때문에 해당 리비전을 다시 병합하지 않습니다.
수동 병합 기록
리비전이 병합되는 것을 차단하기 위해, TortoiseSVN은 병합 대화 상자에 "기록만"이라는 버튼을 제공합니다. 이는 Subversion에 해당 리비전이 병합 자체를 수행하지 않고도 이미 병합되었음을 알립니다.
병합 정보
로그 대화 상자를 사용하여 리비전을 검사할 때, 병합이 발생한 리비전의 메시지는 일반적으로 그다지 유용하지 않습니다. 대부분의 사람들은 "XXX에서 YYY까지의 리비전을 /branches/ZZZ에서 병합함" 또는 이와 유사한 형식으로 로그 메시지를 작성합니다. 하지만 폴더/파일의 로그를 검토할 때 정말 흥미로운 것은 병합된 모든 리비전의 로그 메시지일 것입니다.

원한다면 TortoiseSVN이 해당 로그 메시지를 보여줄 수 있습니다. 로그 대화 상자에는 활성화되면 병합된 리비전의 모든 로그 메시지를 가져오는 체크박스가 있습니다. 병합된 리비전의 로그 항목은 약간 들여쓰기되어 표시됩니다.

스파스 체크아웃
많은 사용자가 매우 큰 트리를 가지고 있으며, 그 중 일부만 체크아웃하기를 원합니다. 많은 하위 폴더가 있는 폴더의 경우, 일부 하위 폴더는 필요하지 않을 수 있습니다.
TortoiseSVN은 사용자에게 체크아웃 깊이를 선택할 수 있는 콤보 상자를 제공합니다.
- 완전 재귀적
- 폴더 포함 즉시 하위
- 파일 하위만
- 이 항목만
체크아웃 깊이는 기억되므로, 나중에 업데이트 시 해당 깊이를 준수하고 모든 것을 다시 가져오지 않습니다.
svnserve를 위한 Cyrus SASL 지원
Subversion 1.5에서 svnserve는 인증 및 데이터 암호화를 위해 SASL (Simple Authentication and Security Layer)을 사용할 수 있습니다. TortoiseSVN에도 SASL이 구현되어 있습니다. TortoiseSVN 1.5에서 사용할 수 있는 SASL 인증 방법은 다음과 같습니다.
- ANONYMOUS
- CRAM-MD5
- PLAIN
- DIGEST-MD5
- LOGIN
- NTLM
SASL은 이러한 방법 중 일부에서 데이터 암호화도 제공하므로, 인터넷을 통해 데이터가 전송되는 동안 데이터를 보호할 수 있습니다. SASL을 사용하여 연결을 보호하는 것이 SSH 인프라를 설정하는 것보다 쉬울 것입니다.
변경 목록 지원
때때로 작업 사본에서 여러 가지 다른 문제를 동시에 작업하게 되는데, 어떤 파일이 어떤 변경 사항에 연루되었는지 추적하기가 어려워집니다. 이제 TortoiseSVN은 파일을 논리적인 변경 목록으로 그룹화할 수 있도록 합니다. 이 목록은 커밋 대화 상자와 수정 사항 확인 대화 상자에 나타납니다. 시각적 표시를 제공할 뿐만 아니라, 커밋을 위해 그룹을 선택할 수도 있습니다.

TortoiseSVN은 또한 ignore-on-commit이라는 특별한 변경 목록을 제공합니다. 해당 변경 목록에 속하는 파일은 커밋 대화 상자에서 선택되지 않습니다. 이는 버전을 관리해야 하지만 수정 사항이 커밋되지 않기를 원하는 파일이 있을 때 유용합니다.
로그 캐시
저장소에서 로그 정보를 가져오는 데 시간이 오래 걸릴 수 있으며, 특히 수천 개의 리비전이 있는 저장소나 빠른 연결이 아닌 저장소의 경우 더욱 그렇습니다.
TortoiseSVN 1.5는 로그 항목을 로컬 드라이브에 캐시할 수 있습니다. 로컬 캐시에 아직 없는 항목만 저장소에서 가져옵니다.
로그 캐시는 로그 대화 상자뿐만 아니라 리비전 그래프의 성능도 향상시킵니다.
저장소 브라우저
저장소 브라우저는 완전히 다시 작성되었으며 이제 Windows 탐색기와 더 유사합니다. 왼쪽에는 트리 보기가 있고 오른쪽에는 파일/폴더 목록이 있는 두 개의 창이 있습니다.

재작성의 일부는 매우 큰 디렉토리를 표시할 때의 성능 향상도 포함합니다.
또한 저장소 브라우저에서 파일/폴더를 탐색기로 직접 끌어다 놓는 방식으로 해당 파일/폴더를 빠르게 저장/내보낼 수 있습니다.
리비전 그래프
리비전 그래프는 이전 릴리스 이후 극적으로 변경되었습니다. 사용 가능한 경우 로그 캐시를 사용하는 것 외에도, 로그 데이터를 분석할 때 훨씬 더 빠릅니다.
그래프 오른쪽 상단의 작은 창은 전체 그래프의 개요를 보여줍니다.
새로운 리비전 그래프는 출력을 조정할 수 있는 훨씬 더 많은 옵션을 가지고 있습니다. 예를 들어, 그래프의 방향, 노드가 그래프에 어떻게 배열되는지 또는 어떤 노드/경로/URL을 완전히 필터링해야 하는지 등이 있습니다.
클라이언트 측 훅 스크립트
TortoiseSVN은 특정 작업 전후에 클라이언트 측 스크립트 실행을 허용합니다. 사용 가능한 훅은 다음과 같습니다.
- 커밋 시작 훅
- 커밋 대화 상자가 표시되기 전에 호출됨
- 프리-커밋 훅
- 커밋 대화 상자가 표시된 후, 실제 커밋 전에 호출됨
- 포스트-커밋 훅
- 커밋이 완료된 후에 호출됨
- 업데이트 시작 훅
- 업데이트 전, 저장소와 연결되기 전에 호출됨
- 프리-업데이트 훅
- 업데이트 전, 그러나 업데이트가 수행될 리비전을 알게 된 후에 호출됨
- 포스트-업데이트 훅
- 업데이트가 완료된 후에 호출됨
TortoiseMerge
- 줄 끝 처리
- 일관성 없는 줄 끝(MAC 줄 끝 포함)이 제대로 처리됩니다.
- 실행 취소
- 충돌 해결 중에 발생한 변경 사항은 하나씩 되돌릴 수 있습니다.
- 편집
- 텍스트 편집기를 사용할 필요 없이 TortoiseMerge에서 대상 파일을 직접 편집할 수 있습니다.
SubWCRev
SubWCRev 도구는 이제 스크립팅 언어에서 쉽게 접근할 수 있는 COM 인터페이스를 가지고 있습니다. 이를 통해 예를 들어 Microsoft Word 문서에 리비전 정보를 포함시킬 수 있습니다.
오버레이 아이콘
TortoiseCVS와 같은 다른 Tortoise 클라이언트를 사용하고 있다면 Windows의 제한된 오버레이 슬롯 문제에 대해 알고 있을 것입니다. TortoiseSVN과 TortoiseCVS가 모두 설치되어 있으면 일부 오버레이가 더 이상 표시되지 않습니다. 이는 Windows에 오버레이를 위한 약 12개의 슬롯만 사용 가능하며, 두 애플리케이션이 모두 설치되면 그 한계가 소진되기 때문입니다.
이 문제를 해결하기 위해, 우리는 모든 Tortoise 클라이언트가 사용할 수 있는 공통 오버레이 핸들러를 구현했습니다. 이 핸들러를 사용하면 모든 Tortoise 클라이언트가 동일한 오버레이 아이콘을 표시하고 동일한 오버레이 슬롯을 사용하게 됩니다. 그렇게 하면 Windows 제한에 더 이상 쉽게 도달하지 않을 것입니다.
TortoiseSVN 1.5.x 및 TortoiseCVS 불안정 릴리스는 이미 이 새로운 오버레이 핸들러를 사용합니다.
오버레이를 공유하는 이 새로운 오버레이 핸들러 덕분에 TortoiseSVN은 두 가지 새로운 오버레이를 얻었습니다: 버전 관리되지 않은 파일과 무시된 파일에 대해서도 이제 오버레이가 있습니다.
