설명서

개정 그래프

그림 4.67. 개정 그래프

A Revision Graph


때때로 트렁크에서 브랜치와 태그가 언제 생성되었는지 알아야 할 필요가 있으며, 이러한 종류의 정보를 보는 이상적인 방법은 그래프 또는 트리 구조로 보는 것입니다. 이때 TortoiseSVN개정 그래프...를 사용해야 합니다.

이 명령은 개정 기록을 분석하여 복사본이 생성된 시점과 브랜치/태그가 삭제된 시점을 보여주는 트리를 만들려고 시도합니다.

중요

그래프를 생성하려면 TortoiseSVN이 저장소 루트에서 모든 로그 메시지를 가져와야 합니다. 서버 속도, 네트워크 대역폭 등에 따라 수천 개의 개정을 가진 저장소에서도 몇 분이 걸릴 수 있다는 것은 말할 필요도 없습니다. 현재 500,000개 이상의 개정을 가진 Apache 프로젝트와 같은 것을 시도하면 상당한 시간을 기다려야 할 수도 있습니다.

좋은 소식은 로그 캐싱을 사용하고 있다면 이 지연을 한 번만 겪으면 된다는 것입니다. 그 후에는 로그 데이터가 로컬에 유지됩니다. 로그 캐싱은 TortoiseSVN 설정에서 활성화됩니다.

개정 그래프 노드

각 개정 그래프 노드는 보고 있는 트리에서 무언가 변경된 저장소의 개정을 나타냅니다. 노드의 종류는 모양과 색상으로 구별할 수 있습니다. 모양은 고정되어 있지만, 색상은 TortoiseSVN설정을 사용하여 설정할 수 있습니다.

추가되거나 복사된 항목

다른 파일/폴더를 복사하여 추가되거나 생성된 항목은 둥근 사각형으로 표시됩니다. 기본 색상은 녹색입니다. 태그와 트렁크는 특별한 경우로 취급되며, TortoiseSVN설정에 따라 다른 음영을 사용합니다.

삭제된 항목

더 이상 필요 없는 브랜치와 같이 삭제된 항목은 팔각형(모서리가 잘린 사각형)으로 표시됩니다. 기본 색상은 빨간색입니다.

이름이 변경된 항목

이름이 변경된 항목도 팔각형으로 표시되지만, 기본 색상은 파란색입니다.

브랜치 팁 개정

그래프는 일반적으로 브랜치 포인트만 표시하도록 제한되지만, 각 브랜치의 해당 HEAD 개정을 볼 수 있는 것이 유용한 경우가 많습니다. HEAD 개정 표시를 선택하면 각 HEAD 개정 노드가 타원형으로 표시됩니다. 여기서 HEAD는 저장소의 HEAD 개정이 아니라 해당 경로에 마지막으로 커밋된 개정을 나타냅니다.

작업 사본 개정

작업 사본에서 개정 그래프를 호출한 경우, WC 개정 표시를 사용하여 그래프에 BASE 개정을 표시하도록 선택할 수 있으며, 이는 BASE 노드를 굵은 윤곽선으로 표시합니다.

수정된 작업 사본

작업 사본에서 개정 그래프를 호출한 경우, WC 수정 사항 표시를 사용하여 수정된 작업 사본을 나타내는 추가 노드를 표시하도록 선택할 수 있습니다. 이 노드는 기본적으로 빨간색 굵은 윤곽선을 가진 타원형 노드입니다.

일반 항목

다른 모든 항목은 일반 사각형으로 표시됩니다.

기본적으로 그래프는 항목이 추가, 복사 또는 삭제된 지점만 표시합니다. 프로젝트의 모든 개정을 표시하면 사소하지 않은 경우에 매우 큰 그래프가 생성됩니다. 변경 사항이 발생한 모든 개정을 정말로 보고 싶다면 보기 메뉴와 도구 모음에 이 작업을 수행하는 옵션이 있습니다.

기본 보기(그룹화 해제)는 노드의 수직 위치가 엄격한 개정 순서가 되도록 배치하여 작업이 수행된 순서에 대한 시각적 단서를 제공합니다. 두 노드가 같은 열에 있으면 순서는 매우 명확합니다. 두 노드가 인접한 열에 있으면 노드 겹침을 방지할 필요가 없으므로 오프셋이 훨씬 작아지고 결과적으로 순서가 약간 덜 명확해집니다. 이러한 최적화는 복잡한 그래프를 합리적인 크기로 유지하는 데 필요합니다. 이 순서는 오래된 쪽의 노드 가장자리를 참조로 사용합니다. 즉, 그래프가 가장 오래된 노드를 아래에 표시할 때 노드의 아래쪽 가장자리를 참조로 사용합니다. 노드 모양이 모두 같은 높이가 아니기 때문에 참조 가장자리가 중요합니다.

