매뉴얼

개정 로그 대화상자

모든 변경사항을 만들고 커밋할 때마다 해당 변경사항에 대한 로그 메시지를 제공해야 합니다. 그렇게 해야 나중에 어떤 변경사항을 만들었는지, 왜 만들었는지 확인할 수 있으며, 개발 프로세스에 대한 상세 로그를 가질 수 있습니다.

개정 로그 대화상자는 이러한 모든 로그 메시지를 검색하여 사용자에게 표시합니다. 디스플레이는 세 개의 창으로 나뉩니다.

하지만 그 이상으로, 프로젝트 히스토리에 대한 더 많은 정보를 얻는 데 사용할 수 있는 컨텍스트 메뉴 명령을 제공합니다.

개정 로그 대화상자 호출하기

그림 4.18. 개정 로그 대화상자

The Revision Log Dialog


로그 대화상자를 표시할 수 있는 여러 곳이 있습니다.

  • TortoiseSVN 컨텍스트 하위 메뉴에서

  • 속성 페이지에서

  • 업데이트가 완료된 후 진행률 대화상자에서. 이 경우 로그 대화상자는 마지막 업데이트 이후 변경된 개정만 표시합니다.

  • 저장소 브라우저에서

저장소를 사용할 수 없는 경우 오프라인으로 전환하시겠습니까? 대화상자가 표시됩니다. 이 대화상자는 "오프라인 모드" 섹션에 설명되어 있습니다.

개정 로그 작업

상단 창에는 해당 개정에서 수행된 작업을 요약하는 아이콘이 포함된 작업 열이 있습니다. 네 가지 다른 아이콘이 있으며, 각각 자체 열에 표시됩니다.

개정이 파일 또는 디렉터리를 수정한 경우, 수정됨 아이콘이 첫 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 추가한 경우, 추가됨 아이콘이 두 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 삭제한 경우, 삭제됨 아이콘이 세 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 교체한 경우, 교체됨 아이콘이 네 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 이동 또는 이름 변경한 경우, 이동됨 아이콘이 네 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 이동/이름 변경하여 교체한 경우, 이동하여 교체됨 아이콘이 네 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 병합한 경우, 병합됨 아이콘이 네 번째 열에 표시됩니다.

개정이 파일 또는 디렉터리를 역병합한 경우, 역병합됨 아이콘이 네 번째 열에 표시됩니다.

추가 정보 얻기

그림 4.19. 컨텍스트 메뉴가 있는 개정 로그 대화상자 상단 창

The Revision Log Dialog Top Pane with Context Menu


로그 대화상자의 상단 창에는 훨씬 더 많은 정보에 접근할 수 있는 컨텍스트 메뉴가 있습니다. 이 메뉴 항목 중 일부는 파일에 대한 로그가 표시될 때만 나타나고, 일부는 폴더에 대한 로그가 표시될 때만 나타납니다.

작업 사본과 비교

선택된 개정을 작업 사본과 비교합니다. 기본 Diff-Tool은 TortoiseSVN과 함께 제공되는 TortoiseMerge입니다. 로그 대화상자가 폴더에 대한 것인 경우, 변경된 파일 목록을 보여주고 각 파일에 적용된 변경사항을 개별적으로 검토할 수 있도록 합니다.

작업 BASE와 비교 및 Blame

선택된 개정을 Blame하고, 작업 BASE의 파일을 Blame하며, 시각적 Diff 도구를 사용하여 Blame 보고서를 비교합니다. 자세한 내용은 "Blame 차이점" 섹션을 참조하십시오. (파일만 해당)

통합 Diff로 변경 사항 표시

선택된 개정에서 변경된 사항을 Unified-Diff 파일(GNU 패치 형식)로 봅니다. 이는 몇 줄의 컨텍스트와 함께 차이점만 보여줍니다. 시각적 파일 비교보다 읽기 어렵지만, 모든 파일 변경 사항을 간결한 형식으로 함께 보여줍니다.

Shift 키를 누른 상태에서 메뉴 항목을 클릭하면 통합 Diff에 대한 옵션을 설정할 수 있는 대화상자가 먼저 나타납니다. 이 옵션에는 줄 끝 및 공백 변경 무시 기능이 포함됩니다.

이전 개정본과 비교

선택된 개정을 이전 개정과 비교합니다. 이는 작업 사본과 비교하는 것과 유사하게 작동합니다. 폴더의 경우 이 옵션은 먼저 변경된 파일 대화상자를 표시하여 비교할 파일을 선택할 수 있도록 합니다.

이전 개정본과 비교 및 Blame

