폴더 및 파일 병합
폴더 및 파일 분기에 설명된 것과 같은 다양한 이유로 대부분의 소프트웨어 개발 팀에서는 다양한 분기로 분기된 코드베이스에서 작업합니다. 분기를 사용하는 경우 최종적으로 팀에서는 프로젝트의 일부 단계 중 각기 다른 분기에서 완료된 작업을 통합해야 합니다. 예를 들어 소프트웨어의 전체 버전을 테스트하려면 서로 다른 기능 팀 분기에서 변경된 내용을 모두 병합해야 합니다.
이 항목의 절차에서는 Visual Studio ALM(Application Lifecycle Management)의 그래픽 사용자 인터페이스를 사용하여 각 분기에서 변경된 내용을 병합하는 방법에 대해 설명합니다. 명령 프롬프트에서 병합을 수행하는 방법에 대한 자세한 내용은 Merge 명령을 참조하십시오.
필요한 권한
이 절차를 수행하려면 다음과 같은 권한이 설정되어 있어야 합니다.
소스 트리의 항목에 대한 읽기 권한과 대상 트리의 항목에 대한 체크 아웃 권한이 허용으로 설정되어 있어야 합니다.
대상 경로에 대한 병합 권한이 설정되어 있어야 합니다.
대상 트리 항목의 이름을 바꾸는 경우 소스 트리와 대상 트리 모두에 대한 체크 아웃 권한이 허용으로 설정되어 있어야 합니다.
이 작업의 영향을 받는 파일이 잠겨 있는 경우 잠금 권한이 허용으로 설정되어 있어야 합니다. 권한에 대한 자세한 내용은 Team Foundation Server 권한을 참조하십시오.
소스 제어 창에서 병합 시작
중요
Visual Studio Team Foundation Server 2010 버전부터는 분기와 폴더가 구별됩니다. 예를 들어 다음 그림에서는 분기와 폴더가 서로 다른 아이콘으로 표시되는 것을 볼 수 있습니다.
폴더 간에도 분기 및 병합을 수행할 수 있지만 팀에서는 분기 간에만 분기 및 병합을 수행하는 것이 가장 좋습니다. 자세한 내용은 폴더 및 파일 분기를 참조하십시오.
소스 제어 탐색기에서 분기, 파일 및 폴더 병합
소스 제어 탐색기에서 병합할 분기, 폴더 또는 파일을 선택합니다.
파일 메뉴를 클릭하고 소스 제어, 분기 및 병합을 차례로 가리킨 다음 병합을 클릭합니다.
소스 제어 병합 마법사가 표시됩니다. 이 마법사를 사용하여 병합을 완료하는 방법에 대한 자세한 내용은 소스 제어 병합 마법사를 사용하여 병합 완료를 참조하십시오.
"변경 집합을 추적하는 중" 창에서 병합 시작
변경 집합을 추적하는 중 창에서는 변경 집합이 만들어진 위치, 병합된 위치 및 이러한 이벤트가 발생한 시기 등의 정보를 볼 수 있습니다. 또한 변경 집합이 병합되지 않은 분기가 강조 표시됩니다. 변경 집합이 필요한데 누락된 분기가 표시되는 경우 끌어서 놓기 작업으로 이 문제를 해결할 수 있습니다.
중요
이 절차는 분기에 영향을 주는 변경 집합에 대해서만 수행할 수 있습니다. 예를 들어 다음 그림에서는 분기와 폴더가 서로 다른 아이콘으로 표시되는 것을 볼 수 있습니다.
자세한 내용은 폴더 및 파일 분기를 참조하십시오.
변경 집합을 "변경 집합을 추적하는 중" 창으로 끌어서 놓기
소스 제어 탐색기에서 분기, 폴더, 또는 분기에 포함된 파일을 선택합니다.
선택한 항목을 마우스 오른쪽 단추로 클릭하고 기록 보기를 클릭합니다.
기록 창에서 보려는 변경 집합을 마우스 오른쪽 단추로 클릭하고 변경 집합 추적을 선택합니다.
분기 선택 대화 상자가 나타납니다.
(선택 사항) 대상 분기 목록에서 표시할 분기를 선택하고 숨길 분기의 선택을 취소합니다.
시각화를 클릭합니다.
변경 집합을 추적하는 중 창이 나타납니다.
변경 집합이 포함된 분기를 대상 분기로 끌어 옵니다.
소스 제어 병합 마법사가 나타납니다. 이 마법사를 사용하여 병합을 완료하는 방법에 대한 자세한 내용은 소스 제어 병합 마법사를 사용하여 병합 완료를 참조하십시오. 소스 제어 병합 마법사를 사용하여 병합 완료
예: 새 메서드 위치 확인
다음 예에서는 앞의 절차를 사용하는 방법을 보여 줍니다. Julie가 자신의 FeatureTeamB 코드에서 활용하는 FeatureTeamA 코드의 일부에 새 메서드를 구현해 줄 것을 Chris에게 요청했습니다. Chris는 새 메서드에 대한 코드를 작성하여 FeatureTeamA 분기에 체크 인한 다음, 퇴근하면서 복도에서 Julie를 만나 새 메서드를 체크 인했다고 알려 줍니다.
Julie는 책상으로 돌아가 최신 소스를 찾지만 Chris가 체크 인한 새 메서드가 표시되지 않습니다. 소스 제어 탐색기로 이동하여 FeatureTeamA 분기에 대한 기록 창을 보니 Chris가 변경 집합 50을 사용하여 새 메서드를 체크 인했음을 알 수 있습니다. 변경 집합 50을 마우스 오른쪽 단추로 클릭하고 변경 집합 추적을 클릭하니 다음과 같은 창이 나타납니다.
"변경 집합을 추적하는 중" 창: 부모 분기로 병합
변경 집합을 추적하는 중 창에서 Chris가 변경 집합 50을 사용하여 메서드를 체크 인했음을 알 수 있으므로 Julie는 변경 집합 51을 사용하여 이를 Dev 분기에 병합합니다. 하지만 변경 집합 50이 FeatureTeamB 분기에 병합되기 전까지는 새 코드를 가져올 수 없습니다. 그래서 Julie는 Dev 분기를 FeatureTeamB 분기로 끌어 와 소스 제어 병합 마법사를 실행하고 이 마법사를 사용하여 병합을 완료합니다.
소스 제어 병합 마법사를 사용하여 병합 완료
위의 절차 중 하나를 완료한 후에는 소스 제어 병합 마법사가 나타납니다. 이 마법사에서 병합의 소스와 대상을 지정할 수 있습니다. 하나의 전체 분기를 다른 분기에 병합하거나, 병합할 특정 변경 집합 또는 변경 집합 그룹을 선택할 수 있습니다.
소스 제어 병합 마법사를 사용하여 파일, 폴더 또는 분기 병합
소스 제어 병합 마법사의 소스 분기 상자에서 팀 프로젝트 소스 분기의 이름을 입력하거나, 찾아보기를 클릭하여 목록에서 분기를 선택합니다.
대상 분기 드롭다운 목록에서 소스 분기를 병합할 대상 팀 프로젝트 분기를 선택합니다.
특정 버전까지의 모든 변경 내용 또는 선택한 변경 집합 옵션을 선택하여 대상 분기에 병합할 변경 범위를 선택하고 다음을 클릭합니다.
팁
가능한 경우 특정 버전까지의 모든 변경 내용을 클릭하십시오. 이 옵션을 선택하면 이후 병합에서 충돌이 발생할 가능성이 낮아집니다.
다음을 클릭한 다음 병합 작업 수행 페이지에서 마침을 클릭합니다.
하나 이상의 보류 중인 변경 내용이 생성됩니다.
(선택 사항) 보류 중인 변경 내용을 즉시 체크 인하려는 경우 다음 단계를 수행할 수 있습니다.
보기 메뉴를 클릭하고 다른 창을 가리킨 다음 보류 중인 변경 내용을 클릭합니다.
보류 중인 변경 내용 창을 사용하여 변경 내용을 체크 인합니다. 자세한 내용은 보류 중인 변경 내용 체크 인을 참조하십시오.