보기 변경

개정 그래프는 종종 상당히 복잡하므로 원하는 방식으로 보기를 조정하는 데 사용할 수 있는 여러 기능이 있습니다. 이러한 기능은 보기 메뉴와 도구 모음에서 사용할 수 있습니다.

브랜치 그룹화

기본 동작(그룹화 해제)은 모든 행을 엄격하게 개정 순서로 정렬합니다. 그 결과, 커밋이 드문 장기 브랜치는 몇 가지 변경 사항만으로도 전체 열을 차지하게 되어 그래프가 매우 넓어집니다.

이 모드는 변경 사항을 브랜치별로 그룹화하므로 전역 개정 순서가 없습니다. 브랜치에서 연속적인 개정은 (종종) 연속적인 줄에 표시됩니다. 그러나 서브 브랜치는 그래프를 간결하게 유지하기 위해 나중에 생성된 브랜치가 이전에 생성된 브랜치 위에 같은 열에 배열됩니다. 그 결과, 주어진 행에는 다른 개정의 변경 사항이 포함될 수 있습니다.

가장 오래된 항목을 위로

일반적으로 그래프는 가장 오래된 개정을 아래에 표시하고 트리는 위로 성장합니다. 이 옵션을 사용하여 대신 위에서 아래로 성장하도록 합니다.

트리를 맨 위에 정렬

그래프가 여러 개의 작은 트리로 나뉘는 경우, 브랜치 그룹화 옵션을 사용하는지 여부에 따라 트리가 자연 개정 순서로 나타나거나 창 하단에 정렬될 수 있습니다. 이 옵션을 사용하여 모든 트리를 대신 위에서 아래로 성장하도록 합니다.

교차선 줄이기

이 옵션은 일반적으로 활성화되어 있으며, 혼란스러운 교차선이 많은 그래프를 표시하는 것을 방지합니다. 그러나 이로 인해 레이아웃 열이 덜 논리적인 위치에 나타날 수도 있습니다(예: 열이 아닌 대각선). 또한 그래프를 그리는 데 더 넓은 영역이 필요할 수 있습니다. 이것이 문제인 경우 보기 메뉴에서 이 옵션을 비활성화할 수 있습니다.

차등 경로 이름

긴 경로 이름은 많은 공간을 차지하고 노드 상자를 매우 크게 만들 수 있습니다. 이 옵션을 사용하여 경로의 변경된 부분만 표시하고 공통 부분은 점으로 대체합니다. 예를 들어, /trunk/doc/html에서 /branches/1.2.x/doc/html 브랜치를 생성하는 경우, 마지막 두 레벨인 dochtml이 변경되지 않았으므로 브랜치는 /branches/1.2.x/..로 간결하게 표시될 수 있습니다.

모든 개정 표시

이 기능은 예상대로 동작하며 (그래프를 그리는 트리에서) 무언가 변경된 모든 개정을 표시합니다. 긴 기록의 경우 정말 거대한 그래프를 생성할 수 있습니다.

HEAD 개정 표시

이것은 모든 브랜치의 최신 개정이 항상 그래프에 표시되도록 합니다.

정확한 복사 원본

브랜치/태그가 생성될 때 기본 동작은 변경이 이루어진 마지막 노드에서 브랜치가 파생된 것으로 표시하는 것입니다. 엄밀히 말하면 브랜치는 특정 개정보다는 현재 HEAD에서 생성되는 경우가 많으므로 이는 부정확합니다. 따라서 복사를 생성하는 데 사용된 더 정확한(하지만 덜 유용한) 개정을 표시할 수 있습니다. 이 개정은 원본 브랜치의 HEAD 개정보다 나중에 생성될 수 있다는 점에 유의하십시오.

태그 접기