파일을 선택할 수 있는 변경된 파일 대화상자를 표시합니다. 선택된 개정과 이전 개정을 Blame하고, 시각적 Diff 도구를 사용하여 결과를 비교합니다. (폴더만 해당)

개정본 저장...

선택된 개정을 파일로 저장하여 해당 파일의 이전 버전을 갖습니다. (파일만 해당)

열기 / 다른 프로그램으로 열기...

선택된 파일을 해당 파일 형식의 기본 뷰어로 열거나, 선택한 프로그램으로 엽니다. (파일만 해당)

Blame...

선택된 개정까지 파일을 Blame합니다. (파일만 해당)

저장소 브라우저

저장소 브라우저를 열어 선택된 개정 시점의 저장소에 있는 선택된 파일 또는 폴더를 검사합니다.

개정본에서 브랜치/태그 생성

선택된 개정에서 브랜치 또는 태그를 생성합니다. 예를 들어, 태그 생성을 잊었거나 해당 릴리스에 포함되지 않아야 하는 일부 변경사항을 이미 커밋한 경우에 유용합니다.

작업 사본을 개정본으로 업데이트

작업 사본을 선택된 개정으로 업데이트합니다. 작업 사본이 과거의 특정 시점을 반영하도록 하거나, 저장소에 추가 커밋이 있었고 작업 사본을 한 단계씩 업데이트하려는 경우에 유용합니다. 작업 사본 전체 디렉터리를 업데이트하는 것이 좋으며, 파일 하나만 업데이트하면 작업 사본이 일관되지 않을 수 있습니다.

이전 변경사항을 영구적으로 되돌리려면 대신 이 개정본으로 되돌리기를 사용하십시오.

이 개정본으로 되돌리기

이전 개정본으로 되돌립니다. 여러 변경사항을 만들었다가, 개정 N의 상태로 완전히 돌아가기로 결정했다면, 이 명령이 필요합니다. 변경사항은 작업 사본에서 취소되므로 이 작업은 변경사항을 커밋하기 전까지는 저장소에 영향을 미치지 않습니다. 이는 선택된 개정 이후에 이루어진 모든 변경사항을 취소하고, 파일/폴더를 이전 버전으로 교체합니다.

작업 사본이 수정되지 않은 상태인 경우, 이 작업을 수행한 후 작업 사본이 수정된 것으로 표시됩니다. 이미 로컬 변경사항이 있는 경우, 이 명령은 실행 취소 변경사항을 작업 사본에 병합합니다.

내부적으로 발생하는 일은 Subversion이 선택된 개정 이후에 이루어진 모든 변경사항에 대해 역병합을 수행하여 이전 커밋의 효과를 취소하는 것입니다.

이 작업을 수행한 후 취소된 것을 다시 취소하고 작업 사본을 이전의 수정되지 않은 상태로 되돌리고 싶다면, Windows 탐색기 내에서 TortoiseSVN되돌리기를 사용해야 합니다. 이는 이 역병합 작업으로 인한 로컬 수정사항을 버립니다.

단순히 이전 개정에서 파일 또는 폴더가 어떻게 보였는지 확인하고 싶다면, 대신 개정본으로 업데이트 또는 개정본을 다른 이름으로 저장...을 사용하십시오.

이 개정본에서 변경 사항 되돌리기

선택된 개정에서 이루어진 변경 사항을 되돌립니다. 변경 사항은 작업 사본에서 취소되므로 이 작업은 저장소에 전혀 영향을 미치지 않습니다! 이는 해당 개정에서 이루어진 변경 사항만 취소하며, 작업 사본을 이전 개정의 전체 파일로 교체하지 않습니다. 이는 다른 관련 없는 변경 사항이 그 이후로 이루어졌을 때 이전 변경 사항을 취소하는 데 매우 유용합니다.

작업 사본이 수정되지 않은 상태인 경우, 이 작업을 수행한 후 작업 사본이 수정된 것으로 표시됩니다. 이미 로컬 변경사항이 있는 경우, 이 명령은 실행 취소 변경사항을 작업 사본에 병합합니다.

내부적으로는 Subversion이 해당 개정 하나에 대해 역병합을 수행하여 이전 커밋의 효과를 취소합니다.

이 개정본으로 되돌리기에서 위에서 설명한 대로 실행 취소를 다시 실행 취소할 수 있습니다.

개정본을 다음으로 병합...

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

체크아웃...

선택된 개정에서 선택된 폴더를 새로 체크아웃합니다. 그러면 URL 및 개정을 확인하고 체크아웃할 위치를 선택하는 대화상자가 나타납니다.

내보내기...

