폴더 및 파일 분기
분기를 사용하여 다음과 같은 목적을 이룰 수 있습니다.
동일한 코드베이스를 기반으로 여러 팀에서 동시 작업 관리
코드베이스의 상이한 변경으로 인해 발생하는 위험 격리
스냅숏을 만들고 이후의 변경 내용이 격리되도록 지원(예: 릴리스 분기 만들기)
예를 들어, 다음 그림에서는 DinnerNow라는 회사가 비즈니스 요구를 충족하기 위해 분기 구조를 개발한 방법을 보여 줍니다.
계층 구조 창에 표시된 DinnerNow 분기 구조
기능 팀 A와 기능 팀 B는 별도의 분기에서 각각 작업을 수행합니다. 두 팀의 작업을 통합할 준비가 되면 각 팀의 분기를 Dev 분기에 병합합니다. Dev 분기의 빌드가 안정적이고 테스트 준비가 완료되면 두 팀은 Dev 분기를 Test 분기에 병합합니다.
각 버전이 릴리스될 때마다 Main 분기는 Version1 분기 및 Version2 분기 같은 새 버전 분기로 분기됩니다. 이 전략을 따를 경우 이 회사는 필요에 따라 제품의 이전 버전 각각을 개별적으로 개선하거나 수정할 수 있습니다.
분기 작업은 이 항목에서 설명하는 소스 제어 탐색기를 사용하거나 명령 프롬프트에서 Branch 명령을 사용하여 수행할 수 있습니다. 자세한 내용은 Branch Command을 참조하십시오.
팁
분기는 파일 버전의 병렬 집합을 만들기 위한 중요하고도 강력한 기술입니다.그러나 분기를 사용하면 프로젝트가 복잡해지고 비용이 증가할 수 있습니다.예를 들어, 두 분기를 병합하려면 충돌을 해결해야 하는 문제에 직면하게 됩니다.
분기를 만들기 전에 레이블을 적용하여 요구 사항이 제대로 충족될 수 있는지 여부를 고려해야 합니다.레이블을 적용하면 파일 상태에 대한 스냅숏을 빠르고 쉽게 만들어 나중에 파일을 검색하거나 해당 상태로 파일을 빌드할 수 있습니다.자세한 내용은 레이블을 사용하여 파일의 스냅숏 만들기을 참조하십시오.
폴더를 분기로 변환
Visual Studio Team Foundation Server 2010 버전부터는 분기와 폴더가 구별됩니다. 다음 그림에서는 DinnerNow 폴더 구조의 최상위 수준을 보여 줍니다.
소스 제어 탐색기의 DinnerNow 폴더 구조
그림과 같이 여전히 폴더를 사용하여 팀 프로젝트의 버전 제어 계층 구조 내에 분기를 구성할 수 있습니다. 그러나 폴더와 분기는 모양뿐 아니라 기능도 서로 다릅니다. 폴더 또는 분기를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하면 폴더와 분기에 대해 서로 다른 정보와 기능이 표시됩니다.
분기 작업을 수행하는 경우 분기는 폴더에 비해 몇 가지 중요한 이점이 있습니다. 분기는 분기 구조 및 변경 집합이 병합되는 위치에 대한 추가 가시성을 제공하는 버전 제어 기능을 지원합니다. 자세한 내용은 이 항목 뒷부분에 참고 항목 단원의 링크를 참조하십시오.
폴더 간에도 분기 및 병합을 수행할 수 있지만 팀에서는 분기 간에만 분기 및 병합을 수행하는 것이 가장 좋습니다. 다음 절차에는 폴더를 분기로 변환하는 방법이 설명되어 있습니다.
필요한 권한
다음 절차를 수행하려면 분기 관리 권한이 허용으로 설정되어 있어야 합니다. 자세한 내용은 Team Foundation Server에 대한 사용 권한 참조을 참조하십시오.
폴더를 분기로 변환하려면
소스 제어 탐색기에서 변환할 폴더가 서버에 있는지 확인합니다.
폴더 옆에 보류 중인 추가 항목 아이콘()이 나타나면 폴더를 마우스 오른쪽 단추로 클릭한 다음 보류 중인 변경 내용 체크 인을 클릭합니다.
변환할 폴더를 마우스 오른쪽 단추로 클릭하고 분기 및 병합을 가리킨 다음 분기로 변환을 클릭합니다.
폴더를 분기로 변환 대화 상자가 나타납니다.
중요 이미 분기한 폴더를 변환하는 경우에는 이전에 이 폴더에서 분기된 모든 폴더에 대해 이 변환을 재귀적으로 수행 확인란을 선택해야 할 수도 있습니다. 이 옵션을 선택하면 이 폴더에서 분기된 모든 폴더 역시 분기로 변환됩니다.
소유자 필드에 이 분기를 소유하는 사람의 이름을 입력합니다. 이 단계는 선택적입니다.
참고
이 소유자 필드는 정보용으로만 사용됩니다.소유자 필드에 이름이 입력되어도 해당 소유자에게 사용 권한이 추가로 부여되지는 않습니다.
이 분기를 사용해야 하거나 분기의 목적을 이해해야 하는 다른 팀 구성원에게 도움이 될 것으로 보이는 정보를 설명 필드에 입력합니다. 이 단계는 선택적입니다.
변환을 클릭합니다.
중요
분기는 중첩될 수 없습니다. 따라서 분기가 다른 분기를 포함하거나 다른 분기에 포함되면 폴더를 분기로 변환할 수 없습니다.예를 들어, 다음 그림에서는 FeatureTeamA 분기의 부모 또는 자식이 분기로 변환될 수 없음을 보여 줍니다.
폴더를 분기로 변환한 후 팀에서 분기 구조를 변경하기로 결정한 경우 분기를 다시 폴더로 변환할 수 있습니다.
분기를 폴더로 변환하려면
소스 제어 탐색기에서 변환할 분기를 클릭합니다.
파일 메뉴에서 소스 제어, 분기 및 병합을 차례로 가리킨 다음 폴더로 변환을 클릭합니다.
분기를 폴더로 다시 변환 메시지가 나타나면 예를 클릭합니다.
분기를 분기
폴더를 분기로 변환한 후 이 분기로부터 다른 분기를 만들 수 있습니다. 다음 절차에서는 Visual Studio ALM(Application Lifecycle Management)의 그래픽 사용자 인터페이스를 사용하여 분기를 분기할 수 있는 방법을 보여 줍니다. 명령 프롬프트에서 이 작업을 수행하는 방법에 대한 자세한 내용은 Branch Command을 참조하십시오.
필요한 권한
이 절차를 수행하려면 소스 및 대상 분기의 경로에 대해 분기 관리 권한이 허용으로 설정되어 있어야 합니다. 또한 대상 분기의 경로에 대해 병합 권한이 허용으로 설정되어 있어야 합니다. 자세한 내용은 Team Foundation Server에 대한 사용 권한 참조을 참조하십시오.
분기를 분기하려면
소스 제어 탐색기에서 분기할 분기를 마우스 오른쪽 단추로 클릭하고 분기 및 병합을 가리킨 다음 분기를 클릭합니다.
분기 위치 대화 상자가 나타납니다.
대상 분기 이름 상자에 새 분기의 경로를 지정합니다.
(선택 사항) 분기 시작 버전 섹션의 값 목록에서 다음 옵션 중 하나를 클릭합니다.
최신 버전을 클릭하면 버전 제어에서 가장 최신 버전에 대해 분기가 만들어집니다.
변경 집합을 클릭하면 변경 집합 상자에서 변경 집합 번호를 지정할 수 있습니다. 또는 줄임표(…)를 클릭하여 변경 집합 찾기 대화 상자를 열어도 됩니다.
자세한 내용은 변경 집합 찾기 및 보기을 참조하십시오.
날짜를 클릭하면 날짜 상자에 날짜를 지정할 수 있습니다.
분기를 클릭합니다.
새 분기가 만들어지고 소스 제어 탐색기에 표시됩니다.
참고 대부분의 버전 제어 작업과 달리 이 작업에서는 보류 중인 변경 내용이 생성되지 않습니다. 대신, 이 작업은 즉시 완료되며 작업을 실행 취소할 수 없습니다.
폴더 또는 파일 분기
폴더 또는 파일을 직접 분기할 수는 있지만 그렇게 하지 않는 것이 좋습니다. 그렇게 하는 경우 분기 계층 구조를 확인하거나 변경 집합을 추적할 수 없습니다. 이 항목의 앞부분에서 설명한 대로 분기 간에만 분기 및 병합을 수행하는 것이 가장 좋습니다.
그러나 특별히 폴더 또는 파일을 분기해야 할 필요가 있으면 다음 절차에 따라 이 작업을 수행할 수 있습니다. 명령 프롬프트에서 이 작업을 수행하는 방법에 대한 자세한 내용은 Branch Command을 참조하십시오.
필요한 권한
이 절차를 수행하려면 대상 경로에 대해 체크 아웃 권한 및 병합 권한이 허용으로 설정되어 있어야 합니다. 자세한 내용은 Team Foundation Server에 대한 사용 권한 참조을 참조하십시오.
폴더 또는 파일을 분기하려면
소스 제어 탐색기에서 분기할 폴더나 파일을 마우스 오른쪽 단추로 클릭하고 분기 및 병합을 가리킨 다음 분기를 클릭합니다.
분기 대화 상자가 표시됩니다.
대상 상자에서 새 분기의 위치 및 이름을 수정합니다.
찾아보기를 클릭하여 대상을 지정할 수도 있습니다.
분기 시작 버전 섹션의 값 목록에서 다음 옵션 중 하나를 클릭합니다.
최신 버전을 클릭하면 버전 제어에서 가장 최신 버전에 대해 분기가 만들어집니다.
변경 집합을 클릭하면 변경 집합 상자에서 변경 집합 번호를 지정할 수 있습니다. 또는 줄임표(…)를 클릭하여 변경 집합 찾기 대화 상자를 열어도 됩니다.
자세한 내용은 변경 집합 찾기 및 보기을 참조하십시오.
날짜를 클릭하면 날짜 상자에 날짜를 지정할 수 있습니다.
레이블을 클릭하면 레이블 상자에 레이블 이름을 입력할 수 있습니다. 또는 줄임표(…)를 클릭하여 레이블 찾기 대화 상자를 열어도 됩니다.
자세한 내용은 레이블을 사용하여 파일의 스냅숏 만들기을 참조하십시오.
작업 영역 버전을 클릭하면 작업 영역에서 버전에 대한 분기가 만들어집니다.
새 분기의 로컬 작업 복사본 만들기 확인란을 선택하여 로컬 작업 영역의 버전 제어 항목 복사본을 만듭니다. 이 단계는 선택적입니다. 로컬 복사본이 필요하지 않은 경우 많은 항목이 컴퓨터에 다운로드되지 않게 하여 성능을 향상시키려면 이 확인란의 선택을 취소합니다.
확인을 클릭합니다.
새 분기가 만들어지고 소스 제어 탐색기에 표시됩니다.
참고
새 분기의 로컬 작업 복사본 만들기 확인란을 선택한 경우 사용자가 지정한 로컬 폴더가 현재 작업 영역에서 매핑되지 않았다면 폴더 찾아보기 창이 나타납니다.폴더를 찾아보거나 새 폴더 만들기를 클릭하고 버전 제어 항목으로 동기화할 폴더를 지정한 다음 확인을 클릭합니다.