프로젝트에 태그가 많으면 그래프에 모든 태그를 별도의 노드로 표시하면 많은 공간을 차지하고 더 흥미로운 개발 브랜치 구조를 가리게 됩니다. 동시에 개정을 비교할 수 있도록 태그 콘텐츠에 쉽게 접근해야 할 수도 있습니다. 이 옵션은 태그 노드를 숨기고 대신 태그가 복사된 노드의 툴팁에 표시합니다. 원본 노드 오른쪽에 있는 태그 아이콘은 태그가 생성되었음을 나타냅니다. 이것은 보기를 크게 단순화합니다.

태그 자체가 복사본의 원본으로 사용된 경우(예: 태그를 기반으로 하는 새 브랜치) 해당 태그는 접히지 않고 별도의 노드로 표시됩니다.

삭제된 경로 숨기기

저장소의 HEAD 개정에 더 이상 존재하지 않는 경로(예: 삭제된 브랜치)를 숨깁니다.

태그 접기 옵션을 선택한 경우 태그가 파생된 삭제된 브랜치는 계속 표시됩니다. 그렇지 않으면 태그도 사라지기 때문입니다. 태그가 지정된 마지막 개정은 별도의 삭제 개정을 표시하는 대신 삭제된 노드에 사용된 색상으로 표시됩니다.

태그 숨기기 옵션을 선택하면 태그를 표시하는 데 필요하지 않으므로 이러한 브랜치도 다시 사라집니다.

사용되지 않는 브랜치 숨기기

해당 파일 또는 하위 폴더에 변경 사항이 커밋되지 않은 브랜치를 숨깁니다. 이것이 브랜치가 사용되지 않았음을 반드시 나타내지는 않으며, 단지 부분에 변경 사항이 없었음을 나타냅니다.

WC 개정 표시

그래프를 가져온 항목의 업데이트 개정에 해당하는 개정을 그래프에 표시합니다. 방금 업데이트한 경우 HEAD가 되지만, 마지막 업데이트 이후 다른 사람이 변경 사항을 커밋했다면 WC는 몇 개정 아래에 있을 수 있습니다. 노드는 굵은 윤곽선으로 표시됩니다.

WC 수정 사항 표시

WC에 로컬 변경 사항이 포함되어 있으면 이 옵션은 이를 별도의 타원형 노드로 그리고, WC가 마지막으로 업데이트된 노드에 다시 연결합니다. 기본 윤곽선 색상은 빨간색입니다. 최근 변경 사항을 반영하려면 F5 키를 사용하여 그래프를 새로 고쳐야 할 수 있습니다.

필터

때때로 개정 그래프에 표시하고 싶은 것보다 더 많은 개정이 포함될 수 있습니다. 이 옵션은 표시되는 개정 범위를 제한하고 이름으로 특정 경로를 숨길 수 있는 대화 상자를 엽니다.

특정 경로를 숨기고 해당 노드에 자식 노드가 있는 경우, 자식 노드는 별도의 트리로 표시됩니다. 모든 자식 노드도 숨기려면 전체 서브트리 제거 체크박스를 사용하십시오.

트리 줄무늬

그래프에 여러 트리가 포함된 경우, 트리를 구별하는 데 도움이 되도록 배경에 번갈아 가며 색상을 사용하는 것이 유용할 때가 있습니다.

개요 표시

전체 그래프의 작은 그림을 현재 보기 창이 사각형으로 표시된 채로 보여줍니다. 이 사각형은 드래그할 수 있습니다. 이를 통해 그래프를 더 쉽게 탐색할 수 있습니다. 매우 큰 그래프의 경우 극단적인 확대/축소 비율로 인해 개요가 쓸모없어질 수 있으며, 그러한 경우에는 표시되지 않습니다.

그래프 사용

큰 그래프를 더 쉽게 탐색하려면 개요 창을 사용하십시오. 이 창은 전체 그래프를 작은 창에 표시하고, 현재 표시되는 부분이 강조 표시됩니다. 강조 표시된 영역을 드래그하여 표시되는 영역을 변경할 수 있습니다.

마우스가 개정 상자 위로 이동할 때마다 개정 날짜, 작성자 및 주석이 힌트 상자에 표시됩니다.

두 개정을 선택한 경우(Ctrl-왼쪽 클릭 사용), 컨텍스트 메뉴를 사용하여 이들 개정 간의 차이점을 표시할 수 있습니다. 브랜치 생성 시점에서의 차이점을 표시하도록 선택할 수 있지만, 일반적으로 브랜치 종료 시점, 즉 HEAD 개정에서의 차이점을 표시하는 것을 원할 것입니다.