선택된 개정에서 선택된 파일/폴더를 내보냅니다. 그러면 URL 및 개정을 확인하고 내보낼 위치를 선택하는 대화상자가 나타납니다.

작성자 / 로그 메시지 편집

이전 커밋에 첨부된 로그 메시지 또는 작성자를 편집합니다. 작동 방식에 대한 자세한 내용은 "로그 메시지 및 작성자 변경" 섹션을 참조하십시오.

개정 속성 표시

로그 메시지 및 작성자뿐만 아니라 모든 개정 속성을 보고 편집합니다. "로그 메시지 및 작성자 변경" 섹션을 참조하십시오.

클립보드로 복사

선택된 개정의 로그 세부 정보를 클립보드로 복사합니다. 이는 각 개정에 대한 개정 번호, 작성자, 날짜, 로그 메시지 및 변경된 항목 목록을 복사합니다.

로그 메시지 검색...

입력한 텍스트에 대해 로그 메시지를 검색합니다. 이는 입력한 로그 메시지와 Subversion이 생성한 작업 요약(하단 창에 표시됨)을 검색합니다. 검색은 대소문자를 구분하지 않습니다.

코드 협업자 검토 생성...

이 메뉴는 SmartBear 코드 협업자 도구가 설치된 경우에만 표시됩니다. 처음 호출될 때, 코드 협업자와 SVN 모두에 대한 사용자 자격 증명을 입력하라는 메시지가 표시되는 대화상자가 나타납니다. 설정이 저장되면, 사용자가 메뉴 항목을 실행하는 동안 Ctrl 키를 누르고 있지 않는 한, 설정 대화상자는 더 이상 표시되지 않습니다. 구성 및 선택된 개정(들)은 코드 협업자 그래픽 사용자 인터페이스 클라이언트를 호출하는 데 사용되며, 이는 선택된 개정으로 새 검토를 생성합니다.

그림 4.20. 코드 협업자 설정 대화상자

The Code Collaborator Settings Dialog


그림 4.21. 선택된 두 개정본에 대한 상단 창 컨텍스트 메뉴

Top Pane Context Menu for 2 Selected Revisions


두 개정을 동시에 선택하면(일반적인 Ctrl-수정자를 사용하여), 컨텍스트 메뉴가 변경되어 더 적은 옵션을 제공합니다.

개정본 비교

시각적 차이 도구를 사용하여 선택된 두 개정을 비교합니다. 기본 Diff-Tool은 TortoiseSVN과 함께 제공되는 TortoiseMerge입니다.

폴더에 대해 이 옵션을 선택하면, 변경된 파일을 나열하고 추가 Diff 옵션을 제공하는 또 다른 대화상자가 나타납니다. 개정 비교 대화상자에 대한 자세한 내용은 "폴더 비교" 섹션에서 읽어보십시오.

개정본 Blame

두 개정을 Blame하고 시각적 차이 도구를 사용하여 Blame 보고서를 비교합니다. 자세한 내용은 "Blame 차이점" 섹션을 참조하십시오.

통합 Diff로 차이점 표시

선택된 두 개정 간의 차이점을 Unified-Diff 파일로 봅니다. 파일과 폴더 모두에 대해 작동합니다.

클립보드로 복사

위에서 설명한 대로 로그 메시지를 클립보드에 복사합니다.

로그 메시지 검색...

위에서 설명한 대로 로그 메시지를 검색합니다.

두 개 이상의 개정을 선택하면(일반적인 Ctrl 또는 Shift 수정자를 사용하여), 컨텍스트 메뉴에 선택된 개정에서 이루어진 모든 변경 사항을 되돌리는 항목이 포함됩니다. 이는 한 번에 여러 개정을 롤백하는 가장 쉬운 방법입니다.

위에서 설명한 대로 선택된 개정을 다른 작업 사본으로 병합할 수도 있습니다.

선택된 모든 개정의 작성자가 동일하면, 해당 모든 개정의 작성자를 한 번에 편집할 수 있습니다.

그림 4.22. 컨텍스트 메뉴가 있는 로그 대화상자 하단 창

The Log Dialog Bottom Pane with Context Menu


로그 대화상자의 하단 창에는 다음과 같은 작업을 수행할 수 있는 컨텍스트 메뉴도 있습니다.

변경 사항 표시

선택된 파일에 대해 선택된 개정에서 이루어진 변경 사항을 표시합니다.

변경 사항 Blame

선택된 파일에 대해 선택된 개정과 이전 개정을 Blame하고, 시각적 Diff 도구를 사용하여 Blame 보고서를 비교합니다. 자세한 내용은 "Blame 차이점" 섹션을 참조하십시오.

통합 Diff로 표시

통합 Diff 형식으로 파일 변경 사항을 표시합니다. 이 컨텍스트 메뉴는 수정됨으로 표시된 파일에만 사용할 수 있습니다.

열기 / 다른 프로그램으로 열기...

선택된 파일을 해당 파일 형식의 기본 뷰어로 열거나, 선택한 프로그램으로 엽니다.

Blame...

Blame 대화상자를 열어 선택된 개정까지 Blame할 수 있습니다.

이 개정본에서 변경 사항 되돌리기

해당 개정에서 선택된 파일에 적용된 변경 사항을 되돌립니다.

속성 표시

선택된 항목의 Subversion 속성을 봅니다.

로그 표시

선택된 단일 파일의 개정 로그를 표시합니다.

병합 로그 가져오기

선택된 단일 파일의 개정 로그를 병합된 변경 사항을 포함하여 표시합니다. 자세한 내용은 "병합 추적 기능" 섹션에서 확인할 수 있습니다.

개정본 저장...

선택된 개정본을 파일로 저장하여 해당 파일의 이전 버전을 갖습니다.

내보내기...

이 개정본의 선택된 항목을 파일 계층 구조를 보존하면서 폴더로 내보냅니다.

로그 대화상자의 하단 창에서 여러 파일이 선택된 경우, 컨텍스트 메뉴는 다음과 같이 변경됩니다.

그림 4.23. 여러 파일이 선택된 경우의 로그 대화상자 하단 창 컨텍스트 메뉴.

The Log Dialog Bottom Pane with Context Menu When Multiple Files Selected.


개정본 저장...

선택된 개정본을 파일로 저장하여 해당 파일의 이전 버전을 갖습니다.

여러 변경 사항 표시...

선택된 파일에 대해 선택된 개정에서 이루어진 변경 사항을 표시합니다. 변경 사항 표시 기능은 여러 번 호출될 수 있으며, 이는 선택된 Diff 도구의 여러 복사본을 가져오거나 Diff 도구에 새 비교 탭을 추가할 수 있습니다. 15개 이상의 파일을 선택한 경우 작업 확인을 요청하는 메시지가 나타납니다.

여러 로컬 파일 열기...

이는 확장자에 등록된 응용 프로그램을 사용하여 선택한 파일에 해당하는 로컬 작업 사본 파일을 엽니다. [이 동작은 Windows 탐색기에서 작업 사본 파일(들)을 더블 클릭할 때 얻는 동작과 동일합니다]. 파일 확장자가 응용 프로그램에 연결된 방식과 응용 프로그램의 기능에 따라 이 작업은 느릴 수 있습니다. 최악의 경우, Windows는 선택된 각 파일에 대해 새 응용 프로그램 인스턴스를 시작할 수 있습니다.

이 명령을 호출할 때 Ctrl 키를 누르고 있으면, 작업 사본 파일은 항상 Visual Studio로 로드됩니다. 이는 다음 조건이 충족될 때만 작동합니다: Visual Studio는 TortoiseProc.exe와 동일한 프로세스 무결성 수준 [관리자 권한으로 실행 여부]을 가지면서 동일한 사용자 컨텍스트에서 실행 중이어야 합니다. 변경된 파일이 포함된 솔루션을 로드하는 것이 바람직할 수 있지만, 이는 엄격하게 필요하지 않습니다. [.cpp, .h, .cs, .rc, .resx, .xaml, .js, .html, .htm, .asp, .aspx, .php, .css 및 .xml] 확장자를 가진 디스크에 존재하는 파일만 로드됩니다. 한 번에 최대 100개의 파일을 Visual Studio로 로드할 수 있으며, 파일은 항상 현재 열려 있는 Visual Studio 인스턴스에 새 탭으로 로드됩니다. Visual Studio에서 코드 변경 사항을 검토하는 이점은 내장된 코드 탐색, 참조 찾기, 정적 코드 분석 및 Visual Studio에 내장된 기타 도구를 사용할 수 있다는 사실에 있습니다.

내보내기...

선택된 개정에서 선택된 파일/폴더를 내보냅니다. 그러면 URL 및 개정을 확인하고 내보낼 위치를 선택하는 대화상자가 나타납니다.

때로는 변경사항이라고 하고 다른 때에는 차이점이라고 하는 것을 알 수 있습니다. 차이점은 무엇일까요?

Subversion은 개정 번호를 두 가지 다른 의미로 사용합니다. 개정은 일반적으로 특정 시점의 저장소 상태를 나타내지만, 해당 개정을 생성한 변경 집합을 나타내는 데도 사용될 수 있습니다. 예를 들어, r1234에서 완료됨은 r1234에서 커밋된 변경사항이 기능 X를 구현한다는 의미입니다. 어떤 의미가 사용되는지 명확히 하기 위해 두 가지 다른 용어를 사용합니다.