모든 차이점을 최소한의 컨텍스트로 단일 파일에 표시하는 통합 Diff 파일로 차이점을 볼 수 있습니다. 컨텍스트 메뉴개정 비교를 선택하면 변경된 파일 목록이 표시됩니다. 파일 이름을 더블 클릭하여 파일의 두 개정을 가져와 시각적 Diff 도구를 사용하여 비교합니다.

개정을 오른쪽 클릭하면 컨텍스트 메뉴로그 보기를 사용하여 기록을 볼 수 있습니다.

선택한 개정의 변경 사항을 다른 작업 사본으로 병합할 수도 있습니다. 폴더 선택 대화 상자를 통해 병합할 작업 사본을 선택할 수 있지만, 그 후에는 확인 대화 상자나 테스트 병합을 시도할 기회가 없습니다. 변경 사항이 작동하지 않을 경우 되돌릴 수 있도록 수정되지 않은 작업 사본에 병합하는 것이 좋습니다! 이것은 한 브랜치에서 다른 브랜치로 선택된 개정을 병합하려는 경우에 유용한 기능입니다.

개정 그래프 읽는 법 배우기

첫 사용자들은 개정 그래프가 사용자의 정신 모델과 일치하지 않는 것을 보여준다는 사실에 놀랄 수 있습니다. 예를 들어, 한 개정에서 파일이나 폴더의 여러 복사본이나 브랜치가 변경되면 해당 단일 개정에 대한 여러 노드가 있을 수 있습니다. 도구 모음의 가장 왼쪽 옵션부터 시작하여 정신 모델에 가까워질 때까지 그래프를 단계별로 사용자 정의하는 것이 좋은 방법입니다.

모든 필터 옵션은 가능한 한 적은 정보를 손실하려고 합니다. 이로 인해 일부 노드의 색상이 변경될 수 있습니다. 결과가 예상치 못한 경우, 마지막 필터 작업을 취소하고 해당 특정 개정 또는 브랜치에 특별한 점이 무엇인지 이해하려고 노력하십시오. 대부분의 경우, 필터 작업의 초기 예상 결과는 부정확하거나 오해의 소지가 있을 것입니다.

보기 새로 고침

새로운 정보가 있는지 서버를 다시 확인하려면 F5 키를 사용하여 보기를 새로 고치면 됩니다. 로그 캐시를 사용하는 경우(기본적으로 활성화됨), 저장소에서 새로운 커밋을 확인하고 새로운 커밋만 가져옵니다. 로그 캐시가 오프라인 모드에 있었다면, 이 작업은 다시 온라인으로 전환하려고 시도할 것입니다.

로그 캐시를 사용하고 있으며 메시지 내용이나 작성자가 변경되었을 수 있다고 생각한다면, 필요한 메시지를 새로 고치려면 로그 대화 상자를 사용해야 합니다. 개정 그래프는 저장소 루트에서 작동하므로 전체 로그 캐시를 무효화해야 하며, 이를 다시 채우는 데는 매우 오랜 시간이 걸릴 수 있습니다.

트리 정리

큰 트리는 탐색하기 어려울 수 있으며 때로는 일부를 숨기거나 더 작은 트리들의 숲으로 나누고 싶을 때가 있습니다. 노드 링크가 노드로 들어가거나 나가는 지점에 마우스를 가져다 대면 이 작업을 수행할 수 있는 하나 이상의 팝업 버튼이 표시됩니다.

마이너스 버튼을 클릭하여 연결된 서브트리를 축소합니다.

플러스 버튼을 클릭하여 축소된 트리를 확장합니다. 트리가 축소되면 이 버튼은 숨겨진 서브트리를 나타내기 위해 계속 표시됩니다.

X 버튼을 클릭하여 연결된 서브트리를 분할하고 그래프에 별도의 트리로 표시합니다.

원 버튼을 클릭하여 분할된 트리를 다시 연결합니다. 트리가 분할되면 이 버튼은 별도의 서브트리가 있음을 나타내기 위해 계속 표시됩니다.

그래프 배경을 클릭하면 모두 확장모두 결합 옵션을 제공하는 주 컨텍스트 메뉴가 표시됩니다. 브랜치가 축소되거나 분할되지 않은 경우 컨텍스트 메뉴는 표시되지 않습니다.

TortoiseSVN 홈페이지

한국어 中文