두 개정 N과 M을 선택하면, 컨텍스트 메뉴는 해당 두 개정 간의 차이점을 표시할 것을 제안합니다. Subversion 용어로는 이는 diff -r M:N입니다.

단일 개정 N을 선택하면, 컨텍스트 메뉴는 해당 개정에서 이루어진 변경 사항을 표시할 것을 제안합니다. Subversion 용어로는 이는 diff -r N-1:N 또는 diff -c N입니다.

하단 창은 선택된 모든 개정에서 변경된 파일을 표시하므로, 컨텍스트 메뉴는 항상 변경 사항을 표시할 것을 제안합니다.

더 많은 로그 메시지 가져오기

로그 대화상자는 여러 가지 이유로 항상 모든 변경 사항을 표시하지는 않습니다.

  • 대규모 저장소의 경우 수백 또는 수천 개의 변경 사항이 있을 수 있으며, 이를 모두 가져오는 데 오랜 시간이 걸릴 수 있습니다. 일반적으로는 최근 변경 사항에만 관심이 있습니다. 기본적으로 가져오는 로그 메시지의 수는 100개로 제한되지만, 이 값은 TortoiseSVN설정("TortoiseSVN 대화상자 설정 1" 섹션)에서 변경할 수 있습니다.

  • 복사/이름 변경 시 중지 상자가 선택되어 있으면, 로그 표시 기능은 선택된 파일 또는 폴더가 저장소 내의 다른 곳에서 복사된 지점에서 중지됩니다. 이는 브랜치(또는 태그)를 볼 때 유용하며, 해당 브랜치의 루트에서 멈추고 해당 브랜치에서만 이루어진 변경 사항을 빠르게 나타냅니다.

    일반적으로 이 옵션은 선택 해제된 상태로 두는 것이 좋습니다. TortoiseSVN은 체크박스 상태를 기억하므로 사용자의 기본 설정을 따를 것입니다.

    병합 대화상자 내에서 로그 표시 대화상자가 호출될 때, 이 상자는 기본적으로 항상 선택됩니다. 이는 병합이 대부분 브랜치의 변경 사항을 보는 것이며, 해당 인스턴스에서 브랜치 루트를 넘어가는 것은 의미가 없기 때문입니다.

    Subversion은 현재 이름 변경을 복사/삭제 쌍으로 구현하므로, 이 옵션이 선택되어 있으면 파일 또는 폴더의 이름 변경도 로그 표시가 중지되게 합니다.

더 많은 로그 메시지를 보려면 다음 100개를 클릭하여 다음 100개의 로그 메시지를 검색하십시오. 필요한 만큼 이 작업을 반복할 수 있습니다.

이 버튼 옆에는 마지막으로 사용한 옵션을 기억하는 다기능 버튼이 있습니다. 화살표를 클릭하여 제공되는 다른 옵션을 확인하십시오.

특정 개정 범위를 보려면 범위 표시 ...를 사용하십시오. 그러면 시작 및 끝 개정을 입력하라는 대화상자가 나타납니다.

HEAD부터 개정 1까지의 모든 로그 메시지를 보려면 모두 표시를 사용하십시오.

로그 대화상자가 열려 있는 동안 다른 커밋이 있었을 경우 최신 개정을 새로 고치려면 F5 키를 누르십시오.

로그 캐시를 새로 고치려면 Ctrl-F5 키를 누르십시오.

현재 작업 사본 개정

로그 대화상자는 현재 작업 사본 개정이 아닌 HEAD의 로그를 표시하기 때문에, 작업 사본에 아직 업데이트되지 않은 내용에 대한 로그 메시지가 표시되는 경우가 종종 있습니다. 이를 명확히 하기 위해, 작업 사본에 있는 개정에 해당하는 커밋 메시지는 굵게 표시됩니다.

폴더에 대한 로그를 표시할 때 강조 표시되는 개정은 해당 폴더 내에서 발견된 가장 높은 개정이며, 이는 작업 사본의 탐색을 필요로 합니다. 이 탐색은 로그 표시를 지연시키지 않기 위해 별도의 스레드 내에서 발생하지만, 결과적으로 폴더에 대한 강조 표시가 즉시 나타나지 않을 수 있습니다.

병합 추적 기능

Subversion 1.5 이상은 속성을 사용하여 병합 기록을 유지합니다. 이를 통해 병합된 변경 사항에 대한 더 상세한 기록을 얻을 수 있습니다. 예를 들어, 브랜치에서 새 기능을 개발한 다음 해당 브랜치를 트렁크로 병합하는 경우, 브랜치 개발 중에 1000개의 커밋이 있었더라도 기능 개발은 트렁크 로그에 병합을 위한 단일 커밋으로 표시됩니다.

그림 4.24. 병합 추적 개정을 보여주는 로그 대화상자

The Log Dialog Showing Merge Tracking Revisions

해당 커밋의 일부로 어떤 개정본이 병합되었는지 자세히 보려면 병합된 개정 포함 체크박스를 사용하십시오. 그러면 로그 메시지를 다시 가져오지만, 병합된 개정본의 로그 메시지도 함께 표시됩니다. 병합된 개정본은 트리 다른 부분에서 이루어진 변경 사항을 나타내므로 회색으로 표시됩니다.

물론, 병합은 결코 간단하지 않습니다! 브랜치에서 기능 개발 중에는 메인 라인 코드와 브랜치를 동기화하기 위해 트렁크에서 가끔 병합이 있을 수 있습니다. 따라서 브랜치의 병합 기록에는 또 다른 병합 기록 계층이 포함될 것입니다. 이러한 다른 계층은 로그 대화상자에서 들여쓰기 수준을 사용하여 표시됩니다.

로그 메시지 및 작성자 변경

개정 속성은 각 항목의 Subversion 속성과 완전히 다릅니다. Revprop은 로그 메시지, 커밋 날짜 및 커미터 이름(작성자)과 같이 저장소의 특정 개정 번호와 관련된 설명 항목입니다.

때때로 이전에 입력한 로그 메시지를 변경하고 싶을 수 있습니다. 예를 들어, 철자 오류가 있거나 메시지를 개선하고 싶거나 다른 이유로 변경하고 싶을 수 있습니다. 또는 인증 설정을 잊었기 때문에 커밋 작성자를 변경하고 싶을 수도 있습니다.

Subversion은 원하는 때에 언제든지 개정 속성을 변경할 수 있도록 합니다. 그러나 이러한 변경 사항은 되돌릴 수 없으므로(이러한 변경 사항은 버전 관리되지 않음) 이 기능은 기본적으로 비활성화되어 있습니다. 이 기능을 사용하려면 pre-revprop-change 훅을 설정해야 합니다. 자세한 내용은 Subversion 책의 훅 스크립트 장을 참조하십시오. Windows 시스템에서 훅을 구현하는 방법에 대한 추가 참고 사항은 "서버 측 훅 스크립트" 섹션을 참조하십시오.

필요한 훅으로 서버를 설정한 후에는 로그 대화상자의 상단 창에서 컨텍스트 메뉴를 사용하여 모든 개정의 작성자 및 로그 메시지(또는 다른 revprop)를 변경할 수 있습니다. 중간 창의 컨텍스트 메뉴를 사용하여 로그 메시지를 편집할 수도 있습니다.

경고

Subversion의 개정 속성은 버전 관리되지 않으므로, 이러한 속성(예: svn:log 커밋 메시지 속성)을 수정하면 해당 속성의 이전 값이 영원히 덮어씌워집니다.

중요

TortoiseSVN은 모든 로그 정보를 캐시하므로, 작성자 및 로그 메시지에 대한 편집은 로컬 설치에만 표시됩니다. TortoiseSVN을 사용하는 다른 사용자는 로그 캐시를 새로 고칠 때까지 캐시된(이전) 작성자 및 로그 메시지를 계속 볼 수 있습니다. "뷰 새로 고침" 섹션을 참조하십시오.

로그 메시지 필터링

수백 개의 목록을 스크롤하는 대신 관심 있는 로그 메시지만 표시하도록 제한하려면 로그 대화상자 상단의 필터 컨트롤을 사용할 수 있습니다. 시작 및 종료 날짜 컨트롤을 사용하면 출력을 알려진 날짜 범위로 제한할 수 있습니다. 검색 상자를 사용하면 특정 구문을 포함하는 메시지만 표시할 수 있습니다.

검색 아이콘을 클릭하여 검색할 정보를 선택하고, 정규식 모드를 선택하십시오. 일반적으로는 간단한 하위 문자열 검색만 필요하지만, 더 유연한 검색어가 필요한 경우 정규 표현식을 사용할 수 있습니다. 상자에 마우스를 올리면 도구 설명이 정규식 함수 또는 하위 문자열 함수 사용 방법에 대한 힌트를 제공합니다. 필터는 필터 문자열이 로그 항목과 일치하는지 확인하고, 필터 문자열과 일치하는 항목만 표시하는 방식으로 작동합니다.

간단한 하위 문자열 검색은 검색 엔진과 유사한 방식으로 작동합니다. 검색할 문자열은 공백으로 구분되며, 모든 문자열이 일치해야 합니다. 특정 하위 문자열이 발견되지 않도록 지정하려면 앞에 -를 사용할 수 있고(해당 용어에 대한 일치 반전), 전체 표현식에 대한 일치를 반전시키려면 표현식 시작 부분에 !를 사용할 수 있습니다. 이전에 -로 제외된 경우에도 하위 문자열이 포함되어야 함을 지정하려면 앞에 +를 사용할 수 있습니다. 여기서 포함/제외 순서가 중요하다는 점에 유의하십시오. 공백을 포함해야 하는 문자열을 둘러싸기 위해 따옴표를 사용할 수 있으며, 리터럴 따옴표를 검색하려면 두 개의 따옴표를 함께 사용하여 자체 이스케이프 시퀀스로 사용할 수 있습니다. 백슬래시 문자는 이스케이프 문자로 사용되지 않으며 간단한 하위 문자열 검색에서는 특별한 의미가 없다는 점에 유의하십시오. 예시를 통해 더 쉽게 이해할 수 있습니다.

Alice Bob -Eve
      

Alice와 Bob을 모두 포함하지만 Eve는 포함하지 않는 문자열을 검색합니다.

Alice -Bob +Eve
      

Alice를 포함하지만 Bob은 포함하지 않는 문자열, 또는 Eve를 포함하는 문자열을 검색합니다.

-Case +SpecialCase
      

Case를 포함하지 않지만 SpecialCase를 포함하는 문자열을 여전히 포함하는 문자열을 검색합니다.

!Alice Bob
      

Alice와 Bob을 모두 포함하지 않는 문자열을 검색합니다.

!-Alice -Bob
      

드 모르간의 정리를 기억하십니까? NOT(NOT Alice AND NOT Bob)은 (Alice OR Bob)으로 축소됩니다.

"Alice and Bob"
      

리터럴 표현식 Alice and Bob을 검색합니다.

""
      

텍스트 내 어디에서든 큰따옴표를 검색합니다.

"Alice says ""hi"" to Bob"
      

리터럴 표현식 Alice says "hi" to Bob을 검색합니다.

정규 표현식 검색 사용에 대한 설명은 이 매뉴얼의 범위를 벗어나지만, https://www.regular-expressions.info/ 에서 온라인 문서와 튜토리얼을 찾을 수 있습니다.

이러한 필터는 이미 검색된 메시지에 적용됩니다. 저장소에서 메시지 다운로드를 제어하지 않습니다.

영향을 받은 경로만 표시 체크박스를 사용하여 하단 창의 경로 이름을 필터링할 수도 있습니다. 영향을 받은 경로는 로그를 표시하는 데 사용된 경로를 포함하는 경로입니다. 폴더에 대한 로그를 가져오는 경우, 이는 해당 폴더 또는 그 아래의 모든 것을 의미합니다. 파일의 경우 해당 파일 하나만을 의미합니다. 일반적으로 경로 목록은 동일한 커밋에 의해 영향을 받는 다른 경로를 회색으로 표시하지만, 이 상자가 선택되어 있으면 해당 경로는 숨겨집니다.

때로는 작업 방식상 로그 메시지가 특정 형식을 따라야 하며, 이는 변경 사항을 설명하는 텍스트가 상단 창에 표시되는 약식 요약에서 보이지 않는다는 의미입니다. tsvn:logsummary 속성을 사용하여 로그 메시지의 일부를 추출하여 상단 창에 표시할 수 있습니다. 이 속성을 사용하는 방법에 대한 자세한 내용은 "TortoiseSVN 프로젝트 속성" 섹션을 참조하십시오.

저장소 브라우저에서 로그 서식 없음

서식은 Subversion 속성에 접근하는 데 따라 달라지므로, 체크아웃된 작업 사본을 사용할 때만 결과를 볼 수 있습니다. 속성을 원격으로 가져오는 것은 느린 작업이므로, 저장소 브라우저에서는 이 기능을 볼 수 없습니다.

통계 정보

통계 버튼을 누르면 로그 대화상자에 표시된 개정에 대한 몇 가지 흥미로운 정보가 있는 상자가 나타납니다. 이 상자에는 작업한 작성자 수, 그들이 커밋한 횟수, 주별 진행 상황 등 많은 정보가 표시됩니다. 이제 누가 가장 열심히 일하고 누가 게으름을 피우고 있는지 한눈에 볼 수 있습니다. ;-)

통계 페이지

이 페이지는 당신이 생각할 수 있는 모든 숫자를 제공하며, 특히 다루는 기간 및 개정 수와 최소/최대/평균 값을 제공합니다.

작성자별 커밋 페이지

그림 4.25. 작성자별 커밋 히스토그램

Commits-by-Author Histogram


이 그래프는 어떤 작성자들이 프로젝트에서 활동했는지 간단한 히스토그램, 누적 히스토그램 또는 원형 차트로 보여줍니다.

그림 4.26. 작성자별 커밋 원형 차트

Commits-by-Author Pie Chart


주요 작성자는 소수이고 기여자가 많을 경우, 작은 조각의 수가 많아 그래프를 읽기 어려울 수 있습니다. 하단의 슬라이더를 사용하여 모든 활동이 기타 범주로 그룹화되는 임계값(총 커밋의 백분율)을 설정할 수 있습니다.

날짜별 커밋 페이지

그림 4.27. 날짜별 커밋 그래프

Commits-by-date Graph


이 페이지는 커밋 수 작성자 측면에서 프로젝트 활동의 그래픽 표현을 제공합니다. 이는 프로젝트가 언제 작업 중이었고, 누가 언제 작업했는지에 대한 아이디어를 제공합니다.

여러 작성자가 있는 경우 그래프에 많은 선이 나타납니다. 여기에는 두 가지 보기가 있습니다: 일반, 각 작성자의 활동이 기준선에 상대적이며, 누적, 각 작성자의 활동이 아래 선에 상대적입니다. 후자 옵션은 선이 교차하는 것을 방지하여 그래프를 더 쉽게 읽을 수 있지만, 한 작성자의 출력을 파악하기는 더 어렵습니다.

기본적으로 분석은 대소문자를 구분하므로 사용자 PeterEganPeteRegan은 다른 작성자로 취급됩니다. 그러나 많은 경우 사용자 이름은 대소문자를 구분하지 않으며 때로는 일관되지 않게 입력되므로 DavidMorgandavidmorgan을 동일한 사람으로 취급하고 싶을 수 있습니다. 작성자 대소문자 무시 체크박스를 사용하여 이 처리 방식을 제어하십시오.

통계는 로그 대화상자와 동일한 기간을 다룹니다. 하나의 개정만 표시하는 경우 통계는 많은 정보를 제공하지 않습니다.

오프라인 모드

그림 4.28. 오프라인 전환 대화상자

Go Offline Dialog


서버에 연결할 수 없고 로그 캐싱이 활성화되어 있는 경우, 오프라인 모드에서 로그 대화상자 및 개정 그래프를 사용할 수 있습니다. 이는 캐시된 데이터를 사용하므로 정보가 최신이 아니거나 완전하지 않을 수 있지만 계속 작업할 수 있습니다.

여기에는 세 가지 옵션이 있습니다.

지금은 오프라인

현재 작업을 오프라인 모드에서 완료하지만, 다음에 로그 데이터가 요청될 때 저장소를 다시 시도합니다.

영구적으로 오프라인

저장소 확인이 명시적으로 요청될 때까지 오프라인 모드를 유지합니다. "뷰 새로 고침" 섹션을 참조하십시오.

취소

최신이 아닐 수 있는 데이터로 작업을 계속하고 싶지 않다면, 그냥 취소하십시오.

이를 기본값으로 설정 체크박스를 선택하면 이 대화상자가 다시 나타나는 것을 방지하고 다음에 선택하는 옵션을 항상 선택합니다. 이 작업을 수행한 후에도 TortoiseSVN설정에서 기본값을 변경(또는 제거)할 수 있습니다.

뷰 새로 고침

더 새로운 로그 메시지를 위해 서버를 다시 확인하고 싶다면, F5 키를 사용하여 뷰를 새로 고치기만 하면 됩니다. 로그 캐시(기본적으로 활성화됨)를 사용하는 경우, 이는 저장소에 더 새로운 메시지가 있는지 확인하고 새로운 메시지만 가져옵니다. 로그 캐시가 오프라인 모드였다면, 이 또한 다시 온라인으로 전환을 시도합니다.

로그 캐시를 사용하고 있으며 메시지 내용이나 작성자가 변경되었을 수 있다고 생각한다면, Shift-F5 또는 Ctrl-F5를 사용하여 서버에서 표시된 메시지를 다시 가져오고 로그 캐시를 업데이트할 수 있습니다. 이는 현재 표시된 메시지에만 영향을 미치며 해당 저장소의 전체 캐시를 무효화하지는 않습니다.

TortoiseSVN 홈페이지

한국어 中文